ホームページ >バックエンド開発 >PHPチュートリアル >nginx「仮想ディレクトリ」はphpソリューションをサポートしていません

nginx「仮想ディレクトリ」はphpソリューションをサポートしていません

WBOY
WBOYオリジナル
2016-06-13 13:02:40956ブラウズ

nginxの「仮想ディレクトリ」がPHPに対応していない問題の解決策

最近 Nginx を設定しており、PHP に FastCGI を使用しています。phpMyAdmin 管理データベースを Web サイトのルート ディレクトリにインストールしたくないので、混在しにくいです。このように、Web サイトのアプリケーションでは、phpMyAdmin のディレクトリを別の場所に置く必要がありますが、Apache ではエイリアスがあり、Nginx では仮想ディレクトリの概念がないため、最初はエイリアスで場所を使用してみました。簡単な設定方法

location /web/ {
alias /data/ web/;
indexindex.htmlindex.htmindex.php;
}

location ~ .*.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
include fcgi.conf;
}

できますhttp://localhost/web/ を使用して /data/web ディレクトリ内の静的ファイルにアクセスしますが、php ファイルにアクセスすると、「入力ファイルが指定されていません」というエラーが報告され、Nginx エラー ログに情報がありませんでした。インターネットで検索したところ、php ファイルはバックエンド FastCGI によって実行されていないという結論に達したため、いくつかの記事を検索し、

location /web/ {エイリアス /data/web/;
indexindex.htmlindex.htmindex.php;
}

location ~ ^/web/.+.php$ {
root /data /;
rewrite /web/(.*.php?) /$1 Break;
include fcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME /data/web$fastcgi_script_name;
}


location ~ .*.(php|php5)?$ {fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
include fcgi.conf;
}

これは、/web/ での rewrite メソッドを使用することを原則とします。処理のためにバックエンド FastCGI に送信され、phpMyAdmin を構成できるように PHP スクリプトの場所が指定されます。構成は次のようになります。

location /phpmyadmin/ {
alias /data/ phpmyadmin/;
indexindex.htmlindex.htmindex.php;
}

location ~ ^/phpmyadmin /.+.php$ {
root /data/;
rewrite /phpmyadmin/(.*.php?) /$1 Break;
include fcgi.conf;
fastcgi_pass 127.0.0.1:9000 ;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME /data/phpmyadmin $fastcgi_script_name;
}

location ~ .*.(php|php5)?$ {
fastcgi_pass 127.0. 0.1:9000;
fastcgi_indexindex.php;
fcgi を含みます。 conf;
}



location ~ .*.(php|php5) ?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index に注意してください。 Index.php;
include fcgi.conf;
}

この段落は phpmyadmin の後に配置する必要があります。これは Nginx の位置ルールに関連しています。詳しくは、Nginx のドキュメントを参照してください。さらに、phpMyAdmin で URI の絶対パスを設定する必要があります。これで完了です。

?

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。