VM에서 리눅스 계열 OS를 인스턴스 생성하고 APM 소스설치하기
apt-get 과 같은 패키지 매니저 없이 수동으로 APM을 해보도록 하겠다!!
맥북 M1 실리콘 칩 환경에서는 아직 VirtuaBox 또는 VMware 가 호환되지 않기 때문에 다른 플랫폼을 사용해야 한다.
페럴리즈 1개월 무료 체험을 이용하는 방법도 있지만, 더 사용하기 쉬운 UTM 이라는 가상머신 플랫폼을 사용하기로 했다.
UTM
Securely run operating systems on your Mac
mac.getutm.app
Ubuntu 실행하기
UTM에 리눅스 계열 OS인 우분투를 설치 하기 위해서는 iso파일을 다운받아야 한다.
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
램은 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
ERROR 뭐가 문제인지 모르겠는데 이것 저것 설치해봐도 해결이 안됐다.
해결 : 결국 다른 것들을 다시 설치 해보자는 마음으로 apr-util 먼저 다시 설치 했더니 해결....!🧐
다시 설치 할때 주의 점 : make 다시 하기 전에 이전에 했던 것 make clean 해야 함
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 로 요청을 보내보았다.
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
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
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 (프로세스 아이디)
APM 소스 설치 완료!
'Server' 카테고리의 다른 글
AWS RDS 구축하기(MySQL) (0) | 2022.04.28 |
---|---|
AWS 서버 구축하기(3) / Domain, HTTPS, Sub Domain, Redirection 적용 (2) | 2022.04.21 |
AWS 서버 구축하기(2) / MySQL 외부 접속 / phpMyAdmin 설치 (0) | 2022.04.21 |
AWS 서버 구축하기(1) / Nginx, MySQL, php 설치 및 외부 접속 (0) | 2022.04.21 |
로컬서버 구축하기 / MAMP설치 / 포트포워딩 (0) | 2022.04.20 |
댓글