![Nginx 无法解析 PHP](https://linux22.com/image/608331/Nginx%20%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%20PHP%20.png)
所以我记不清我做了什么,但出于某种原因,我无法再解析 PHP。检查此问题的基本故障排除步骤是什么?我安装了 php5 并运行了 nginx,但是当我(例如)创建 phpinfo 页面时,网站上会显示原始 php。我想知道如何真正“激活”php,并确保它可以成功连接到 nginx 以提供包含 php 内容的页面。我指的是 Linux CLI 环境,以防不清楚。
答案1
nginx 本身不包含 PHP 支持。要“启用”PHP,您必须让您的 Web 服务器知道如何处理这些包。这就是 PHP-FPM 的作用所在。
使用适合您的操作系统的任何包管理器,安装 FPM(例如apt-get install php5-fpm
),给它一个配置文件,然后重新加载 nginx。
这是我的 /etc/nginx/nginx.conf,可帮助您入门:
user nginx;
worker_processes 1;
pid /var/run/nginx.pid;
events {
worker_connections 768;
}
http {
include /etc/nginx/mime.types;
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;
access_log /var/log/nginx/error.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10;
types_hash_max_size 2048;
server_tokens off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
open_file_cache max=5000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
#php cache
#mkdir /var/cache/nginx; chown nginx:nginx /var/cache/nginx;
#consider doing a tmpfs if memory allows - VPS disk speed is hardly robust
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=microcache:10m max_size=1000m inactive=60m;
#consider turning off if CPU thrashing
gzip on;
gzip_static on;
gzip_disable "msie6";
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
gzip_buffers 16 8k;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
答案2
nginx 没有内置对 PHP 的支持,而 Apache 则通过 提供支持mod_php
。
要运行 PHP 脚本,您应该研究 FPM 的使用。