瀏覽器下載文件而不是打開 php 文件
所以,我發布了一個答案,因為在兩次全新安裝之後,我設置了一個但不同的東西(以我的觀點)。就像我上面說的那樣,我面臨著兩難境地,因為我所擁有的配置與我能找到的任何其他答案都不相同。例如 :
我的 /etc/nginx 文件夾基本構成如下:
|- /etc/nginx/ | |- conf.d/ | | |- default.conf | | | |- fastcgi_params | |- mime.types | |- modules/ -> /usr/lib/nginx/modules | |- nginx.conf | |- scgi_params | |- uwsgi_params
沒有 /sites-available 或 /sites-enabled 隨處可見,提到的 fastcgi-php.conf 實際上是根文件夾中的 fastcgi_params,因此我的預設值不在 site-available 文件夾中。
這是我現在擁有的兩個配置文件(域隱藏在 my_domain.com 下):首先:nginx.conf(幾乎未觸及)
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; include /etc/nginx/sites-available/*.conf; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
其次 /etc/nginx/conf.d/default.conf
server { listen 80; server_name my_domain.com www.my_domain.com; location / { root /var/www/www.my_domain.com; index index.php index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/www.my_domain.com; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+?\.php)(/.*)$; #if (!-f $document_root$fastcgi_script_name) { # return 404; #} root /var/www/www.my_domain.com; # fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } }
我還加了一行
text/php php;
對於 mime.types,我還記得在我使用的瀏覽器(Firefox、Opera 和 Chrome)中刪除 my_domain 的記憶體。
但是,文件仍然被下載。
我做錯什麼了 ?
編輯:因為我想創建一個 blog.my_domain.com、shop.my_domain.com 和 forum._mydomain.com,所以我創建了 /site-available 和 /site-enabled 文件夾,打算創建一個 blog/forum/shop .my_domain.com.conf 在位於 /sites-available 中的每個同名文件夾中,但我正在等待一個工作配置以使它們在 nginx.conf 中可見(帶有包含行,對嗎?)。
所以我真的不明白這兩個文件夾是如何工作的。子域的 CNAME 記錄設置為 my_domain.com。我還閱讀了有關為這些子網站製作符號連結的資訊,但我真的不知道從哪裡到哪裡?再次感謝
錯誤日誌告訴我與 /var/run/php/ 的連接被拒絕。預設使用者是 www-data www-data,但我的預設 nginx 使用者是 nginx(如果我更改它,它甚至不會啟動。)我應該做一個
chown nginx:nginx /var/run/php/
?
要配置 php,您必須在系統上安裝一個 php-fpm 版本。並將此程式碼段添加到塊中的 nginx conf 中
server
。您必須更改
php5-fpm
為系統上安裝的版本。location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
您缺少 PHP 解釋器,NGINX 在其 wiki 上有一篇關於 FPM 的文章。