[step 0] root 사용자로 접속 후 'yum -y remove httpd' 를 입력해 기존에 기본으로 설치된 httpd 제거
[step 1] 아파치 웹 서버 소스 파일을 다운로드 한다.
1-1. 먼저 httpd를 컴파일하기 전에 필수 요소인 pcre-8.33.tar.bz2 파일을 다운로드 한다.
1-2. pcre-8.33 디렉토리로 이동한 후 다음의 컴파일 관련 명령어를 차례로 입력한다.
./configure ; make ; make install -> 환경 설정, 컴파일, 설치를 동시에 진행
소스를 컴파일한다는 의미는 프로그램 소스(대개는 C언어로 만들었음)를 gcc 컴파일러로 직접 컴파일해서 사용한다는 의미다. 소스 컴파일 과정 대부분은 크게 아래 3단계를 거친다. | |
configure(환경설정) |
프로그램이 설치될 리눅스의 환경과 용도에 따라 다양한 설치 옵션을 지정할 수 있다. 결과로 'Makefile' 이라는 파일이 만들어진다. |
make(컴파일) |
실제 소스 파일을 컴파일하는 과정이다. configure에서 만들어진 Makefile을 이용해서 컴파일한다. |
make install(설치) |
컴파일이 완료된 실행 파일이나 관련 파일들을 해당 디렉토리에 설치한다. |
1-3. Apache 소스파일인 httpd-2.4.7.tar.bz2 를 다운로드한다.
1-4. Apache 소스 파일을 컴파일할 때 필수로 사용하는 Apache Portable Runtime 소스 파일인 apr-1.5.0.tar.bz2 와 apr-util-1.5.3.tar.bz2 를 다운로드 한다.
1-5. tar 명령어를 통해 3개의 파일(httpd-2.4.7.tar.bz2, apr-1.5.0.tar.bz2, apr-util-1.5.3.tar.bz2)을 압축해제 후 mv 명령어를 이용해 디렉토리 이동 및 이름을 변경한다.
1-6. 이제 아파치 소스 파일을 컴파일 하기위한 준비가 다되었으니 본격적으로 아파치 소스컴파일을 시작한다. 컴퓨터의 성능에 따라 수 분~수십 분이 걸릴 수 있다.
※ configure 명령어의 옵션 중 '--prefix='은 프로그램을 설치할 디렉토리를 지정하는 것이다.
1-7. 컴파일과 설치가 끝나면 vi 또는 gedit 로 /etc/ld.so.conf 파일을 열어서 /web/httpd2/lib 와 /web/httpd2/modules 를 추가하고 저장한다.
1-8. 추가한 내용을 적용하려면 'ldconfig' 명령어를 입력한다.
1-9. 'cp /web/httpd2/bin/apachectl /etc/init.d/httpd2' 를 입력해 아파치 시작 스크립트 파일을 /etc/init.d/ 디렉토리에 복사한다.
1-10. vi 에디터로 /etc/init.d/httpd2 파일을 열어서 맨 아래 부분에 다음과 같이 추가한다. 띄어쓰기에 주의한다.
1-11. 컴퓨터가 부팅될 때 자동으로 시작되도록 다음 명령을 입력한다.
chkconfig httpd2 on -> 컴퓨터가 부팅될 때 자동으로 시작하도록 설정
systemctl restart httpd2 -> 아파치 웹 서버 가동
systemctl status httpd2 -> 아파치 프로세스 가동 확인
1-12. 웹 서버 작동 테스트를 위해 웹 브라우저에서 http:// 또는 http://127.0.0.1로 접속해서 다음과 같이 나타나면 웹 서버는 정상적으로 작동하는 것이다.
※ 컴파일한 아파치의 홈 디렉토리는 /web/httpd2/htdocs/ 이고, 지금 열린 파일은index.html이다.
[step 2] MariaDB는 이미 컴파일된 바이너리 코드를 다운로드해서 설치해보자.
2-1. 'groupadd mysql' 을 입력해 MariaDB를 사용할 그룹인 mysql을 만들고 'adduser -M -d /web/mariadb -g mysql -s /bin/false -r mysql' 을 입력해 mysql 이라는 사용자를 생성하자.
adduser 옵션 정리 | |
-M |
생성하는 사용자의 홈디렉토리를 만들지 않는다. |
-d |
사용자 홈디렉토리를 지정 |
-g |
생성할 사용자가 속할 그룹을 지정한다. |
-s |
생성할 사용자가 사용할 기본 shell 을 지정한다. |
-r |
시스템계정 자격으로 생성, 계정 id가 1000번 미만으로 할당되며, 특별히 지정하지 않는이상 홈폴더도 생성하지 않는다. |
mysql 사용자를 -r 옵션을 통해 시스템계정으로 생성하는 이유는 단순히 mariaDB 데몬을 실행하기 위한 유저일뿐 root 나 일반 사용자처럼 쉘로그인을 위한 유저는 아니기 때문이다. 그렇기에 옵션 중에 사용자 생성시 기본 shell을 지정하는 부분에 -s /bin/false 과 같이 서버의 보안강화 측면에서 외부에서 mysql 유저로 쉘로그인을 못하게 막아두었다.
-s /bin/false : 유저의 로그인쉘을 사용할 수 없게 하는 것
2-2. '/web/mariadb/scripts/mysql_install_db --user=mysql --basedir=/web/mariadb --datadir=/web/mariadb/data' 입력해 MariaDB를 설치한다.
2-3. 'cp -a /web/mariadb/support-files/my-huge.cnf /etc/my.cnf' 을 입력해 설정 파일을 복사한다.
2-4. vi 에디터로 /etc/my.cnf 파일을 열고 [mysqld] 부분에 다음과 같이 추가하고 저장한다.
2-5. 실행 스크립트를 복사하고 서비스를 실행한다.
2-6. MariaDB의 관리자 root의 비밀번호를 지정
Enter password: 에서는 그냥 [엔터]를 누르고 [New password]와 [Confirm new password]는 새로운 비밀번호를 지정한다.
2-7. MariaDB가 정상 작동하는지 확인한다. 먼저 'PATH=$PATH:/web/mariadb/bin' 을 입력해 mysql 실행 디렉토리를 PATH에 추가한다. 그리고 'mysql -u root -p' 를 입력해 MariaDB 서버에 접속한다. 접속 후 show databases; 명령어를 통해 데이터베이스를 조회한다.
※ /etc/bashrc 파일의 맨 아래에 'PATH=$PATH:/web/mariadb/bin' 을 추가하면 다음부터는 'mysql' 명령어만 입력해도 MariaDB 서버에 접속 할 수 있다.
[step 3] PHP 모듈을 컴파일해서 설치하자.
3-1. PHP 5.5.6 소스파일(php-5.5.6.tar.bz2) 를 다운로드 한다.
3-2. 다음 명령을 차례로 입력해 소스 파일을 컴파일 한다.
--with-mysql=/web/mariadb |
MariaDB가 설치된 경로 지정 |
--with-apxs2=/web/httpd2/bin/apxs |
아파치의 apxs 디렉토리 지정 |
--with-mysqli=/web/mariadb/bin/mysql_config |
MariaDB 설정 파일 지정 |
3-3. DSO(Dynamic Shared Object) 방식의 컴파일이므로, 'ls -l /web/httpd2/modules/libphp5.so'를 입력해 /web/httpd2/modules/libphp5.so 파일을 확인한다. 참고로 DSO 방식으로 컴파일하면 libphp5.so 파일 1개만 생성된다.
※ DSO 방식의 컴파일을 동적 공유 객체 방식의 컴파일이라고 부르기도 하는데, 이는 웹 서버인 httpd에 기능이 포함되는 것이 아니라, 외부에 기능을 두고 필요할 때마다 동적으로 필요한 기능을 호출해서 사용하는 것이다.
3-4. 웹 서버 가동 시 필요한 PHP 모듈(libphp5.so) 파일을 등록한다. vi 에디터로 /web/httpd2/conf/httpd.conf 파일을 열어 다음 내용을 확인하고 없으면 추가한다.
149행 쯤 확인 : LoadModules php5_module modules/libphp5.so
378행 쯤 추가 : AddType application/x-httpd-php .php .php3 .php4 .php5 .htm .html .inc
3-5. 다음 명령을 입력해 PHP 설정파일인 php.ini-production 을 /etc/php.ini로 복사한다.
3-6. 다음 명령을 차례로 입력해 웹 서버 가동을 멈추었다가 다시 가동한다. 주의할 점은 restart는 잘 작동하지 않는 경우도 있으니, 이번에는 꼭 stop/start로 작동시킨다. 그리고 웹서버가 정상적으로 가동하는지 systemctl status httpd2 명령어로 확인한다.
3-7. 'firewall-cmd --permanent --add-service=http' 와 'firewall --reload' 명령어를 통해 방화벽에서 아파치 서비스를 허용해준다. (X윈도우 환경에서는 firewall-config 명령어로 방화벽 설정을 한다.)
3-8. vi 에디터로 /web/httpd2/htdocs/phpinfo.php 파일을 생성한 후 '<?php phpinfo(); ?>'를 입력하고 저장한다.
3-9. 어느 컴퓨터에서든지 웹 브라우저로 http://서버IP주소/phpinfo.php로 접속해서 다음 그림과 같이 웹 페이지가 열리면 성공이다.
※ 소스컴파일을 통해 APM을 설치할 때 주의할 점은 최신 버전의 소스 파일을 사용한다고 꼭 좋은 것은 아니라는 점이다. 각기 다른 프로그램 세 개를 연동해 운영하는 것이므로, 각 프로그램끼리 잘 어울리는 버전이 별도로 있다는 사실을 기억하자.
'네트워크 서버 구축 실무' 카테고리의 다른 글
네임서버 설치와 운영 (0) | 2015.08.07 |
---|---|
프록시 서버 설치와 운영(페도라의 Squid 프록시서버) (0) | 2015.01.04 |
vsftpd의 설치와 운영 (0) | 2014.12.30 |
VNC 서버구축(Fedora 19) (0) | 2014.12.26 |