ubuntu 16.04 nginx 更改 phpmyadmin url 不起作用
Posted
技术标签:
【中文标题】ubuntu 16.04 nginx 更改 phpmyadmin url 不起作用【英文标题】:ubuntu 16.04 nginx change phpmyadmin url not working 【发布时间】:2021-06-11 03:28:04 【问题描述】:Ubuntu 16.04.5 LTS Xenial 4.18.8-x86_64-linode117
nginx version: nginx/1.10.3 (Ubuntu)
php v7.0.32-0ubuntu0.16.04.1`
/etc/nginx/sites-available/default
location /phpmyadmin
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$
root /usr/share/;
/var/www/html
没有符号链接Worx well....
但我似乎无法弄清楚如何更改 phpmyadmin
网址。
尝试在 /var/www/html
下创建符号链接 whatever ->/usr/share/phpmyadmin
或 whatever ->/usr/share/phpmyadmin/
不起作用,
即使我将/etc/nginx/sites-available/default
更改为:
location /whatever
root /usr/share/phpmyadmin/;
如上所述创建符号链接,重新启动 nginx
和 php7.0-fpm
仍然是新 URL 尝试下载页面...
在网上查找了不同的资源,但没有帮助:digitalocean's guidedevanswers guide 以及SO 上的其他人,但找不到解决方案。 想法??
更新 来自Richard Smith的评论
location /whatever
alias /usr/share/phpmyadmin;
index index.php index.html index.htm;
if (!-e $request_filename) rewrite ^ /phpmyadmin/index.php last;
# Secure phpMyAdmin Instance
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/.your_pass_file;
client_max_body_size 68M;
location ~ ^/phpmyadmin/(.+\.php)$
if (!-f $request_filename) return 404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$
alias /usr/share/phpmyadmin;
【问题讨论】:
您需要使用alias
而不是root
。有关示例,请参见 this answer。
@RichardSmith 我用修改后的服务器块更新了问题仍然nginx
给403 Forbidden
...
【参考方案1】:
试试:
location ^~ /whatever
alias /usr/share/phpmyadmin;
index index.php index.html index.htm;
if (!-e $request_filename) rewrite ^ /whatever/index.php last;
# Secure phpMyAdmin Instance
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/.your_pass_file;
client_max_body_size 68M;
location ~ \.php$
if (!-f $request_filename) return 404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
您需要在rewrite
语句中使用/whatever/index.php
。嵌套的位置块只需要匹配 URI 的结尾。 ^~
修饰符避免与server
块级别的其他正则表达式location
块发生冲突。在 SCRIPT_FILENAME 中使用 $request_filename
。您最后一个嵌套的 location
块似乎没有执行任何功能。
由于this issue,请避免使用alias
和try_files
。关于if
的使用见this caution。
【讨论】:
到目前为止,我发现的唯一答案仍然有效。赞一个。以上是关于ubuntu 16.04 nginx 更改 phpmyadmin url 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
---------已搬运---------ubuntu16.04搭载nginx。然后更换nginx适配的PHP的版本的操作 || Ubuntu PHP版本切换
ubuntu16.04安装LNMP(ubuntu+Nginx+mysql+PHP7.0)