-
1주차 - Ubuntu APM 소스 수동설치활동/UMC 2기 2022. 4. 6. 19:02
1주차의 목표는 로컬 컴퓨터에 APM 소스를 우분투 환경에 수동으로 설치해 보는 것이었다.
필자는 다른 블로그를 참고하여 설치해 보았으나, 환경이 달랐는지 중간에 막히는 부분이 있었고,
참고한 블로그에 오타도 있어서 내가 성공한 방식을 정리해 보았다.
다음에 다시 설치해야할 상황이나, 나처럼 공부할 목적이 있는 분들에게 도움이 되고자 글을 남긴다.
(사실 깃헙에 올린 md파일인데 블로그 시작한 김에 가져와 보았다.)
공부하며 작성한 워크북은 여기에...
https://roan-calendula-b59.notion.site/1-Work-Book-6eceedf883ad423d9da8e40400ea8101
우분투 APM소스 수동 설치 정리
시작하기 전에...
- 우분투 가상환경의 디스크 할당을 최소 50Gb는 잡아주자.
본인 기준 아래의 모든 설치가 완료되었을 때, 27.36Gb가 기록되었다. - /usr/local에 설치하는 것이 관례이다.
- 소스파일을 내려받고
- ./configure로 설정을 한다. (여기선 생략)
- make로 컴파일을 한 뒤
- make install로 설치한다.
- 참고 글
옌의 개발일기 - Apache
옌의 개발일기 - MySQL
옌의 개발일기 - php
블로그 글에 사진과 코드가 있지만, 헷갈리는 부분과 에러나는 부분, 오타가 있었기에 내 경험에 맞추어 다시 작성했다.
1. Apache
다음의 순서로 진행된다.
필수 패키지 설치
$
sudo su
/usr/local#apt-get install make
/usr/local#apt-get install build-essential
/usr/local#apt-get install gcc
/usr/local#apt-get install --reinstall make
/usr/local#apt-get install libexpat1-dev
/usr/local#apt-get install g++
/usr/local#apt-get install net-tools
/usr/local#apt-get install curl
소스설치 파일 다운로드 및 압축해제
$
sudo su
/usr/local#mkdir apache
(소스파일 설치)
/usr/local#wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz
/usr/local#wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz
/usr/local#wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/
/usr/local#wget https://dlcdn.apache.org//httpd/httpd-2.4.51.tar.gz
(압축해제)
/usr/local#tar xvfz apr-1.7.0.tar.gz
/usr/local#tar xvfz apr-util-1.6.1.tar.gz
/usr/local#tar xvfz pcre-8.45.tar.gz
/usr/local#tar xvfz httpd-2.4.51.tar.gz
만약 pcre-8.45.tar.gz 파일이 무슨 .html 형식으로 다운받아진다면,
pcre-8.45 에서 직접 다운받은 후 압축해제 해준다.apr 설치
/usr/local#
cd apr-1.7.0
/usr/local/apr-1.7.0#./configure --prefix=/usr/local/apr
여기서 오류가 난다면
/usr/local/apr-1.7.0#cp -arp libtool libtoolT
다운로드를 해준다.
/usr/local/apr-1.7.0#make
/usr/local/apr-1.7.0#make install
apt-util 설치
/usr/local#
cd apr-util-1.6.1
/usr/local/apr-util-1.6.1#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
/usr/local/apr-util-1.6.1#make
/usr/local/apr-util-1.6.1#make install
pcre 설치
/usr/local#
cd pcre-8.45
/usr/local/pcre-8.43#./configure --prefix=/usr/local/pcre
/usr/local/pcre-8.43#make
/usr/local/pcre-8.43#make install
Apache 설치
/usr/local#
cd httpd-2.4.51
/usr/local/httpd-2.4.51#./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 \
--enable-mods-shared=all
/usr/local/httpd-2.4.46#make
/usr/local/httpd-2.4.46#make install
Apache 실행
실행:
httpd -k start
, 종료:httpd -k stop
/usr/local#sudo apache2.4/bin/httpd -k start
/usr/local#ps -ef | grep httpd | grep -v grep
/usr/local#sudo netstat -anp | grep httpd
/usr/local#sudo curl http://127.0.0.1
브라우저를 열고 127.0.0.1 에 접속시 'It works!' 라는 문구가 뜨면 성공!
2. MySQL
다음의 순서로 진행된다.
필수 패키지 설치
$
sudo su
/usr/local#apt-get update
/usr/local#apt-get install cmake
/usr/local#apt-get install libssl-dev
/usr/local#apt-get install libboost-all-dev
/usr/local#apt-get install libncurses5-dev libncursesw5-dev
/usr/local#apt-get install perl
(이건 앞에서 설치해서 중복할 필요 없음)
/usr/local#apt-get install make
/usr/local#apt-get install gcc
/usr/local#apt-get install g++
소스설치 파일 다운로드 및 압축해제
/usr/local#
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
/usr/local#tar xvfz mysql-8.0.19.tar.gz
MySQL 설치
/usr/local#
cd mysql-8.0.19
/usr/local/mysql-8.0.19#mkdir dir_mysql
(이름 아무거나 상관없음)
/usr/local/mysql-8.0.19#cd ..
/usr/local#cd src
/usr/local/src#sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.gz
/usr/local/src#sudo tar xvfz boost_1_70_0.tar.gz
/usr/local/src#cd ..
/usr/local#cd usr/local/mysql-8.0.19/dir_mysql
/usr/local/mysql-8.0.19/dir_mysql#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
/usr/local/mysql-8.0.19/dir_mysql#make
/usr/local/mysql-8.0.19/dir_mysql#make install
MySQL DB 초기화
mysql 그룹 및 유저 생성
/usr/local/mysql-8.0.19/dir_mysql#groupadd mysql
/usr/local/mysql-8.0.19/dir_mysql#useradd -r -g mysql -s /bin/false mysql
디렉토리 생성
/usr/local#cd mysql
/usr/local/mysql#mkdir mysql-files
(이름 아무거나 상관없음)권한주기
/usr/local/mysql#chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql#chown mysql:mysql mysql-files
/usr/local/mysql#chmod 750 mysql-files
기본 DB 생성
/usr/local/mysql#bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
실행하면 다음과 같은 문장이 뜬다.
...
..[Server] A temporary password is generated for root@localhost:<12자리 랜덤 문자>
여기서12자리 랜덤 문자
자리의 임시 비밀번호를 기억해두자.MySQL 서버 실행 및 비밀번호 재설정
MySQL 서버 실행
/usr/local/mysql# bin/mysqld_safe --user=mysql &
입력 후 터미널 창이 멈춘게 아니다. 바로 다음 문장을 입력하자.bin/mysql -u root -p
Enter password:12자리 랜덤 문자
그럼 터미널이mysql>
로 바뀌었을 것이다.
그래도 만약 서버가 실행되는지 보고싶다면, 새 터미널 창에서 다음 문장을 입력해보자.
$ps -ef | grep mysqld
..뭐가 막 뜨면 잘 실행중인거임.비밀번호 재설정 및 서버 종료
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '<새 비밀번호>';
mysql>exit
/usr/local/mysql#bin/mysqladmin -u root -p shutdown
끝!
3. php
다음의 순서로 진행된다.
필수 패키지 설치
$
sudo su
/usr/local# apt-getinstall libxml2-dev
/usr/local# apt-getinstall libjpeg-dev
/usr/local# apt-getinstall libpng-dev
/usr/local# apt-getinstall libsqlite3-dev
소스설치 파일 다운로드 및 압축해제
/usr/local#
wget https://www.php.net/distributions/php-8.1.0.tar.gz
/usr/local#tar tar xvfz php-8.1.0.tar.gz
php 설치
/usr/local#
cd php-8.1.0
/usr/local/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
/usr/local/php-8.1.0#make
/usr/local/php-8.1.0#make test
/usr/local/php-8.1.0#make install
Apache, PHP 연동
모듈 설치확인
아파치 설정 파일인httpd.conf
파일을 열어 PHP 모듈이 설치됐는지 확인한다.
/usr/local#cd apache2.4/conf
/usr/local/apache2.4/conf#gedit httpd.conf
그럼httpd.conf
파일이 열리는데, 약 165줄 근처의 다음 문장을 찾아보자.
165LoadModule php_module module/libphp.so
있다면 잘 설치 된것이다.
다음은 380줄 근처로 이동해서<IfModule mime_module>
을 찾은 뒤 아래에 다음 문장을 입력한다.AddType application/x-httpd-php .php .html
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
결과적으론 다음과 같이 작성되어 있어야한다....
380<IfModule mime_module>
381AddType application/x-httpd-php .php .html
382AddType application/x-compress .Z
383AddType application/x-gzip .gz .tgz
384#
...
php.ini 파일 세팅
/usr/local#cd php-8.1.0
/usr/local/php-8.1.0#cp php.ini-production /usr/local/lib/php.ini
테스트용 php 파일 작성
/usr/local#cd apache2.4/htdocs
/usr/local/apache2.4/htdocs#vi phpinfo.php
<?php
phpinfo();
?>
연결 확인
/usr/local#apache2.4/bin/httpd -k start
/usr/local#ps -ef | grep httpd | grep -v grep
/usr/local#sudo netstat -anp | grep httpd
/usr/local#sudo curl http://127.0.0.1
브라우저를 열고 127.0.0.1/phpinfo.php 에 접속시 php정보가 뜨면 성공!
안 뜰 경우 phpinfo.php 문서의 코드에서 띄어쓰기가 잘 되었는지 확인해보자.
'활동 > UMC 2기' 카테고리의 다른 글
6, 7주차 - Restful API와 node.js 프레임워크로 api 만들기 (0) 2022.05.10 5주차 - 인스타밀리그램 DB 설계 및 홈 화면 쿼리 실습 (0) 2022.05.10 4주차 - AWS RDS 생성 및 SSH 접속 (0) 2022.04.06 3주차 - AWS 환경구축, 도메인 주소 할당 (0) 2022.04.06 2주차 - 포트포워딩, AWS 인스턴스 SSH 접속 (0) 2022.04.06 - 우분투 가상환경의 디스크 할당을 최소 50Gb는 잡아주자.