1

I am trying to configure NGINX so that it executes PHP scripts instead of serving them; I went through tens of different solutions, but none have worked so far.

The server instead send the script to the client (including the shebang)

My NGINX config file has the following in it:

location /\.php$
{
        root           /var/html/web;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index  index.php;
        include        /etc/nginx/fastcgi_params;
}

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    $document_root$fastcgi_script_name;
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  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

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;

I have both PHP 7.4 and php7.4-fpm installed and the php-fpm service is running.

It's worth mentioning that when I stop the php7.4-fpm service the server return code 502, meaning NGINX can communicate with it.

halfer
  • 19,824
  • 17
  • 99
  • 186
TAMPAx86
  • 21
  • 3
  • Does this answer your question? [Nginx serves .php files as downloads, instead of executing them](https://stackoverflow.com/questions/25591040/nginx-serves-php-files-as-downloads-instead-of-executing-them) – Cornel Raiu Sep 15 '22 at 23:07
  • @CornelRaiu No, I already tried all of the settings the user mentioned. – TAMPAx86 Sep 16 '22 at 02:25
  • Can you remove `root` from within your location? – bmcculley Sep 16 '22 at 04:11
  • 1
    `location /\.php$` should be `location ~ \.php$`. See [the documentation for `location`](http://nginx.org/en/docs/http/ngx_http_core_module.html#location). – Richard Smith Sep 16 '22 at 09:12
  • @TAMPAx86 you definitely did not pay attention to the settings in the post I linked. `location ~ \.php$` !== `location /\.php$` – Cornel Raiu Sep 16 '22 at 09:56

1 Answers1

1

My php-fpm was incorrectly configured and didn't create the php7.4-fpm.sock file in /run/php/.

so I changed the fastcgi_pass line in the NGINX config to "127.0.0.1:9000" and now it's working fine.

Abdulla Nilam
  • 36,589
  • 17
  • 64
  • 85
TAMPAx86
  • 21
  • 3