Назад | Перейти на главную страницу

nginx + php-fpm обслуживает необработанный php

Я пытаюсь настроить nginx и php-fpm на Arch Linux. Я читал вики nginx и связанные с ней руководства. Статические страницы отлично работают. Страницы PHP не передаются в php-fpm. Когда я просматриваю исходный код в моем тестовом index.php, я вижу реальный исходный код php. Что я делаю не так?

Я прочитал здесь несколько похожих вопросов, но они немного устарели, используя spawn-fcgi, тогда как я использую php-fpm с сокетом linux вместо tcp.

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;
}

index.php

<?
echo "hello world";
?>

Вы используете короткие открывающие теги, которые по умолчанию отключены в новых версиях PHP, всегда, всегда используйте полные открывающие теги. <?php