Home » Php » Unable to run .html files on nginx+php-fpm

Unable to run .html files on nginx+php-fpm

Posted by: admin July 12, 2020 Leave a comment

Questions:

I am unable to run .html files on my Ubuntu 12.04 server running with Nginx and php-fpm.

What I get is Access denied, when executing .html extension files. .php files runs very well.

Here is my config code.

nginx.conf

user www-data;
worker_processes 4; # Make this equal to no of processors you have "cat /proc/cpuinfo |grep processor" @mayur
pid /var/run/nginx.pid;

events {
        worker_connections 2048; # Essential to keep it high for heavy sites @mayur
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        server_tokens on; #Make this off Live Server for Security Reasons: @mayur

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        log_format      main    '$remote_addr - $remote_user [$time_local] $request '
                        '"$status" $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # nginx-naxsi config
        ##
        # Uncomment it if you installed nginx-naxsi
        ##

        #include /etc/nginx/naxsi_core.rules;

        ##
        # nginx-passenger config
        ##
        # Uncomment it if you installed nginx-passenger
        ##

        #passenger_root /usr;
        #passenger_ruby /usr/bin/ruby;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

sites-available/default

server {
        listen   80; ## listen for ipv4; this line is default and implied

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        root /data/paytm/htdocs;
        index index.php index.html;

        server_name localhost;

        ssi on;

        location ~* ^.+\.(jpg|js|jpeg|png|ico|gif|js|css|swf)$ {
                expires 24h;
        }

        location ~ ^/.*\.html$ {
                fastcgi_pass    unix:/tmp/php5-fpm.sock;
                fastcgi_index   index.html;
                fastcgi_param   SCRIPT_FILENAME  /data/paytm/htdocs/$fastcgi_script_name;
                include         fastcgi_params;
        }

        location ~ ^/.*\.php$ {
                fastcgi_pass    unix:/tmp/php5-fpm.sock;
                fastcgi_index   index.html;
                fastcgi_param   SCRIPT_FILENAME  /data/paytm/htdocs/$fastcgi_script_name;
                include         fastcgi_params;
        }


        # For APIs and other stuff where we write our own Header Variables
        underscores_in_headers on;
        ignore_invalid_headers off;
}
How to&Answers:

See here : https://bugs.php.net/bug.php?id=60763 You need to add to the /etc/php5/fpm/pool.d/www.conf inside the [www] section

security.limit_extensions = .php .html

Answer:

Please remove the location ~ ^/.*\.html$ section in sites-available/default.