Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying to setup nginx and php-fpm on Arch Linux. I've been reading through the nginx wiki and its linked guides. Static pages work great. PHP pages don't seem to get passed to php-fpm. When I view source on my test index.php, I see the actual php source. What am I doing wrong?

I've read through some similar questions here, but they're a bit out of date, using spawn-fcgi, whereas I'm using php-fpm with a linux socket instead of 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";
?>
share|improve this question
add comment

1 Answer

up vote 3 down vote accepted

You're using short opening tags which are disabled by default in newer versions of PHP, always, always use full opening tags <?php

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.