1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Nginx downloads PHP instead of executing it

Discussion in 'Nginx' started by NLDev, Nov 8, 2016.

  1. #1
    I recently set up an Ubuntu Server with Nginx. Now I want to install phpBB on it. But it seems like I fail. The index.html in the public_html folder I had before, worked just fine. But since I want phpBB3, I excrated the folder to my public_html folder. So now I have the folder "phpBB3".
    But if I go to http:// mydomain.com/phpBB3 it simply tries to download a "octet stream" file. I opened the file in notepad and it turned out to be the php script. Here are my config files + location:

    /etc/nginx/sites-available/default
    # You may add here your
    # server {
    # ...
    # }
    # statements for each of your virtual hosts to this file

    ##
    # You should look at the following URL's in order to grasp a solid understanding
    # of Nginx configuration files in order to fully unleash the power of Nginx.
    # http:// wiki.nginx.org/Pitfalls
    # http:// wiki.nginx.org/QuickStart
    # http:// wiki.nginx.org/Configuration
    #
    # Generally, you will want to move this file somewhere, and start with a clean
    # file but keep this around for reference. Or just disable in sites-enabled.
    #
    # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
    ##

    server {
    listen [::]:80;
    server_name www.mydomain.com
    rewrite ^ http:// mydomain.com$request_uri? permanent;
    }

    server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    # Make site accessible from http:// localhost/
    server_name localhost;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
    }

    location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|store) {
    deny all;
    return 403;
    }

    location ~* \.(gif|jpe?g|png|css)$ {
    expires 30d;
    }

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php.socket;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }


    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    # proxy_pass http:// 127.0.0.1:8080;
    #}

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    #error_page 500 502 503 504 /50x.html;
    #location = /50x.html {
    # root /usr/share/nginx/html;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    # fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    # fastcgi_index index.php;
    # include fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    # deny all;
    #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;
    # root html;
    # index index.html index.htm;
    #
    # location / {
    # try_files $uri $uri/ =404;
    # }
    #}


    # HTTPS server
    #
    #server {
    # listen 443;
    # server_name localhost;
    #
    # root html;
    # index index.html index.htm;
    #
    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    #
    # ssl_session_timeout 5m;
    #
    # ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    # ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    # ssl_prefer_server_ciphers on;
    #
    # location / {
    # try_files $uri $uri/ =404;
    # }
    #}

    /etc/php5/fpm/php.ini
    user www-data;
    worker_processes 4;
    pid /run/nginx.pid;

    events {
    worker_connections 768;
    # multi_accept on;
    }

    http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

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

    ##
    # 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/*;
    }


    #mail {
    # # See sample authentication script at:
    # # http:// wiki.nginx.org/ImapAuthenticateWithApachePhpScript
    #
    # # auth_http localhost/auth.php;
    # # pop3_capabilities "TOP" "USER";
    # # imap_capabilities "IMAP4rev1" "UIDPLUS";
    #
    # server {
    # listen localhost:110;
    # protocol pop3;
    # proxy on;
    # }
    #
    # server {
    # listen localhost:143;
    # protocol imap;
    # proxy on;
    # }
    #}

    Also I edited /etc/php5/fpm/php.ini and made sure cgi.fix_pathinfo is set to 0
    [Note: I made a space after every "http" because the forum wont allow me to post it]

    Can anyone help me please?
     
    NLDev, Nov 8, 2016 IP
  2. NLDev

    NLDev Peon

    Messages:
    6
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    1
    #2
    Seriously? No one can help?
     
    NLDev, Nov 9, 2016 IP
  3. billzo

    billzo Well-Known Member

    Messages:
    961
    Likes Received:
    278
    Best Answers:
    15
    Trophy Points:
    113
    #3
    I have never used nginx. Usually, some sort of directive must be made in a web server's configuration file to process .php files with the PHP Hander. What type of PHP install do you have? You did install PHP, right? If you Google, you should be able to find an answer to your question. And when you do, you should report back with the solution so others can learn as well. :)
     
    billzo, Nov 9, 2016 IP
  4. RHS-Chris

    RHS-Chris Well-Known Member

    Messages:
    1,007
    Likes Received:
    35
    Best Answers:
    10
    Trophy Points:
    150
    #4
    It does not appear that you have Nginx configured to use PHP, this is part of your config file posted above, note the lines are all commented out:

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    # fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    # fastcgi_index index.php;
    # include fastcgi_params;
    #}
    Code (markup):
    Do you know if you have fastcgi configured to serve PHP? Are you using any control panel for this server?

    Regards,
    Chris
     
    RHS-Chris, Nov 9, 2016 IP
    billzo likes this.
  5. NLDev

    NLDev Peon

    Messages:
    6
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    1
    #5
    I found it out. The problem wasn't the PHP part itself (it was not commented out) but the problem was that the file
    /etc/nginx/sites-available/default
    Code (markup):
    was the wrong config. I had to apply all changes to
    /etc/nginx/sites-available/mydomain.com
    Code (markup):
    aswell for it to work.
     
    NLDev, Nov 16, 2016 IP