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 연동하기
* gd 라이브러리 관련 설치
[root@divweb7 src]# yum -y install libjpeg-devel libpng-devel giflib*
[root@divweb7 src]# yum -y install php-gd php5-gd
* PHP 홈페이지에서 소스파일 다운로드, 설치
[root@divweb7 src]# tar xvzf php-5.6.24.tar.gz
[root@divweb7 src]# cd php-5.6.24
[root@divweb7 php-5.6.24]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-regex=php --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-magic-quotes --with-gd --enable-mbstring
--기존 옵션대로 하면 아래와 같은 warning 발생
configure: WARNING: unrecognized options: --enable-magic-quotes
--기존 옵션대로 하면 아래와 같은 error 발생
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql. Note that the MySQL client library is not bundled anymore!
for f in libmysqlclient.so*; do ln -s $f $(echo $f | sed s/libmysqlclient/libmysqlclient_r/); done
[root@divweb7 lib]# for f in libmysqlclient.so*; do ln -s $f $(echo $f | sed s/libmysqlclient/libmysqlclient_r/); done
[root@divweb7 lib]# ln -s libmysqlclient.a libmysqlclient_r.a
[root@divweb7 lib]# ls -lrt
total 539100
-rw-r--r-- 1 root mysql 40758 Jul 24 05:22 libmysqlservices.a
-rwxr-xr-x 1 root mysql 9503078 Jul 24 08:14 libmysqlclient.so.20.3.0
-rw-r--r-- 1 root mysql 522047824 Jul 24 08:33 libmysqld.a
-rw-r--r-- 1 root mysql 20434562 Jul 24 08:34 libmysqlclient.a
lrwxrwxrwx 1 root mysql 24 Jul 24 08:34 libmysqlclient.so.20 -> libmysqlclient.so.20.3.0
lrwxrwxrwx 1 root mysql 20 Jul 24 08:34 libmysqlclient.so -> libmysqlclient.so.20
drwxr-xr-x 3 root mysql 4096 Jul 24 08:34 plugin
drwxr-xr-x 2 root mysql 27 Jul 24 08:34 pkgconfig
lrwxrwxrwx 1 root root 17 Jul 25 09:24 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx 1 root root 20 Jul 25 09:24 libmysqlclient_r.so.20 -> libmysqlclient.so.20
lrwxrwxrwx 1 root root 24 Jul 25 09:24 libmysqlclient_r.so.20.3.0 -> libmysqlclient.so.20.3.0
lrwxrwxrwx 1 root root 16 Jul 25 09:24 libmysqlclient_r.a -> libmysqlclient.a
(참조: http://techblog.vindvejr.dk/?p=130)
[root@divweb7 php-5.6.24]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-regex=php --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --with-gd --enable-mbstring
*컴파일 시, 아래와 같은 오류 발생 시, mysql 옵션 변경. php에서 --with-mysql=/usr/local/mysql 지원안함(php7.0부터는 완전히 빠짐)
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!
[root@divweb7-1611 apache]# ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-regex=php --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --with-gd --enable-mbstring
[root@divweb7 php-5.6.24]# make
[root@divweb7 php-5.6.24]# make test
[root@divweb7 php-5.6.24]# make install
php.ini 파일 copy
[root@divweb7 php-5.6.24]# cp ./php.ini-development /usr/local/apache/conf/php.ini
아파치가 php3, php, php4등의 확장자를 인식할수 있도록 웹서버 환경 설정파일을 수정
[root@divweb7 php-5.6.24]# cd /usr/local/apache/conf
[root@divweb7 conf]# vi ./httpd.conf
-- 기존 있는 지 확인 LoadModule php5_module modules/libphp5.so
-- 새로 넣어줌 AddType application/x-httpd-php .php .php3 .php4 .htm .html .inc
# vi /usr/local/apache/conf/php.ini
short_open_tag = On
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED
display_errors = On
display_startup_errors = On
date.timezone = "Asia/Seoul"
extension_dir = "/usr/lib64/php/modules"
upload_max_filesize = 100M
post_max_size = 50M
* phpinfo.php 확인 (openssl, mysql 연동확인)
# vi phpinfo.php
<?php
phpinfo();
?>
* mysql 연동확인 - 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", "root암호입력", "world");
if($db){
echo "connect : success<br>";
}
else{
echo "disconnect : fail<br>";
}
?>
</body>
</html>
웹페이지 결과
MySql TEST
connect : success

