Centos 7 APM 설치 [펌] - 2
- 환경 설정
로그를 “/var/log/httpd” 폴더로 저장하기 위해서 설정하기 전에 폴더를 생성한다.
1 | [root@host httpd-2.4.6] mkdir /var/log/httpd |
설치시 환경 설정 경로(–sysconfdir)를 “/etc/httpd” 폴더로 설정했기 때문에 “/etc/httpd” 폴더에 설정 파일들이 생성되어 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | [root@host httpd-2.4.6] cd /etc/httpd[root@host httpd] vi httpd.conf# 사용할 모듈의 주석을 제거하여 활성화한다LoadModule slotmem_shm_module modules/mod_slotmem_shm.soLoadModule dav_module modules/mod_dav.soLoadModule vhost_alias_module modules/mod_vhost_alias.soLoadModule negotiation_module modules/mod_negotiation.soLoadModule rewrite_module modules/mod_rewrite.so...# 그룹 계정 비활성화<IfModule unixd_module>## If you wish httpd to run as a different user or group, you must run# httpd as root initially and it will switch.## User/Group: The name (or #number) of the user/group to run httpd as.# It is usually good practice to create a dedicated user and group for# running httpd, as with most system services.#User daemonGroup #-1</IfModule># 관리자 이메일ServerAdmin keypointer@gmail.com# 서버 이름ServerName www.keypointer.co.kr:80# 루트 디렉토리DocumentRoot "/usr/local/httpd/htdocs"<Directory "/usr/local/httpd/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # for more information. # Options FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted</Directory># 폴더로 접근할 때 실행하는 인덱스 파일 설정## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#<IfModule dir_module> DirectoryIndex index.html</IfModule># 로그 파일 저장 위치# ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a <VirtualHost># container, error messages relating to that virtual host will be# logged here. If you *do* define an error logfile for a <VirtualHost># container, that host's errors will be logged there and not here.#ErrorLog "/var/log/httpd/error_log"<IfModule log_config_module> # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a <VirtualHost> # container, they will be logged here. Contrariwise, if you *do* # define per-<VirtualHost> access logfiles, transactions will be # logged therein and *not* in this file. # CustomLog "/var/log/httpd/access_log" common # # If you prefer a logfile with access, agent, and referer information # (Combined Logfile Format) you can use the following directive. # #CustomLog "logs/access_log" combined</IfModule># 설정 파일 import# Server-pool management (MPM specific)Include /etc/httpd/extra/httpd-mpm.conf# Language settingsInclude /etc/httpd/extra/httpd-languages.conf# Virtual hosts#Include /etc/httpd/extra/httpd-vhosts.conf# Distributed authoring and versioning (WebDAV)Include /etc/httpd/extra/httpd-dav.conf-----------------------------------------------------------------[root@host httpd] vi extra/httpd-mpm.conf## PidFile: The file in which the server should record its process# identification number when it starts.## Note that this is the default PidFile for most MPMs.# PidFile "/var/log/httpd/httpd.pid"----------------------------------------------------------------[root@host httpd] vi extra/httpd-languages.confDefaultLanguage ko# LanguagePriority allows you to give precedence to some languages# in case of a tie during content negotiation.## Just list the languages in decreasing order of preference. We have# more or less alphabetized them here. You probably want to change this.#LanguagePriority ko en ca cs da de el eo es et fr he hr it ja ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW |
- 서비스 등록
apachectl 스크립트는 chkconfig 로 동작할 수 있도록 수정해야 한다.
Symbolic Link 를 만들고 apachectl 스크립트의 상단 부분을 아래와 같이 수정해야만 서비스로 추가가 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [root@host httpd] ln -s /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd[root@host httpd] vi /usr/local/httpd/bin/apachectl#!/bin/sh## Apache This starts and stops Apache.## chkconfig: 35 20 80# description: Apache Web Service## Licensed to the Apache Software Foundation...----------------------------------------------------------------[root@host httpd] service httpd start |
- 공유 라이브러리 추가
1 2 | [root@host httpd] echo "/usr/local/httpd/module" >> /etc/ld.so.conf[root@host httpd] ldconfig |
PHP 설치
- 의존 라이브러리 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | yum install libxml2-develyum install bzip2-develyum install libcurl-develyum install gdbm-develyum install libvpx yum install libvpx-develyum install libjpeg-turbo-develyum install libpng-develyum install libXpm libXpm-develyum install freetype-develyum install t1lib t1lib-develyum install gmp-develyum install libc-client libc-client-develyum install pam-develyum install libicu libicu-develyum install openldap-develyum install readline-develyum install libedit-develyum install libtidy libtidy-develyum install libxslt libxslt-devel |
- libmcrypt 설치
1 2 3 4 5 6 | [root@host downloads] wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download[root@host downloads] tar zxvf libmcrypt-2.5.8.tar.gz[root@host downloads] cd libmcrypt-2.5.8[root@host libmcrypt-2.5.8] ./configure[root@host libmcrypt-2.5.8] make; make install[root@host libmcrypt-2.5.8] ln -s /usr/local/lib/libmcrypt.so.4 /usr/local/lib64/libmcrypt.so.4 |
- MySQL 라이브러리 참조
1 | ln -s /usr/local/mysql/lib /usr/local/mysql/lib64 |
- 소스를 다운로드 받고 압축 해제
1 2 3 | [root@host ~] cd /root/downloads[root@host downloads] wget http://kr1.php.net/get/php-5.5.4.tar.gz/from/this/mirror[root@host downloads] tar zxvf php-5.5.4.tar.gz |
- 컴파일과 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [root@host downloads] cd php-5.5.4[root@host php-5.5.4] ./configure --prefix=/usr/local/php \--with-apxs2=/usr/local/httpd/bin/apxs --with-config-file-path=/etc/httpd \--with-mysql=/usr/local/mysql --with-mysql-sock=/var/mysql \--with-mysqli=/usr/local/mysql/bin/mysql_config \--with-pdo-mysql=shared,/usr/local/mysql \--with-regex=php --with-libxml-dir=/usr \--with-openssl --with-pcre-regex \--with-zlib --with-bz2 --with-curl \--with-gdbm --with-db4=/usr --with-dbm \--with-pcre-dir=/usr --with-openssl-dir=/usr \--with-libxml-dir=/usr \--with-gd \--with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr \--with-zlib-dir=/usr --with-xpm-dir=/usr \--with-freetype-dir=/usr --with-t1lib=/usr \--with-gettext --with-gmp --with-mhash \--with-imap --with-imap-ssl \--with-kerberos \--with-icu-dir=/usr \--with-ldap --with-ldap-sasl \--with-libmbfl --with-onig \--with-mcrypt \--with-libedit --with-readline \--with-tidy \--with-libexpat-dir=/usr --with-xmlrpc --with-xsl \--with-pear --with-pic \--with-libdir=lib64 \--enable-bcmath --enable-calendar \--enable-exif --enable-ftp --enable-pcntl \--enable-gd-native-ttf --enable-gd-jis-conv \--enable-intl --enable-mbstring \--enable-shmop --enable-sockets \--enable-sysvmsg --enable-sysvsem --enable-sysvshm \--enable-wddx --enable-zip \--enable-mysqlnd \--enable-dba=shared --enable-mod-charset \--enable-dom --enable-mbregex --enable-inline-optimization \--enable-sigchild --enable-soap \--enable-maintainer-zts \--enable-opcache=no[root@host php-5.5.4] make; make install |
- 환경 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [root@host php-5.5.4] cp php.ini-production /etc/httpd/php.ini[root@host php-5.5.4] vi /etc/httpd/php.ini; PHP's default character set is set to empty.; http://php.net/default-charsetdefault_charset = "UTF-8"; Whether to allow HTTP file uploads.; http://php.net/file-uploadsfile_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not; specified).; http://php.net/upload-tmp-dirupload_tmp_dir = /tmp; Maximum allowed size for uploaded files.; http://php.net/upload-max-filesizeupload_max_filesize = 50M; Maximum number of files that can be uploaded via a single requestmax_file_uploads = 20; Defines the default timezone used by the date functions; http://php.net/date.timezonedate.timezone = "Asia/Seoul" |
- Apache 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [root@host php-5.5.4] vi /etc/httpd/httpd.conf# PHP 모듈이 정상적으로 추가되었는지 확인LoadModule php5_module modules/libphp5.so<IfModule mime_module> ... 중략 ... AddType application/x-httpd-php .php .html AddType application/x-httpd-php-source .phps</IfModule>[root@host php-5.5.4] service httpd restart |
- PATH 추가
1 2 3 | [root@host php-5.5.4] ln -s /usr/local/php/bin/php /bin/php[root@host php-5.5.4] ln -s /usr/local/php/bin/php-config /usr/local/bin/php-config[root@host php-5.5.4] ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize |
– 테스트
1 | root@host php-5.5.4] echo "<?php phpinfo() ?>" > /usr/local/httpd/htdocs/index.html |







