みなさんこんにちは。
内部には、unix:ソケットに基づいてphp-cgiを構成する方法の例があります。
この例は、UbuntuおよびDebianディストリビューション向けに設計されています。
はじめに
個人的に、私はこの方法が本当に好きなので、私はそれをよく知らない一般の人と共有することにしました。
まあ、まず、それは非常に単純だからです。
第二に、ソケットのおかげで柔軟
第三に、高速です。
さて、権利を含むその他の機会)
設置
その後、特別な標準アクションはありません:
nginx
sudo apt-get update
sudo apt-get install nginx
php
sudo apt-get php5-cgiをインストール
PHPとnginxをバインドする
リンクするには、1人の良い人Till Klampaeckelのスクリプトを使用します。
そして、
/ etc / init.d /ディレクトリにphp-fcgidファイルを作成し
ます以下を記述します:
#!/ bin / sh
#
#著者:Till Klampaeckel <till@php.net>
#クレジット
#*オリジナルスクリプト:http://unix.derkeiler.com/Mailing-Lists/FreeBSD/questions/2007-09/msg00468.html
#*改善:http://till.klampaeckel.de/blog/archives/30-PHP-performance-III-Running-nginx.html
#* CouchDBの起動スクリプトに触発されたすべてのLinux起動スクリプトfu(by Noah Slater)
SCRIPT_OK = 0
SCRIPT_ERROR = 1
DESCRIPTION = "php-fcgi super-duper-control thing"
NAME = php-fgcid
SCRIPT_NAME = $(ベース名$ 0)
WWW_GROUP = www-data
PHP_CGI = / usr / bin / php-cgi
phpfcgid_users = "user1 user2"
phpfcgid_children = "2"
phpfcgid_tmpdir = "/ tmp"
phpfcgid_requests = "100"
log_daemon_msg(){
エコー$ @
}
log_end_msg(){
#LSBライブラリに置き換えられるダミー関数。
if "$ 1"!= "0"; それから
echo "$ DESCRIPTIONのエラー:$ NAME"
fi
1ドルを返します
}
phpfcgid_start(){
echo "$ NAMEを$ phpfcgid_childrenの子で開始(req:$ phpfcgid_requests)。"
エクスポートPHP_FCGI_CHILDREN = $ phpfcgid_children
export PHP_FCGI_MAX_REQUESTS = $ phpfcgid_requests
$ {phpfcgid_users}のユーザー向け。 する
socketdir = "$ {phpfcgid_tmpdir} /。fastcgi。$ {user}"
mkdir -p $ {socketdir}
chown $ {user}:$ {WWW_GROUP} $ {socketdir}
chmod 0750 $ {socketdir}
su -m $ {user} -c "$ {PHP_CGI} -b $ {socketdir} / socket&"
やった
}
phpfcgid_stop(){
echo "$ NAMEを停止しています。"
pids = `pgrep php-cgi`
pkill php-cgi
}
phpfcgid_status(){
log_daemon_msg「実装予定:ステータス」
log_end_msg $ SCRIPT_ERROR
}
parse_script_option_list(){
ケース「$ 1」
開始)
log_daemon_msg "開始$説明" $ NAME
if phpfcgid_start; それから
log_end_msg $ SCRIPT_OK
他に
log_end_msg $ SCRIPT_ERROR
fi
;;
停止)
log_daemon_msg "$説明の停止" $ NAME
if phpfcgid_stop; それから
log_end_msg $ SCRIPT_OK
他に
log_end_msg $ SCRIPT_ERROR
fi
;;
再起動|強制リロード)
log_daemon_msg "$ DESCRIPTIONの再起動" $ NAME
if phpfcgid_stop; それから
if phpfcgid_start; それから
log_end_msg $ SCRIPT_OK
他に
log_end_msg $ SCRIPT_ERROR
fi
他に
log_end_msg $ SCRIPT_ERROR
fi
;;
ステータス)
phpfcgid_status
;;
*)
猫<< EOF>&2
使用法:$ SCRIPT_NAME {start | stop | restart | force-reload | status}
Eof
exit $ SCRIPT_ERROR
;;
エサック
}
parse_script_option_list $ @
カスタマイズする
nginx設定では、fastcgi_passを使用してユーザーコンプライアンスを設定します。
設定例:
サーバー{
80を聞きます。
server_name myhost.com;
access_log /var/log/nginx/myhost.com.access.log;
場所/ {
自動索引オン。
ルート/var/www/myhost.com;
index index.php index.html index.htm;
}
ロケーション〜.php {
fastcgi_paramsを含めます。
fastcgi_pass unix:/tmp/.fastcgi.www-data/socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/myhost.com/$fastcgi_script_name;
}
}
スクリプトの最初の実行:
sudo bash /etc/init.d/php-fcgid変更後、nginxを再起動して、どのようにするかを考えます。
実際にはそれだけです。
お楽しみください!