PHP5 + lighttpd fastcgi + mongodb + mysql(openeuse 12.1) 개발/운영 환경 설정
Opensuse 12.1 환경에서 PHP5 + lighttpd fastcgi + mongodb + mysql 개발/운영 환경 설정
* howtoforge.com 내용 참조, 테스트 실행 & 보완
1. Lighttpd & php5 환경 설정
# zypper in -y lighttpd
# systemctl enable lighttpd.service
# systemctl start lighttpd.service
* 기존의 php5 fastcgi 가 php5-fpm 패키지로 통합 업그레이드 되었고 별도 daemon으로 동작한다.
# zypper in -y php5-fpm
# mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf
# chmod 1733 /var/lib/php5
* error_log 부분을 un-comment 하고 아래와 같이 수정한다
# vi /etc/php5/fpm/php-fpm.conf
error_log = /var/log/php-fpm.log
* 아래 라인들을 찾아서 확인하고 몇 가지 mandatory 설정을 un-comment 한다(pm=dynamic 일 경우)
* howtoforge.com 에서는 해당 설정 부분이 누락되어 있다
pm = dynamic
pm.max_children = 50
pm.min_spare_servers = 5
pm.max_spare_servers = 35
* fpm용으로 별도의 php.ini 파일이 없으므로 cli용을 복사한다.
# cp /etc/php5/cli/php.ini /etc/php5/fpm/
* 아래 해당 라인을 찾아서 un-comment 한다.
# vi /etc/php5/fpm/php.ini
cgi.fix_pathinfo=1
# systemctl enable php-fpm.service
# systemctl start php-fpm.service
# vi /etc/lighttpd/modules.conf -> 아래 라인을 찾아서 un-comment
include "conf.d/fastcgi.conf"
server.modules = (
...
"mod_auth",
...
)
* 아래 라인을 추가
# vi /etc/lighttpd/lighttpd.conf
include "conf.d/auth.conf"
* 아래 라인들을 un-comment 하고 내용을 수정
# vi /etc/lighttpd/conf.d/auth.conf
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpd/lighttpd.user"
auth.require = ( "/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=loginid"
),
)
* 아래 로그인 정보를 등록하고 저장
# vi /etc/lighttpd/lighttpd.user
loginid:loginpassword
# vi /etc/lighttpd/conf.d/fastcgi.conf -> 아래 라인이 있는지 확인
server.modules += ( "mod_fastcgi" )
* 아래 내용을 추가(기존의 fastcgi.server 부분의 comment 는 그대로 둔다)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)
# systemctl restart lighttpd.service
* lighttpd의 default 문서 홈디렉토리는 /srv/www/htdocs 이다
# vi /srv/www/htdocs/info.php
<?php
phpinfo();
?>
* 브라우저로 접속 확인
2. MySQL과 utility 패키지 설치
* Web 을 통하지 않고 직접 DB접속을 위해 접속 클라이언트를 사용할 경우에는 아래와 같이 클라이언트를 설치한다.
# zypper in -y mysql-community-server-client
* MySQL 및 일반적으로 많이 사용하는 드라이버 설치
# zypper in -y php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-pear php5-sysvmsg php5-sysvshm
3. mongodb 드라이버 설치
* 11.x 환경과는 다르게 12.1 부터는 pecl 을 통해 php용 mongo 드라이버를 쉽게 설치할 수 있다
# pecl install mongo
# vi /etc/php5/fastcgi/php.ini -> 아래 라인을 추가
extension=mongo.so
# systemctl restart lighttpd.service
# systemctl restart php-fpm.service
* 1의 과정과 같이 브라우저를 통해 php 환경에 맞게 설치된 드라이버들을 최종 확인한다.