CentOS 7, 최신버전 APM(Apache+PHP+MySQL) 소스설치 및 Openssl 설치하기
1. CentOS 7 설치
2. MySQL 소스설치(5.7.13)
3. Openssl 소스설치(1.0.2h)
4. 아파치(Apache) 소스설치(2.4.23)
5. PHP 소스설치(5.6.24)
6. APM+OpenSSL 연동하기
1) 아파치 모듈 확인
[root@divweb7 modules]# ls -la
total 68528
drwxr-xr-x 2 root root 4096 Jul 25 09:43 .
drwxr-xr-x 14 root root 152 Jul 24 09:54 ..
-rw-r--r-- 1 root root 15017 Jul 24 09:52 httpd.exp
-rwxr-xr-x 1 root root 31721529 Jul 25 09:43 libphp5.so
-rwxr-xr-x 1 root root 36150 Jul 24 09:54 mod_access_compat.so
-rwxr-xr-x 1 root root 34141 Jul 24 09:54 mod_actions.so
-rwxr-xr-x 1 root root 59949 Jul 24 09:54 mod_alias.so
-rwxr-xr-x 1 root root 30690 Jul 24 09:54 mod_allowmethods.so
-rwxr-xr-x 1 root root 46498 Jul 24 09:54 mod_auth_basic.so
-rwxr-xr-x 1 root root 102108 Jul 24 09:54 mod_auth_digest.so
-rwxr-xr-x 1 root root 80090 Jul 24 09:54 mod_auth_form.so
-rwxr-xr-x 1 root root 31223 Jul 24 09:54 mod_authn_anon.so
-rwxr-xr-x 1 root root 38591 Jul 24 09:54 mod_authn_core.so
-rwxr-xr-x 1 root root 43620 Jul 24 09:54 mod_authn_dbd.so
-rwxr-xr-x 1 root root 32926 Jul 24 09:54 mod_authn_dbm.so
-rwxr-xr-x 1 root root 32959 Jul 24 09:54 mod_authn_file.so
-rwxr-xr-x 1 root root 56447 Jul 24 09:54 mod_authn_socache.so
-rwxr-xr-x 1 root root 69821 Jul 24 09:54 mod_authz_core.so
-rwxr-xr-x 1 root root 46483 Jul 24 09:54 mod_authz_dbd.so
-rwxr-xr-x 1 root root 37892 Jul 24 09:54 mod_authz_dbm.so
-rwxr-xr-x 1 root root 41620 Jul 24 09:54 mod_authz_groupfile.so
-rwxr-xr-x 1 root root 39636 Jul 24 09:54 mod_authz_host.so
-rwxr-xr-x 1 root root 31571 Jul 24 09:54 mod_authz_owner.so
-rwxr-xr-x 1 root root 30898 Jul 24 09:54 mod_authz_user.so
-rwxr-xr-x 1 root root 128335 Jul 24 09:54 mod_autoindex.so
-rwxr-xr-x 1 root root 35157 Jul 24 09:54 mod_buffer.so
-rwxr-xr-x 1 root root 98274 Jul 24 09:54 mod_cache_disk.so
-rwxr-xr-x 1 root root 229906 Jul 24 09:54 mod_cache.so
-rwxr-xr-x 1 root root 102704 Jul 24 09:54 mod_cache_socache.so
-rwxr-xr-x 1 root root 116490 Jul 24 09:54 mod_cgid.so
-rwxr-xr-x 1 root root 216869 Jul 24 09:54 mod_dav_fs.so
-rwxr-xr-x 1 root root 399383 Jul 24 09:54 mod_dav.so
-rwxr-xr-x 1 root root 71627 Jul 24 09:54 mod_dbd.so
-rwxr-xr-x 1 root root 98112 Jul 24 09:54 mod_deflate.so
-rwxr-xr-x 1 root root 37344 Jul 24 09:54 mod_dir.so
-rwxr-xr-x 1 root root 33518 Jul 24 09:54 mod_dumpio.so
-rwxr-xr-x 1 root root 32504 Jul 24 09:54 mod_env.so
-rwxr-xr-x 1 root root 43917 Jul 24 09:54 mod_expires.so
-rwxr-xr-x 1 root root 74013 Jul 24 09:54 mod_ext_filter.so
-rwxr-xr-x 1 root root 42211 Jul 24 09:54 mod_file_cache.so
-rwxr-xr-x 1 root root 61681 Jul 24 09:54 mod_filter.so
-rwxr-xr-x 1 root root 73206 Jul 24 09:54 mod_headers.so
-rwxr-xr-x 1 root root 167452 Jul 24 09:54 mod_include.so
-rwxr-xr-x 1 root root 86444 Jul 24 09:54 mod_info.so
-rwxr-xr-x 1 root root 35620 Jul 24 09:54 mod_lbmethod_bybusyness.so
-rwxr-xr-x 1 root root 35604 Jul 24 09:54 mod_lbmethod_byrequests.so
-rwxr-xr-x 1 root root 35792 Jul 24 09:54 mod_lbmethod_bytraffic.so
-rwxr-xr-x 1 root root 52792 Jul 24 09:54 mod_lbmethod_heartbeat.so
-rwxr-xr-x 1 root root 104529 Jul 24 09:54 mod_log_config.so
-rwxr-xr-x 1 root root 43186 Jul 24 09:54 mod_log_debug.so
-rwxr-xr-x 1 root root 36515 Jul 24 09:54 mod_logio.so
-rwxr-xr-x 1 root root 56492 Jul 24 09:54 mod_macro.so
-rwxr-xr-x 1 root root 60646 Jul 24 09:54 mod_mime.so
-rwxr-xr-x 1 root root 116938 Jul 24 09:54 mod_negotiation.so
-rwxr-xr-x 1 root root 199391 Jul 24 09:54 mod_proxy_ajp.so
-rwxr-xr-x 1 root root 146691 Jul 24 09:54 mod_proxy_balancer.so
-rwxr-xr-x 1 root root 59165 Jul 24 09:54 mod_proxy_connect.so
-rwxr-xr-x 1 root root 40304 Jul 24 09:54 mod_proxy_express.so
-rwxr-xr-x 1 root root 79036 Jul 24 09:54 mod_proxy_fcgi.so
-rwxr-xr-x 1 root root 131212 Jul 24 09:54 mod_proxy_ftp.so
-rwxr-xr-x 1 root root 102506 Jul 24 09:54 mod_proxy_hcheck.so
-rwxr-xr-x 1 root root 122959 Jul 24 09:54 mod_proxy_http.so
-rwxr-xr-x 1 root root 65230 Jul 24 09:54 mod_proxy_scgi.so
-rwxr-xr-x 1 root root 365255 Jul 24 09:54 mod_proxy.so
-rwxr-xr-x 1 root root 54265 Jul 24 09:54 mod_proxy_wstunnel.so
-rwxr-xr-x 1 root root 33688 Jul 24 09:54 mod_ratelimit.so
-rwxr-xr-x 1 root root 41832 Jul 24 09:54 mod_remoteip.so
-rwxr-xr-x 1 root root 49074 Jul 24 09:54 mod_reqtimeout.so
-rwxr-xr-x 1 root root 44387 Jul 24 09:54 mod_request.so
-rwxr-xr-x 1 root root 213890 Jul 24 09:54 mod_rewrite.so
-rwxr-xr-x 1 root root 139973 Jul 24 09:54 mod_sed.so
-rwxr-xr-x 1 root root 33917 Jul 24 09:54 mod_session_cookie.so
-rwxr-xr-x 1 root root 52447 Jul 24 09:54 mod_session_dbd.so
-rwxr-xr-x 1 root root 62736 Jul 24 09:54 mod_session.so
-rwxr-xr-x 1 root root 47191 Jul 24 09:54 mod_setenvif.so
-rwxr-xr-x 1 root root 55232 Jul 24 09:54 mod_slotmem_shm.so
-rwxr-xr-x 1 root root 51903 Jul 24 09:54 mod_socache_dbm.so
-rwxr-xr-x 1 root root 45012 Jul 24 09:54 mod_socache_memcache.so
-rwxr-xr-x 1 root root 80220 Jul 24 09:54 mod_socache_shmcb.so
-rwxr-xr-x 1 root root 43294 Jul 24 09:54 mod_speling.so
-rwxr-xr-x 1 root root 946151 Jul 24 09:54 mod_ssl.so
-rwxr-xr-x 1 root root 81657 Jul 24 09:54 mod_status.so
-rwxr-xr-x 1 root root 48544 Jul 24 09:54 mod_substitute.so
-rwxr-xr-x 1 root root 34621 Jul 24 09:54 mod_unique_id.so
-rwxr-xr-x 1 root root 37561 Jul 24 09:54 mod_unixd.so
-rwxr-xr-x 1 root root 34347 Jul 24 09:54 mod_userdir.so
-rwxr-xr-x 1 root root 27121 Jul 24 09:54 mod_version.so
-rwxr-xr-x 1 root root 40275 Jul 24 09:54 mod_vhost_alias.so
-rwxr-xr-x 1 root root 59455 Jul 24 09:54 mod_watchdog.so
2) httpd.conf : php, ssl 모듈 Load 확인
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule cache_socache_module modules/mod_cache_socache.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule macro_module modules/mod_macro.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module modules/libphp5.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf -- Virtual host 사용 시 주석해제
# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf
# Various default settings
#Include conf/extra/httpd-default.conf
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf -- SSL 사용 시 주석해제
3) extra/httpd-vhost.conf
*아파치 2.2.x 설정
NameVirtualHost 서버IP:80
<Directory "홈디렉토리">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
*아파치 2.4.x 설정
#NameVirtualHost 서버IP:80 -- 2.4.x 에서는 사용하지 않음
<Directory "홈디렉토리">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
4) extra/httpd-ssl.conf
*아파치 2.2.x 에서 사용했으나 2.4.x 에서는 사용하지 않는 설정
#SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
#SSLMutex "file:/usr/local/apache/logs/ssl_mutex"
#NameVirtualHost "서버IP":443
SSLCertificateFile "/usr/local/apache/conf/ssl/'인증서파일'"
SSLCertificateKeyFile "/usr/local/apache/conf/ssl/'개인키파일'"
SSLCertificateChainFile "/usr/local/apache/conf/ssl/'Chain CA인증서파일'"
SSLCACertificateFile "/usr/local/apache/conf/ssl/'ROOT CA'인증서 파일"
5) user 생성 후, phpinfo.php 파일 생성해서 APM, OpenSSL 연동확인
# vi phpinfo.php
<?
phpinfo();
?>
6) mysql 연동확인
# vi mysqltest.php
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>MySql-PHP TEST</title>
</head>
<body>
<?php
echo "MySql TEST<br>";
$db = mysql_connect("localhost", "root", "cxz123v", "world");
if($db){
echo "connect : success<br>";
}
else{
echo "disconnect : fail<br>";
}
#$result = mysql_query($db, 'SELECT VERSION() as VERSION');
#$data = mysql_fetch_assoc($result);
#echo $data['VERSION'];
#
# ini_set('display_errors', 'on');
# error_reporting(-1);
#
?>
</body>
</html>
* SSL모듈관련 에러가 발생하면 해당모듈을 찾아서 /usr/lib64에 copy 함
[root@divweb7 conf]# /usr/local/apache/bin/apachectl start
httpd: Syntax error on line 131 of /usr/local/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libssl.so.1.0.0: cannot open shared object file: No such file or directory
[root@divweb7 conf]# cp /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib64
[root@divweb7 conf]# /usr/local/apache/bin/apachectl start
httpd: Syntax error on line 131 of /usr/local/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
[root@divweb7 conf]# cp /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib64
[root@divweb7 conf]# /usr/local/apache/bin/apachectl stop
[root@divweb7 conf]# /usr/local/apache/bin/apachectl start

