ホームページ >バックエンド開発 >PHPチュートリアル >PHP デプロイメントの nginx 構成について考える
この記事は、主に PHP のデプロイメントの nginx 構成を紹介しています。これは、必要な友人と共有できるようになります。
解決策:
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 関数が無効になっているというものです。
解決策:
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。
相关推荐:
以上がPHP デプロイメントの nginx 構成について考えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。