Nginx 无法解析 PHP

Nginx 无法解析 PHP

所以我记不清我做了什么,但出于某种原因,我无法再解析 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 的使用。

答案3

您需要检查是否安装了所有相关软件包。您可能不小心删除了某些内容,或者遗漏了某些内容。

尝试清理并重新开始。

看看这个关联,它有基本的软件包和设置,让你重新开始

相关内容