ホームページ > バックエンド開発 > PHPチュートリアル > PHP デプロイメントの nginx 構成について考える

PHP デプロイメントの nginx 構成について考える

不言
リリース: 2023-03-24 22:26:02
オリジナル
2787 人が閲覧しました

この記事は、主に PHP のデプロイメントの nginx 構成を紹介しています。これは、必要な友人と共有できるようになります。

これは、php を開いた後に表示されます。エラー プロンプト エラー メッセージ (プロンプトがオンになっていない場合、ブラウザには 500 エラーのみが表示されます。これはトラブルシューティングが簡単ではありません。)

解決策:

この種のエラーは主に fastcgi の open_basedir パラメータによって制御されます。私の設定ファイルでは、このパラメータのデフォルト値は次のとおりです:
Warning: require(): open_basedir restriction in effect. File(/mnt/wwwroot/admincc/thinkphp/start.php) is not within the allowed path(s): (/mnt/wwwroot/admincc/public/:/tmp/:/proc/) in /mnt/wwwroot/admincc/public/index.php on line 17Warning: require(/mnt/wwwroot/admincc/thinkphp/start.php): failed to open stream: Operation not permitted in /mnt/wwwroot/admincc/public/index.php on line 17Fatal error: require(): Failed opening required '/mnt/wwwroot/admincc/public/../thinkphp/start.php' (include_path='.:/usr/local/php/lib/php') in /mnt/wwwroot/admincc/public/index.php on line 17
ログイン後にコピー

open_basedir パラメータの機能は、php が開くことができるファイルを特定のディレクトリ ツリーに制限することです。デフォルトの $document_root は /home/ です。 nginx.conf に設定されている wwwroot/default ディレクトリは /mnt/wwwroot/admincc/public にあります。プロジェクト ディレクトリは open_basedir に含まれていないため、解決策は非常に簡単です。プロジェクトのホームディレクトリを追加します。

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
ログイン後にコピー

追記: 別の解決策は、このパラメータを直接コメントアウトすることです。

2 番目の質問:

エラー メッセージ:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/mnt/wwwroot:$document_root/:/tmp/:/proc/";
ログイン後にコピー

エラー メッセージは、セキュリティ上の理由から scandir 関数が無効になっているというものです。

解決策:

はい、プロンプトのとおり、この機能は php.ini でデフォルトで無効になっています。
scandir() has been disabled for security reasons
ログイン後にコピー

明らかに、scandir は無効になっています。解決策は簡単です。scandir を削除して php-fpm を再起動するだけです。

service php-fpm restart
ログイン後にコピー
第三个问题:

访问报404错误。

解决办法:

这个的原因在于nginx的配置有问题,在vhost/admincc.conf(站点虚拟主机的配置文件)中添加如下配置即可:

location / {            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;                break;
            }
        }
ログイン後にコピー

由于ThinkPHP的入口文件是index.php,所以要重写下url。
保存配置,记得重启nginx。

相关推荐:

thinkphp部署到万网云服务器上报连接不上mysql

以上がPHP デプロイメントの nginx 構成について考えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート