ホームページ  >  記事  >  バックエンド開発  >  Nginx をサポートする ThinkPHP フレームワーク_PHP チュートリアル

Nginx をサポートする ThinkPHP フレームワーク_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:07:00829ブラウズ

最近、会社のサーバーの 1 つを Apache から Nginx に移行するときに問題が発生したので、メモを作成しました。
問題は、上記の Web サイトが ThinkPHP フレームワークに基づいて開発されており、デフォルトの方法を使用して構成できないという事実にあります。 Baidu オンラインで検索したところ、この問題は非常に一般的であることがわかりました。一般的な解決策の構成は次のとおりです。 サーバー{
...
if (!-e $request_filename) {
^/(.*) $ /Index.php/ $1 最後に書き換えます。 休憩;
}

}

場所 ~ .+.php($|/) {

....

$script $uri を設定します;
$path_info "/" を設定します;
If ($uri ~ "^(.+.php)(/.*)") {
$script $1 を設定します;
$path_info $2 を設定します;
}

Fastcgi_param PATH_INFO $path_info;
Fastcgi_param SCRIPT_FILENAME /path/to/web-root$script;

}

昨日、本を読んでいるときに、fastcgi モジュールには、このような問題を解決するために特別に設計されたコマンドが付属していることを発見しました。このコマンドは、指定された正規表現に従って URL を分離し、スクリプト名とパスを抽出します。 .info 情報を取得するには、このコマンドを使用することで if ステートメントの使用を回避し、構成を簡素化できます。 (サーバー部分の if ステートメントは try_files に置き換えることができます)。新しい構成は次のとおりです。 サーバー{

...
try_files $uri /index.php$uri;
}

場所 ~ .+.php($|/) {
....

Fastcgi_split_path_info ^(.+.php)(/.*)$;

Fastcgi_param PATH_INFO $fastcgi_path_info;
Fastcgi_param SCRIPT_FILENAME /path/to/web-root$fastcgi_script_name;

}

http://www.bkjia.com/PHPjc/477891.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477891.html技術記事最近、会社のサーバーの 1 つを Apache から Nginx に移行する際に問題が発生したのでメモしておきます。 問題は、上記の Web サイトが ThinkPHP フレームワークに基づいて開発されており、デフォルトを使用していることです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。