ホームページ >バックエンド開発 >PHPチュートリアル >nginx+phpの設定
オンライン上にはたくさんの方法がありますが、実際の操作では常に大小の矛盾が多く、長い闘病生活を経て、私は徐々に医師になりました。 . いくつかの体験談をまとめてみました。自分自身に満足してください。
この方法は、Apache と php_module を実行する以前に一般的だった方法ではありません。私は Web サーバーとして nginx を使用し、fastcgi モードで php を実行します。
Linux でのコンパイル:
私はまだ nginx のバージョン 8.54 を選択することに慣れていますが、これらのソース コード パッケージを解凍し、configure でこれらのソース コードのパスを設定すると、nginx が自動的にコンパイルされます。コンパイルしたもの:
pcre: 主に書き換えやその他のモジュールに使用されます
zlib: これは言うまでもありません
Openssl: https についてまだ知っているなら、理解できます~~~ (もちろん必要ありません)この関数)
md5/sha1: どちらも情報ダイジェストを生成するために使用されるハッシュ アルゴリズムです。これら 2 つは必須ではありませんが、どちらかが選択されていない場合、openssl は nginx に正常にコンパイルされないことがわかりました
。以下は、私が自分で書いたインストール スクリプトです。temp-path という単語が設定されたコンパイル オプションは、nginx の実行時に生成される一時ファイルのパスであり、log-path も同様です。ログ ファイル パス。私のマシンでは権限の問題があるため、設定する必要があります。通常、これらは必要ありません。デフォルトでは、nginx は生成されたすべてのファイルを独自のインストール ディレクトリに置きます。 nginx
log=/home/jsckdao/log
pcre=~/ダウンロード/pcre-8.02
zlib=~/ダウンロード/zlib-1.2.5-src
openssl=~/ダウンロード/openssl- 0.9.8q
md5=~/Downloads/md5-1.3.0
./configure --prefix=/usr/local/nginx
--http-proxy-temp-path=${tmp}/nginx-proxy.tmp
--http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp
--http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp
- -http- scgi-temp-path=${tmp}/nginx-scgi.tmp
--http-client-body-temp-path=${tmp}/nginx-client.tmp
--pid-path =${ tmp}/nginx.pid
--lock-path=${tmp}/nginx.lock
--http-log-path=${log}/http.log
--error-log -path= ${log}/http-error.log
--with-pcre=$pcre #pcre ソース コード パッケージ パス
--with-zlib=$zlib #zlib ソース コード パッケージ パス
--with -http_ssl_module # ssl サポートを有効にする
--with-openssl=$openssl #openssl ソース パッケージ パス
make
make install
php(5.2) のコンパイルは、php をコンパイルするため、より複雑または単純になる可能性があります。主な目的はコンパイルすることです。スクリプト エンジンといくつかのコア ライブラリは、PHP をコンパイルするときに追加する必要がなく、必要に応じて拡張ライブラリにコンパイルし、設定ファイルを変更してロードできます。
私のコンパイルされたコードは次のとおりです:
./configure --prefix=/usr/local/php
--with-mysql=/usr/local/mysql #mysql のインストール パスを設定します
-- Enable- fastcgi #fastcgi support を有効にする
--enable-debug #デバッグをサポートする
make
make install
実際、mysql に関する文は省略可能ですが、mysql 拡張機能を再度コンパイルするのが面倒なので、このように配置しました。これは php に直接コンパイルされます。このための前提条件は、最初に mysql をインストールする必要があることです。
順序以外にも注意すべき点がいくつかあります: PHP をコンパイルするときは、システムに 2 つのソフトウェア パッケージ libxml2 と libxml2-dev があることを確認する必要があります。これは、PHP がデフォルトで XML 関数をその中にコンパイルするため、XML がサポートされていないためです。が不可欠です。 autoconf コマンドもあり、拡張機能をコンパイルするときに、phpize はシステム内でこのコマンドを呼び出して拡張機能パッケージの設定ファイルを生成します。これがなければ、PHP では拡張機能を実行できません。 Linux では、Windows バージョンのように、すべての拡張機能が事前にコンパイルされているわけではありません。Windows への nginx と php のインストールに関しては、zip パッケージを解凍して使用するだけです。
設定:
php を実行するだけの場合は、それを入力します。直接コマンド:
./php-cgi -b 3344
これにより、php の fastcgi プロセスが開始されます。 -b パラメーターは、プロセスにバインドされているリスニング ポートです。ここにバインドされているのは 3344 です。
次に、次の行を nginx 設定ファイルに追加します:
location ~ .php$ {
root /home/jsckdao/www; #これはあなたのウェブサイトのルートディレクトリです G FastCGI_PASS 127.0 .0.1:3344;#ここで、Nginx がリッスンする FastCGI プロセスのポートは
Fastcgi_index Index.php です。
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params; ポートをリッスンする場合は、/home/jsckdao/ で nginx を実行し、テスト ファイル test.php を作成します。 www ディレクトリ:
phpinfo();
?>
http://localhost:8080/test.php にアクセスして、php が表示されている場合は、設定情報は基本的にありません。この環境を使用して PHP コードを作成することはすでに可能です
PHP デバッガーに関しては、特に理由があるわけではありませんが、単に習慣から xdebug を選択しています。 xdebugを読み込む際、設定ファイルへの記述方法はシステムによって少し異なるようです。 Linux では、zend_extension_debug=
もちろん、これは php を実行するだけの非常に単純な構成です。必要な開発環境を実際に作成するには、必要に応じて php と nginx の設定ファイルを変更する必要があります。私自身も勉強になる内容がたくさんあります。詳細には触れません
ソース パッケージには 2 つの php 設定ファイルがあることに注意してください: php.ini-dist と php.ini-recommended は、それぞれ実稼働環境と開発環境の設定です。再起動後、phpinfo() ページの上部に「ロードされた設定ファイル」という項目があるので、その値が php.ini のパスであることを確認してください。そうでない場合は、上記の「設定ファイル (php.ini) パス」を参照して、php.ini ファイルをこのディレクトリに移動して再起動してください。php はこのディレクトリ内で php.ini を検索します。もちろん、php-cgi を使用する場合は、php.ini パスを設定して、次のように実行することもできます。構成ファイルとしての /home/jsckdao/php.ini ファイルです。