① nginx 出現.php怎麼解決
網上找了半天,沒有找到合適的解決方法,希望遇到同樣的問題的同學,解答一下
1、/etc/nginx/nginx.conf
user www-data www-data;
worker_processes 1;
error_log /home/log/nginx.log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
#log format
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
include vhost/*.conf;
2、/etc/nginx/vhost/default.conf
貼一下我的配置
server {
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /home/www/default;
location ~ .*\.(php|php5)?$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
#error_page 404 /404.html;
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/nginx-default;
#}
access_log /home/log/default.log access;
}
~
② nginx在我本機windows主機上配置載入不了php模塊
就算能執行,php-cgi跑一會就掛了,缺少php-fpm。你可以試試集成包phpfind或phpstudy,自動配好php+nginx,帶中文控制面板。你可以研究一下。
③ nginx中php設置自啟動,部署ngxin+php配置文件
在Centos 7環境中安裝並設置PHP 8.0的開機自啟動,首先確保PHP-FPM的配置。
為了使PHP-FPM在系統啟動時自動運行,需要編輯啟動腳本。打開rc.local配置文件:
root@lx:~# vim /etc/rc.d/rc.local
在rc.local中添加以下行,以啟動PHP-FPM服務:
sudo systemctl enable php-fpm.service
然後,確認php-fpm是否已被添加到開機啟動列表中:
root@lx:~# chkconfig --list
查看結果,確認php-fpm服務的啟動級別是否為2(運行級別為3時啟動,對應多用戶模式)或更高。
接下來,配置Nginx以處理PHP請求。打開Nginx的配置文件,通常是/etc/nginx/nginx.conf 或者你的虛擬主機配置文件(如/etc/nginx/conf.d/yoursite.conf),確保你的location塊中包含如下內容:
location ~ \.php$ {
fastcgi_pass php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
這將允許Nginx通過PHP-FPM處理.php文件。記得重啟Nginx服務以應用更改:
sudo systemctl restart nginx
至此,Centos 7上已經成功安裝PHP 8.0並配置了開機自啟動,Nginx也已設置解析PHP請求。現在,每當系統啟動時,PHP-FPM和Nginx都將協同工作。
④ nginx 瀏覽php的時候會變成下載
php的時候會變成下載:這是因為nginx沒有設置好碰到php文件時,要傳遞到後方的php解釋器。
看看你的nginx.conf配置,裡面有沒有這樣的設置:
location ~ .*\.php$ {
fastcgi_pass 127.0.0.1:9000;
}
上面的意思,就是說,碰到.php結尾的文件,傳遞給後方127.0.0.1的9000埠上。
當然啦,你的php-fpm解析器也需要正常運行,並監聽好9000埠,才能最終生效並有效處理php腳本。
windows下開啟監聽的辦法,php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini
⑤ nginx部署php程序
為了將 PHP 程序部署在僅使用 Nginx 的環境中,需要遵循以下步驟。首先,修改 PHP 的配置文件以適應新的部署需求。
步驟一:編輯 php.ini 文件。首先,進入解壓後的 PHP 根目錄,打開 php.ini 文件。在大約第 759 行,移除行前的分號,以指定 PHP 可載入擴展模塊的位置。具體設置如下:
extension_dir = "C:\Users\TANGSHUAI\Desktop\Nginx\php7\ext"
步驟二:配置 Nginx 支持。繼續在 php.ini 文件中,大約在第 798 行,修改為:
cgi.fix_pathinfo=1
步驟三:啟用對 MySQL 資料庫的支持。取消 extension=mysqli 的注釋,以確保 PHP 可以與 MySQL 資料庫進行交互。
步驟四:啟動 php-cgi 服務。在 PHP 根目錄下,使用 cmd 運行以下命令,以啟動 PHP-CGI 服務:
php-cgi.exe -b 127.0.0.1:9000 -c php.ini
接下來,進行 Nginx 的配置調整。在 nginx.config 文件中,對 localhost 的 index 下加入 try_files 代碼,以確保 Nginx 可以正確地處理傳入的請求。
步驟五:編輯 nginx.config 文件。解注釋對應的配置塊,並修改為以下代碼段,以確保 Nginx 能夠正確識別和處理 PHP 請求:
至此,通過上述步驟,實現了將 PHP 程序部署在僅使用 Nginx 的環境中的目標。整個過程包括了修改 PHP.ini 文件以適配 Nginx 的需求、配置 Nginx 支持 PHP 和 MySQL,以及啟動 PHP-CGI 服務並正確配置 Nginx 的 nginx.config 文件。這樣,Nginx 就能夠作為獨立的伺服器,處理 PHP 請求並與其後端資料庫進行交互,實現一個高效、穩定的 PHP 應用部署方案。