内部には、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を再起動して、どのようにするかを考えます。
実際にはそれだけです。
お楽しみください!