nginx + php-fpm 提供原始 php

nginx + php-fpm 提供原始 php

我正在尝试在 Arch Linux 上设置 nginx 和 php-fpm。我一直在阅读 nginx wiki 及其链接的指南。静态页面工作得很好。PHP 页面似乎没有传递给 php-fpm。当我在测试 index.php 上查看源代码时,我看到的是实际的 php 源代码。我做错了什么?

我已经在这里阅读了一些类似的问题,但是它们有点过时了,使用 spawn-fcgi,而我使用带有 Linux 套接字而不是 TCP 的 php-fpm。

nginx.conf

worker_processes 1;

events {
    worker_connections  1024;
}

http {
    include             mime.types;
    default_type        application/octet-stream;
    sendfile            on;
    keepalive_timeout   65;

    server {
        listen          80;
        server_name     localhost
                        127.0.0.1
                        ""
                        ;
        root            /home/http;
        index           index.html
                        index.php
                        ;
        location / {
        }
        include php.conf;
    }
}

php.conf

location ~ \.php {
        fastcgi_param  QUERY_STRING       $query_string;
        fastcgi_param  REQUEST_METHOD     $request_method;
        fastcgi_param  CONTENT_TYPE       $content_type;
        fastcgi_param  CONTENT_LENGTH     $content_length;

        fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  REQUEST_URI        $request_uri;
        fastcgi_param  DOCUMENT_URI       $document_uri;
        fastcgi_param  DOCUMENT_ROOT      $document_root;
        fastcgi_param  SERVER_PROTOCOL    $server_protocol;

        fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE    nginx;

        fastcgi_param  REMOTE_ADDR        $remote_addr;
        fastcgi_param  REMOTE_PORT        $remote_port;
        fastcgi_param  SERVER_ADDR        $server_addr;
        fastcgi_param  SERVER_PORT        $server_port;
        fastcgi_param  SERVER_NAME        $server_name;

        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}

索引.php

<?
echo "hello world";
?>

答案1

你使用的短开始标签在新版本的 PHP 中默认是禁用的,所以请始终使用完整的开始标签<?php

相关内容