VM에서 리눅스 계열 OS를 인스턴스 생성하고 APM 소스설치하기
apt-get 과 같은 패키지 매니저 없이 수동으로 APM을 해보도록 하겠다!!
맥북 M1 실리콘 칩 환경에서는 아직 VirtuaBox 또는 VMware 가 호환되지 않기 때문에 다른 플랫폼을 사용해야 한다.
페럴리즈 1개월 무료 체험을 이용하는 방법도 있지만, 더 사용하기 쉬운 UTM 이라는 가상머신 플랫폼을 사용하기로 했다.
Ubuntu 실행하기
UTM에 리눅스 계열 OS인 우분투를 설치 하기 위해서는 iso파일을 다운받아야 한다.
램은 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 |
댓글