在Ubuntu上使用ngnix安装PHPMyAdmin仅下载文件



我需要解决一个问题。我有带公共地址的ngnix,我需要通过ip访问本地网络中带有phpmyadmin的数据库。我已经按照指南在地址/usr/share/phpmyadmin配置了它。目前,我可以从这个目录下载php文件,但不需要执行。我需要做什么才能从浏览器连接到phpmyadmin?这是我的ngnix配置:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name 192.168.1.101;
location ^~ /permanentmark/ {
alias /usr/share/phpmyadmin/;
index index.php index.html;
location ~ /pma(/.*.php) {
include fastcgi_params;
fastcgi_param SERVER_NAME localhost;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
}
}
}

我们仍然需要告诉Nginx使用我们的PHP处理器来处理动态内容。我们在服务器块级别上执行此操作(服务器块类似于Apache的虚拟主机(。通过键入:打开默认的Nginx服务器块配置文件

sudo nano /etc/nginx/sites-available/default

Nginx默认服务器块文件如下所示:

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}  
}

我们需要为我们的网站对此文件进行一些更改。

首先,我们需要添加index.php作为index指令的第一个值,以便在请求目录时提供名为index.php的文件(如果可用(。我们可以修改server_name指令以指向服务器的域名或公共IP地址。对于实际的PHP处理,我们只需要通过删除每行前面的磅符号(#(来取消对处理PHP请求的文件段的注释。这将是location~.php$location块、包含的fastcgi-php.conf片段以及与php-fpm关联的套接字。我们还将使用相同的方法取消对处理.htaccess文件的位置块的注释。Nginx不处理这些文件。如果这些文件中的任何一个碰巧进入了文档根目录,则不应将其提供给访问者。

您需要进行的更改在下面的文本中:

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /.ht {
deny all;
}
}

完成上述更改后,可以保存并关闭该文件。键入以下内容来测试配置文件的语法错误:

sudo nginx -t

如果报告了任何错误,请返回并重新检查您的文件,然后再继续。准备好后,重新加载Nginx以进行必要的更改:

sudo systemctl reload nginx

最新更新