본문 바로가기

Technical/Development

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 환경에 맞게 설치된 드라이버들을 최종 확인한다.