iT邦幫忙

0

Nginx + PHP如何設定二個網站?

  • 分享至 

  • xImage

各位先進大家好
小弟在設定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;
    }
}

請各位先進不吝指導
謝謝

pickuse iT邦新手 3 級 ‧ 2024-01-17 09:50:40 檢舉
這篇看起來講的挺完整的,不過他有做一些額外的安全驗證:
https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-20-04-server
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2024-01-17 16:54:31
最佳解答

我現在都直接用連結大法處理了。
也就是

ln -s /usr/share/phpmyadmin /var/www/your_domain/phpmyadmin

畢竟要在nginx下用 alias 處理。調整確實很麻煩。
且又不太符合資安規範。
(其實我上面連結的方法也不符合資安規範)
臨時用一下還OK。反正用完直接刪掉連結就好。要用再生一次連結。

現在我都是用一個子域名來連結我的 phpmyadmin 處理。
而這個子域名不會在DNS上設定。所以得使用 hosts 文件的方式連結。
這是我現在比較常用的方式。

ommjki iT邦新手 3 級 ‧ 2024-01-18 21:28:25 檢舉

謝謝各位大大的指導
因只是一個小站台,改dns太麻煩了
所以小弟才會想用alias
但nginx + alias實在是太難設了
而浩翰星空大大這個ln雖然比較麻煩
每次都要設定
但db並不是會常連
所以小弟選浩翰星空大大為最佳解答
請SunM0on及pickuse大大原諒

其實如果只是單純開發站或是同一台主機。
你只要設定在其中一個地方就好。
並不需要每一個域名或站點都加的。
反正 phpmyadmin 又不是認域名。所以只要一個地方能操作就行了。

0
SunM0on
iT邦新手 4 級 ‧ 2024-01-17 13:15:02

妳說的這個東西叫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

我要發表回答

立即登入回答