mysql - 在 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$ 位置块、包含的 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
推荐阅读
- karate - 如何使用空手道跳过 SSL 证书验证?
- events - 命令 ID 与基础设施消息 ID 有何不同?
- javascript - 拒绝直接访问 IIS Web 服务器中的 JavaScript 文件
- git - git - 如何从远程存储库中获取特定文件
- javascript - 在嵌入的 PDF、Javascript 中插入超链接
- python - 在调整框架大小时克服自定义 ButtonFrame 的缓慢按钮和框架显示以及不完整的背景。
- react-native - 使用 moment.js 计算睡眠时间并做出本机反应。
- angular - 是否可以将动态值传递给 Angular 6 中的自定义表单验证器?
- python - Use an array as the index of another array in Python
- amazon-web-services - EC2 CLI docker 中可用的 AWS ECR 映像