Mysql
如何使用 Nginx 設置 phpMyAdmin?
我在 virtuals.conf 中為 phpMyAdmin 創建了一個條目並重新啟動了 Nginx,但我無法將它實際用於伺服器 phpMyAdmin。PHP 已安裝並配置了 Nginx for fast-cgi,virtuals.conf 條目語法檢查正常,mysql 伺服器正在執行。
FWIW,centos 是我正在執行的 CentOS VM 的主機名。
這是我的條目的樣子:
server { listen 80; server_name mysql.centos; location / { root /usr/share/phpMyAdmin; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name; include fastcgi_params; } }
請參閱我的設置中的範例:
server { listen 80; server_name domain.com; # Server root root /home/user/domain.com/public_html; index index.html index.php; location /MySQLAdmin { auth_basic "Restricted Access"; auth_basic_user_file htpasswd_file; alias /usr/share/phpMyAdmin/; try_files $uri $uri/ @fastcgi; } location ~ .+\.php$ { # Return '400 Bad Request' for malformed URLs location ~ \..*/.*\.php$ { return 400; } # Map 418 error code (no bady uses) to fastcgi error_page 418 = @fastcgi; return 418; } location @fastcgi { fastcgi_pass 127.0.0.1:9000; ... } location / { try_files $uri $uri/ @fastcgi; } }
對“MySQLAdmin”的請求將由別名為 phpMyAdmin 文件夾的那個位置處理。Nginx 將直接返回靜態文件並將 PHP 發送給@fastcgi。對“.php”的請求將被發送到@fastcgi。
Nginx 嘗試為其他所有內容提供服務,並將未找到的內容髮送給@fastcgi。基本上,靜態文件將由 Nginx 提供。不會找到未明確寫出的 Index.php 請求並將其傳遞給@fastcgi。