외부활동/UMC 2기 서버[Node]

1주차 - 서버 개요 및 Ubuntu(우분투) APM 수동 설치

softmoca__ 2024. 1. 24. 18:29
목차

1주차는 우선 APM 중 어느 하나 제대로 설치한 것이 없어 팀원들에게 도움을 많이 받았다.

또한 차후 또 같은 작업을 하게 될것을 대비해 팀원들의 워크북과 구글링의 양질의 블로그 들을 비교 하여 한번에 싹 정리를 시작 한다..!

 

 

우분투 환경에서 비트나미와 같은 패키지를 사용하지 않고 수동 APM를 설치

 

*소스 설치의 관례*

설치를 할때는 아무곳에서나 설치를 하면 안되고 /usr/local 에 설치를 해야 한다.

-->이 부분을 놓쳐 상당한 시간을 삽질을 했다.

 

  1. 소스파일을 내려받고
  2. ./configure로 설정을 한다.
  3. make로 컴파일을 한 뒤
  4. make install로 설치한다.
  5. configure: 소스파일에 대한 환경설정을 해주는 명령어다. (뒤에 옵션을 넣음) 서버환경에 맞추어 makefile을 생성해주는 과정이다.
  6. make: 소스를 컴파일 하는 것이다. 컴파일이란 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다.
  7. make install: make를 통해 만들어진 설치파일을 설치하는 과정이다.
  8. 한마디로 build된 프로그램을 실행할 수 있게 파일들을 알맞은 위치에다가 복사를 한다.

 

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 에서 직접 다운받은 후 압축해제 해준다.

  • mkdir: 디렉토리를 생성하는 명령어이다.
  • wget: 웹 서버로부터 파일을 다운받는다.
  • tar xvfz: tar.gz 압축을 한 번에 풀어준다.
  • APR: APR(아파치 포터블 런타임)는 아파치 HTTP 서버 2.x.의 핵심이며 휴대용 라이브러리이다. 이런 APR은 고급 IO 기능(예:sendfile, epoll and OpenSSL 등)에 대한 접근을 포함하여 OS 수준의 기능 (난수 생성, 시스템 상태), 그리고 기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용되고 있다.
  • PCRE: PCRE( Perl Compatible Regular Expressions )는 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합이다. 요즘에는 Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되고 있으며, 아파치 2.4 버전을 설치할 때는 pcre를 설치해야 한다.

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 (이름 아무거나 상관없다 여기서는 그냥 이름을 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

 

이후 나오는 임시 비밀번호를 메모해두자 !!

 

MySQL 서버 실행 및 비밀번호 재설정

MySQL 서버 실행

/usr/local/mysql# bin/mysqld_safe --user=mysql &
bin/mysql -u root -p
Enter password: "바로 직전에 발급맏은 임시 비밀번호"

 

$ ps -ef | grep mysqld

서버가 잘 실행 되고 있는지 위명령어로 확인

php

 

필수 패키지 설치

$ sudo su
/usr/local# apt-get install libxml2-dev
/usr/local# apt-get install libjpeg-dev
/usr/local# apt-get install libpng-dev
/usr/local# apt-get install 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


165 LoadModule php_module module/libphp.so  (잘 설치 됨을 확인)


다음은 380줄 근처로 이동해서 <IfModule mime_module>을 찾은 뒤 위의 문장들을 입력한다.
vi 편집기로 열어 잘 저장이 되었는지 확인하기

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 파일 작성

아파치의 웹 콘텐츠(html,php 파일 등)는 htdocs 디렉토리에 위치한다.

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


<?php
  phpinfo();
?>

 

입력

 

 

연결 확인

아래 명령어로 아파치를 실행 시킨 뒤 php로 접속하여 설치 정보가 출력 되면 성공이다.

/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

 

 

 

 

 

참고

https://yeni-days.tistory.com/7?category=1020921

 

[Ubuntu] Ubuntu-20.04에 APM 소스 설치(수동 설치)하기 - 2 (MySQL)

2021.11.25 - [Ubuntu] - [Ubuntu] Ubuntu-20.04에 APM 소스 설치(수동 설치)하기 - 1 (Apache, Mysql, php) [Ubuntu] Ubuntu-20.04에 APM 소스 설치(수동 설치)하기 - 1 (Apache, Mysql, php) 소스설치 소스설치, 수동설치, 컴파일설

yeni-days.tistory.com

https://with611.tistory.com/3

 

1주차 - Ubuntu APM 소스 수동설치

1주차의 목표는 로컬 컴퓨터에 APM 소스를 우분투 환경에 수동으로 설치해 보는 것이었다. 필자는 다른 블로그를 참고하여 설치해 보았으나, 환경이 달랐는지 중간에 막히는 부분이 있었고, 참고

with611.tistory.com