Nginx

直接從IP地址訪問Nginx中的phpmyadmin(沒有子域)

  • January 1, 2018

在一些網站執行良好的 Ubuntu 16.04 Nginx 環境中,我安裝了 phpmyadmin:

cd /var/www/html
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
find ./ -type f -iname '*phpmyadmin*.zip' -exec unzip {} \;
find ./ -type d -iname 'phpmyadmin-*' -exec mv {} phpmyadmin \;

然後我嘗試通過瀏覽器訪問它ip_address/phpmyadmin,但在我的一個站點中得到了 404。

我認為這是由於缺少 webapp conf 造成的,所以我創建了一個。

nano /etc/nginx/sites-available/phpmyadmin.conf:

server {
   root /var/www/html/phpmyadmin/;
   server_name phpmyadmin;

   location / {
       index index.php index.html index.htm fastcgi_index;
       try_files $uri $uri =404 $uri/ /index.php?$args;
   }

   location ~ \.php$ {
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }

   listen 80;
}

然後

ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/
systemctl restart nginx.service

然而,問題依然存在。

日誌僅指定此錯誤:

2018/01/01 03:02:25

$$ emerg $$21959#21959:/etc/nginx/sites-enabled/phpmyadmin.conf:2 中的未知指令“/var/www/html/phpmyadmin/”

我基本上沒有改變nginx.conf並依賴它的原生指令。

我諮詢了 Nginx 系統管理員如何建議我使用子域,但我更喜歡直接從 IP 地址訪問它。

server_name應包含用於訪問伺服器的名稱。要通過 IP 地址訪問伺服器,它應該包含 IP 地址。

例如:

server_name 192.0.2.1;

有關更多資訊,請參閱此文件

但首先你需要修復那個錯誤——我不知道你為什麼從你的語句中得到一個未知的指令錯誤。root你有沒有引入一個錯字?

引用自:https://serverfault.com/questions/890236