我正在尝试在我的nginx Web服务器上安装phpmyadmin。 我安装了phpmyadmin没有问题。 我为它创build了子域名。 出于安全原因,我没有打电话给我的子域“phpmyadmin”我用了一个不同的名字。 然后我用这个configuration为我的子域
server { listen 80; server_name myphpmyadminsubdomain.domain.com; access_log off; error_log /srv/www/myphpmyadminsubdomain/error.log; location / { root /usr/share/phpmyadmin; index index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_intercept_errors on; fastcgi_pass php; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ /\. { deny all; access_log off; log_not_found off; } }
然后我就这样启用了;
/etc/nginx/sites-available/myphpmyadminsubdomain /etc/nginx/sites-enabled/myphpmyadminsubdomain
我已经重新启动了nginx并转到myphpmyadminsubdomain.domain.com,它给了我nginx 404 Not Found错误。
我究竟做错了什么?
这是我的configuration
server { listen 80; ## listen for ipv4 server_name pma.example.com; access_log /var/log/nginx/pma.access.log; error_log /var/log/nginx/pma.error.log; root /server/phpmyadmin/phpMyAdmin-3.4.2-all-languages; location / { index index.php index.html; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_intercept_errors off; fastcgi_pass php; } }
根应该更改为/usr/share/phpmyadmin并且fastcgi_params应该被适当地改变。
这通常是一个path问题。 在nginx.conf中设置
fastcgi_param SCRIPT_FILENAME /absolute/path/to/server/root$fastcgi_script_name;
请注意,path中最后一个目录后没有斜线。 其次,将fastcgi_pass传递给套接字或本地URL。
你是chroot你的PHP-CGI? 那么所有的path必须是相对于chroot。