0

I'm trying to set up NGINX with PHP and FPM. No installation errors, NGINX and PHP-FPM are running (I can see them with ps aux | gre nginx and ps aux | grep php). HTML pages are working fine.

Browsing to mysite/test.php just shows the PHP source code when I "view source" of the page though (It's literally <? phpinfo(); ?>;). There are no errors in my NGINX (error.log) or PHP-FPM (php5-fpm.log) error logs.

I can't work out why it isn't executing the code?

cat sites-enabled/default
server {

    root /usr/share/nginx/www;
    index index.php index.html index.htm;
    server_name testsite.tld;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.html
        try_files $uri $uri/ /index.html;
    }

    #error_page 404 /404.html;

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

cat fastcgi_params 
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_FILENAME     $request_filename;
fastcgi_param   SCRIPT_NAME     $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/$nginx_version;

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;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS     200;
Tablemaker
  • 1,149
  • 1
  • 11
  • 23
jwbensley
  • 4,202
  • 11
  • 58
  • 90

1 Answers1

3

you have a type in your php code:

before: <? phpinfo(); ?>

after: <?php phpinfo(); ?>

try that.

Robert Van Sant
  • 259
  • 2
  • 6
  • Well that has worked, and whilst I must say thanks I have to ask why? On apache servers I have I don't always have to put then I can write some html, then drop back into php blah_blah ?> and so on. Perhaps you must put – jwbensley Nov 11 '11 at 14:48
  • 3
    http://php.net/manual/en/ini.core.php short_open_tag, thats what you are looking for. – nce Nov 11 '11 at 14:52
  • yes, it's because short tags aren't implemented or turned on. also, i believe zend is moving away from short tags, though you have the option to turn it on. – Robert Van Sant Nov 11 '11 at 15:18