各位先進大家好
小弟在設定Nginx + PHP時
只設定root網站沒問題
用chrome可以正常顯示 http://www.xxx.xxx 首頁
但是想要在新增一個類似像Apache一樣一個Alias網站用這個url http://www.xxx.xxx/bbb/
可以連到phpmyadmin管理db
但是都會一直以下的出現Error
2024/01/16 07:03:36 [error] 10858#10858: *1 directory index of "/var/www/bbb" is forbidden, client: aaa.aaa.bbb.bbb,
server: cs99.org, request: "GET /phmadm/ HTTP/1.1", host: "aaa.aaa.bbb.bbb"
2024/01/16 07:09:34 [error] 10933#10933: *1 FastCGI sent in stderr: "Primary script unknown" while reading response
header from upstream, client: aaa.aaa.bbb.bbb, server: xxx.xxx, request: "GET /phmadm/ HTTP/1.1", upstream: "fastcgi:/
/unix:/run/php-fpm/www.sock:", host: "aaa.aaa.bbb.bbb"
2024/01/16 07:10:29 [error] 10933#10933: *1 FastCGI sent in stderr: "Primary script unknown" while reading response
header from upstream, client: aaa.aaa.bbb.bbb, server: xxx.xxx, request: "GET /phmadm/ HTTP/1.1", upstream: "fastcgi:/
/unix:/run/php-fpm/www.sock:", host: "aaa.aaa.bbb.bbb"
2024/01/16 07:10:30 [error] 10933#10933: *1 FastCGI sent in stderr: "Primary script unknown" while reading response
header from upstream, client: aaa.aaa.bbb.bbb, server: xxx.xxx, request: "GET /phmadm/ HTTP/1.1", upstream: "fastcgi:/
/unix:/run/php-fpm/www.sock:", host: "aaa.aaa.bbb.bbb"
以下是nginx的設定
server {
listen 80;
listen [::]:80;
server_name xxx.xxx xxxweb.xxx.xxx aaa.aaa.bbb.bbb;
root /var/www/xxxweb;
index index.php index.html;
autoindex off;
try_files $uri $uri/ /index.php?$args;
access_log /var/log/nginx/xxxweb.access;
error_log /var/log/nginx/xxxweb.error;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /bbb/ {
alias /var/www/bbb;
index index.php;
}
location ~ ^/phmadm.+.php$ {
root /var/www/bbb;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
請各位先進不吝指導
謝謝
我現在都直接用連結大法處理了。
也就是
ln -s /usr/share/phpmyadmin /var/www/your_domain/phpmyadmin
畢竟要在nginx下用 alias 處理。調整確實很麻煩。
且又不太符合資安規範。
(其實我上面連結的方法也不符合資安規範)
臨時用一下還OK。反正用完直接刪掉連結就好。要用再生一次連結。
現在我都是用一個子域名來連結我的 phpmyadmin 處理。
而這個子域名不會在DNS上設定。所以得使用 hosts 文件的方式連結。
這是我現在比較常用的方式。
妳說的這個東西叫virtual-host技術,nginx設定方式跟Apache差不多,知道這個技術的名詞妳就可以去查了
https://blog.toright.com/posts/4355/nginx-virtual-host-%E8%A8%AD%E5%AE%9A%E6%95%99%E5%AD%B8