になった。
従来であれば、LAMP一択の所をLEMP構築にしてみた話。
構成環境は相変わらずOpenVZ上で、開発機スペックイメージは以下の通り。
KMEM:32MB
MEM: 512MB
SWAP: 512MB
nginxの特性を考慮して、socketやファイル関連リソースは、通常より多めに割り当てした。
それでは、インストール開始。
OS自体の構築は、OWPでDebianイメージを展開して済ました。
■OS設定変更
■パッケージ導入dpkg-reconfigure locales dpkg-reconfigure tzdata
■php-fpm設定変更echo 'deb http://packages.dotdeb.org stable all' >> /etc/apt/sources.list echo 'deb-src http://packages.dotdeb.org stable all' >> /etc/apt/sources.list wget -O - http://www.dotdeb.org/dotdeb.gpg | apt-key add - apt-get update apt-get install nginx php5-fpm php5-gd php5-mysql php5-mcrypt php5-apc postfix mysql-server
...fpm自体...
/etc/php5/fpm/pool.d/www.conf を以下の様に適宜変更する。
...PHP自体( /etc/php5/fpm/php.ini )...listen = /var/run/php5-fpm pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 20
■nginx設定変更expose_php = off mail.add_x_header = off
VirtualHost関連の構成は、Plesk同等とする。
ちなみにデフォルトサイトは、メンテ用として一般非公開とする。
IP直打ちやCatchAllドメインでのサイトコンテツ提供は、考慮しない。
...下準備(VirtualHostとしてtest.domain.comを運用する)...
...環境設定を反映...mkdir -p /var/www/vhosts/default/httpdocs mkdir -p /var/www/vhosts/test.domain.com/{logs,httpdocs,private} touch /etc/nginx/sites-available/test.domain.com ln -s /etc/nginx/sites-available/test.domain.com /etc/nginx/sites-enabled/test.domain.com
/etc/nginx/sites-avaiable/default を以下の様に適宜変更する
※「server_tokens」は、apacheのServerTokenと同意義。
/etc/nginx/nginx.confで定義してもよい。
/etc/nginx/sites-avaiable/test.domain.com を以下の様に適宜変更するserver { listen 80 default; root /var/www/default/httpdocs; index index.html index.htm index.php; #catch all domain server_name _; server_name_in_redirect off; #hide server info server_tokens off; #disable suhosin for phpMyAdmin location /pma { fastcgi_param PHP_FLAG 'suhosin.simulation On'; deny all; allow 127.0.0.1;# for system maintainer's IP } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm; fastcgi_index index.php; include fastcgi_params; } }
■MySQL設定変更server { root /var/www/vhosts/test.domain.com/httpdocs; index index.html index.htm index.php; access_log /var/www/vhosts/test.domain.com/logs/access_log; error_log /var/www/vhosts/test.domain.com/logs/error_log; #catch all domain server_name test.domain.com www.test.domain.com; #with alias for www #hide server info server_tokens off; location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm; fastcgi_index index.php; include fastcgi_params; } }
/etc/mysql/my.cf を以下の様に適宜変更する
■Postfix設定変更[mysqld] #default-character-set=utf8 character-set-server=utf8 skip-character-set-client-handshake
※WEBサイトは、アプリ連携したメール送受信のみ、メールホスティングはしないケースを想定
メール振り分けはprocmail等でもいいけど、不要なアプリを入れずに済ませたいので自炊する。
設定内容自体は、本家マニュアルを踏襲。
...下準備...
事前にメール処理用ユーザーを登録する。
useradd -u 1005 -s /usr/sbin/nologin vmail
メール処理用スクリプトを設置する。
今回のサンプル( Python )
import os,sys,datetime now = datetime.datetime.now().strftime('%Y%M%d_%H%I%S') f = open('/tmp/'+now,'w') f.write( str(sys.argv) +"\n") f.write( sys.stdin.read() )...環境設定を反映...
/etc/postfix/main.cfを以下の様に適宜変更する。
/etc/postfix/virtualを以下の様に適宜変更する。virtual_mailbox_domains = test.domain.com virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/virtual virtual_uid_maps = static:1005 virtual_gid_maps = static:1005 transport_maps = hash:/etc/postfix/transport
/etc/postfix/transportを以下の様に適宜変更する。debug@test.domain.com mailapp
/etc/postfix/master.cfを以下の様に適宜変更する。debug@test.domain.com mailapp
ざっとこんな所。mailapp unix - n n - - pipe flags= user=vmail argv=/var/www/vhosts/test.domain.com/private/procmail.py ${sender}
一部チューニングをしているけれど、この辺は状況を見て調整する。
0 件のコメント:
コメントを投稿