본문 바로가기
Server

M1에서 VM 우분투 실행 후 APM 소스설치하기

by 멍진 2022. 4. 12.

 

VM에서 리눅스 계열 OS를 인스턴스 생성하고 APM 소스설치하기

 

apt-get 과 같은 패키지 매니저 없이 수동으로 APM을 해보도록 하겠다!!

 

맥북 M1 실리콘 칩 환경에서는 아직 VirtuaBox 또는 VMware 가 호환되지 않기 때문에 다른 플랫폼을 사용해야 한다.

페럴리즈 1개월 무료 체험을 이용하는 방법도 있지만, 더 사용하기 쉬운 UTM 이라는 가상머신 플랫폼을 사용하기로 했다.

UTM dmg 파일 다운로드 바로가기

 

UTM

Securely run operating systems on your Mac

mac.getutm.app

 


Ubuntu 실행하기

 

UTM에 리눅스 계열 OS인 우분투를 설치 하기 위해서는 iso파일을 다운받아야 한다. 

Ubuntu iso파일(ARM) 다운로드 바로가기

 

Ubuntu for ARM | Download | Ubuntu

Download Ubuntu Server for ARM with support for the very latest ARM-based server systems powered by certified 64-bit processors.

ubuntu.com

 

UTM 시작 화면

우분투 설치 참고 강의

 

램은 4096MB, 저장공간은 80GB 으로 세팅하고 설치를 마쳤다.  -> 80GB 이상으로 하지 않으면 고통을 맛보게 될 것이다.

ubuntu-desktop까지 설치하고 재부팅 하면 다음과 같은 화면을 볼 수 있다.

 

 


Apache 설치하기

Apache란?

웹 브라우저와 같은 클라이언트로부터 HTTP 프로토콜로 요청을 받아서 정적 웹페이지를 응답해주는 웹 서버 중 하나이다. 

사용하는 명령어

​sudo su : root 계정으로 로그인​
/usr/local 디렉토리에 설치하는 것이 관례라고 해서 그곳에서 설치 진행함
wget : 웹 상에 있는 파일을 다운로드 하는 명령어
tar xvfz : tar.gz 형식의 파일을 압축 해제 하는 명령어

소스 설치

1) apr-1.7.0.         2) apr-util-1.6.1

먼저 소스 설치 파일 두 가지를 받아 오고, 압축 해제

# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz
# wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz

# tar xvfz apr-1.7.0.tar.gz
# tar xvfz apr-util-1.6.1.tar.gz

 

1) apr-1.7.0 설치

# cd apr-util-1.7.0
# ./configure --prefix=/usr/local/apr
# make
# make install

ERROR  : no acceptable C compiler found in $PATH

패키지 설치로 해결 : apt-get install build-essential 

 

2) apr-util-1.6.1 설치

# cd apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install

ERROR  : expat.h : No such file or directory

해결 : apt-get install libexpat1-dev

 

3) pcre-8.45 설치

# cd /usr/local
# wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
# tar xvfz pcre-8.45.tar.gz

# cd pcre-8.45
# ./configure --prefix=/usr/local/pcre
# make
# make install

오류 없이 설치 완료

 

4) apache-2.4.53 설치

설치 전에 apache 홈페이지에서 최신 버전을 확인해야 한다.

# cd usr/local
# wget https://dlcdn.apache.org/httpd/httpd-2.4.53.tar.gz
# tar xvfz httpd-2.4.53.tar.gz

# cd httpd-2.4.53
# ./configure --prefix=/usr/local/apache2.4 --enable-module=so --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/bin/pcre-config --enable-mods-shared=all
# make
# make install

configure 완료
make 에러

ERROR 뭐가 문제인지 모르겠는데 이것 저것 설치해봐도 해결이 안됐다.

해결 : 결국 다른 것들을 다시 설치 해보자는 마음으로 apr-util 먼저 다시 설치 했더니 해결....!🧐

다시 설치 할때 주의 점 : make 다시 하기 전에 이전에 했던 것 make clean 해야 함

apache2.4 설치 완료

Apache  실행 테스트

필요한 패키지 설치

# apt-get install net-tools
# apt-get install curl

실행 테스트

​ps -ef | grep httpd | grep -v grep : 'httpd' 키워드가 있는, 현재 수행중인 프로세스를 표시한다.
netstat 
: 네트워크 상태를 확인할 수 있다. 
curl : 서버와 통신할 수 있는 커맨드 명령어
# sudo apache2.4/bin/httpd -k start
# ps -ef | grep httpd | grep -v grep
# sudo netstat -anp | grep httpd
# sudo curl http://127.0.0.1

로컬 호스트 127.0.01 로 요청을 보내보았다.

Firefox 에서 구동 확인

 


MySQL 설치하기

필요한 패키지 설치

# apt-get update
# apt-get install cmake
# apt-get install libssl-dev
# apt-get install libboost-all-dev
# apt-get install libncurses5-dev libncursesw5-dev

apache 설치에서 중간중간 추가로 설치할 것이 많았던 것을 고려하여, 이번에는 미리 한번에 설치하고 시작 하기로 했다😣

소스 설치

mysql-8.0.19 설치

# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
# tar xvfz mysql-8.0.19.tar.gz

소스 설치 파일을 받아오고, 압축 해제

# cd /usr/local/mysql-8.0.19
# mkdir <디렉토리명>
# cd <디렉토리명>
# cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_70_0

# make
# make test
# make install

cmake 에러 발생

ERROR cmake error

해결 : /usr/local/src 에 압축파일을 다운받으면 해결!

# cd /usr/local/src
# sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.gz
# sudo tar xvfz boost_1_70_0.tar.gz

이후 다시 원래 디렉토리로 돌아와서 cmake 성공

make -> make test -> make install

make 는 4시간 정도 걸렸다.

설치 완료!

MySQL DB 초기화

mysql 그룹 및 유저 생성

# cd /usr/local/mysql-8.0.19/만든 디렉토리명
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql

디렉토리 생성 및 권한 부여

chown : 파일의 소유자를 변경 ( -R 옵션 : 하위 디렉토리까지 소유권 할당)
chmod : 사용권한을 변경
# cd mysql
# mkdir mysql-files
# chown -R mysql:mysql /usr/local/mysql
# chown mysql:mysql mysql-files
# chmod 750 mysql-files

기본 DB 초기화

# bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data​

마지막 줄에 임시 비밀번호가 나온다.

MySQL 서버 실행

# bin/mysqld_safe --user=mysql &
# bin/mysql -u root -p 
# Enter password: 임시 비밀번호 입력

alter user 'root'@'localhost' identified by '바꿀 비밀번호'; 로 비밀번호를 바꿀 수 있다.

서버종료

# bin/mysqladmin -u root -p shutdown

 

 


PHP 설치하기

PHP 란?

동적 웹 페이지를 구현하기 위해 생성된 서버 측에서 실행되는 사이드 스크립트 언어이다.

필요한 패키지 설치

# apt-get install libxm2-dev
# apt-get install libjpeg-dev
# apt-get install libpng-dev
# apt-get install libsqlite3-dev

소스 설치

# wget https://www.php.net/distributions/php-8.1.0.tar.gz
# tar xvfz php-8.1.0.tar.gz
# cd php-8.1.0
# ./configure --with-apxs2=/usr/local/apache2.4/bin/apxs --enable-mysqlnd --with-mysql-sock=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-imap-ssl --with-iconv --enable-gd --with-jpeg --with-libxml --with-openssl
# make
# make test
# make install

make test 에러

ERROR  : Phar: bug #69958: Segfault in Phar::convertToData on invalid file [ext/phar/tests/bug69958.phpt] (warn: XFAIL section but test passes)

해결 : PHP QA팀에 제보하라는 메세지가 나왔다....? 에러를 구글링 해보니까 그냥 무시하라는 말이 있어서 일단 무시하고 진행🤨

 

Apache, PHP 연동

모듈 설치 확인

# cd apache2.4/conf
# gedit httpd.conf

위와 같이 AddType을 한 줄 추가해 준다.

php.ini  파일 세팅

# cd php-8.1.0
# cp php.ini-production /usr/local/lib/php.ini

프로덕션 시스템용 설정 파일인 php.ini-production 파일을 /usr/local/lib/php.ini에 복사한다.

php 테스트 파일 작성

# cd apache2.4/htdocs 
# vi phpinfo.php

<?php phpinfo(); ?>
작성

연결 확인

Apache를 다시 실행시키고, Firefox로 http://127.0.0.1/phpinfo.php 에 접속해서 아래 화면이 나오면 성공!!😃

# apache2.4/bin/httpd -k start 
# ps -ef | grep httpd | grep -v grep
# netstat -anp | grep httpd
# curl http://127.0.0.1

계속 빈 화면이 나와서 포트 80에 바인딩 되어있는 프로세스를 kill 하고 apache를 재시작 했더니 해결 되었다.

# netstat -nlp | grep :80
# kill -9 (프로세스 아이디)

 

phpinfo

 

APM 소스 설치 완료!

댓글