Heim >Backend-Entwicklung >PHP-Tutorial >Informationen zur Nginx-Konfiguration für die PHP-Bereitstellung
Dieser Artikel stellt hauptsächlich die Nginx-Konfiguration der Think PHP-Bereitstellung vor, die einen gewissen Referenzwert hat. Jetzt kann ich sie mit allen teilen, die sie brauchen.
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
Dies ist die Fehlermeldung, die nach dem Einschalten der PHP-Fehleraufforderung angezeigt wird (wenn die Aufforderung nicht aktiviert ist, zeigt der Browser nur einen 500-Fehler an, der nicht einfach zu beheben ist.)
Dies geschieht. Der Fehler wird hauptsächlich durch den Parameter open_basedir in fastcgi.conf gesteuert. In meiner Konfigurationsdatei lautet der Standardwert dieses Parameters wie folgt:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
Die Funktion des Parameters open_basedir ist Um die Dateien, die PHP öffnen kann, auf ein bestimmtes Verzeichnis zu beschränken, ist das Standardverzeichnis $document_root das in nginx.conf konfigurierte Verzeichnis /home/wwwroot/default, und das Verzeichnis meines Projekts befindet sich unter /mnt/wwwroot/admincc /public. Da das Projektverzeichnis nicht in open_basedir enthalten ist, ist die Lösung sehr einfach: Fügen Sie einfach das Projekt-Home-Verzeichnis hinzu.
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/mnt/wwwroot:$document_root/:/tmp/:/proc/";
PS: Eine andere Lösung besteht darin, diesen Parameter direkt auskommentieren.
Fehlermeldung:
scandir() has been disabled for security reasons
Die Fehlermeldung lautet, dass die Scandir-Funktion aus Sicherheitsgründen deaktiviert ist.
Ja, wie Sie dazu aufgefordert werden, ist diese Funktion in php.ini standardmäßig deaktiviert.
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
Scandir ist offensichtlich deaktiviert und die Lösung ist einfach: Löschen Sie einfach Scandir und starten Sie PHP-FPM neu.
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。
相关推荐:
Das obige ist der detaillierte Inhalt vonInformationen zur Nginx-Konfiguration für die PHP-Bereitstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!