我正在尝试configurationphpMyAdmin,所以我在Nginx中设置了stream动位置,但它将“pma”添加到根目录中:
2012/08/14 13:59:49 [error] 10151#0: *2 "/usr/share/phpMyAdmin/pma/index.php" is not found (2: No such file or directory), client: 192.168.1.2, server: domain.com, request: "GET /pma/ HTTP/1.1", host: "192.168.1.24"
configuration:
location ^~ /pma { root /usr/share/phpMyAdmin; location ~ \.php$ { root /usr/share/phpMyAdmin; fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTPS on; }
## HTTP to HTTPS redirect server { listen 80; root /var/empty; server_name domain.com; rewrite ^ https://domain.com$request_uri permanent; } server { listen 443 default_server ssl; root /var/www/html; index index.php index.html index.htm; server_name domain.com; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTPS on; } ## phpMyAdmin location ^~ /pma { alias /usr/share/phpMyAdmin/; try_files $uri $uri/ /index.php; location ~ ^/pma(.+\.php)$ { fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; alias /usr/share/phpMyAdmin$1; fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1; include fastcgi_params; fastcgi_param HTTPS on; try_files $uri $uri/ /index.php?q=$request_uri; } } ## deny access to .htaccess files, if Apache's document root concurs with nginx's one location ~ /\. { access_log off; log_not_found off; deny all; } #serve static files directly location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ { access_log off; log_not_found off; expires 2w; add_header Pragma "public"; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } }
我正在尝试configurationphpMyAdmin,所以我在Nginx中设置了stream动位置,但是它将“pma”添加到根目录
因为它是root指令工作的方式。
如果要在location块中使用root指令,则必须指定一个与目录名称相同的URI,并将其从root除去,如下所示:
location /phpmyadmin { root /usr/share/; try_files $uri $uri/ /index.php; location ~ ^/phpmyadmin(.+\.php)$ { root /usr/share/; fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; fastcgi_intercept_errors on; } }
如果你想简化URI,可以使用alias指令:
location /pma { alias /usr/share/phpmyadmin/; try_files $uri $uri/ /index.php; location ~ ^/pma(.+\.php)$ { alias /usr/share/phpmyadmin$1; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1; include fastcgi_params; fastcgi_intercept_errors on; } }