Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I new with Debian. I want to use php on Debian. I do:

apt-get install php5-cli php5-cgi spawn-fcgi

Create file /usr/bin/php-fastcgi:

#! /bin/sh
PHP_FCGI_CHILDREN=3
PHP_FCGI_MAX_REQUESTS=1000
exec /usr/bin/php5-cgi

Create file /etc/init.d/init-fastcgi:

#!/bin/bash
PHP_SCRIPT="/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f     /usr/bin/php-fastcgi"
RETVAL=0
case "$1" in
start)
$PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php5-cgi
RETVAL=$?
;;
restart)
killall -9 php5-cgi
$PHP_SCRIPT
RETVAL=$?
;;
*)
echo "Usage: sudo /etc/init.d/init-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL

Ater do:

chmod 755 /usr/bin/php-fastcgi
chmod 755 /etc/init.d/init-fastcgi 

Into /etc/nginx/sites-enabled/default add:

location ~\.php$ {
 root /srv/www/ekb.mydomain.com/public_html;
 include /etc/nginx/fastcgi_params;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param SCRIPT_FILENAME /srv/www/ekb.mydomain.com/public_html$fastcgi_script_name;
}

Create directories:

/srv/www/ekb.mydomain.com/public_html
/srv/www/ekb.mydomain.com/logs

Create file /srv/www/ekb.mydomain.com/public_html/test.php

<?phpinfo();?>

Start serice:

/etc/init.d/init-fastcgi start
/etc/init.d/nginx start

In browser:

 www.ekb.maydomain.com/test.php 

but get 404 error.

What i can do wrong?

share|improve this question
    
Go with PHP-FPM instead of fastcgi and use unix-socket instead of localhost. –  r004 Mar 24 at 15:06
    
+1. THere is no reason to do this instead of simply installing php5-fpm package. –  edvinas.me Mar 24 at 19:56
    
nginx killing me.I war remove nginx,php5,php5-cgi and install it again, after do all configs from my question and php start to work. Magik. –  Kliver Max Mar 26 at 7:25
add comment

2 Answers

up vote 1 down vote accepted

You should really configure nginx with php-fpm. It's easier to install, configure and manage and is as fast.

$ apt-get install nginx php5-fpm
$ nano /etc/nginx/nginx.conf

[...]
worker_processes  4;
[...]
keepalive_timeout   2;
[...]


$ nano /etc/nginx/sites-available/default

[...]
server {
    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

    root /usr/share/nginx/www;
    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/ /index.html;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            allow ::1;
            deny all;
    }

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

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
            try_files $uri =404;
            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;
    }
}

Start nginx and php-fpm:

$ service nginx start
$ service php5-fpm start
share|improve this answer
    
I try install php5-fpm but apt-get says that can't find this package. –  Kliver Max Mar 26 at 4:40
add comment

Try editing /etc/hosts and add to the localhost line as below:

127.0.0.1    localhost ekb.maydomain.com

In other words, add ekb.maydomain.com to whichever line begins 127.0.0.1 -- it may not look exactly like this one.

The problem is that "www.ekb.maydomain.com" is a real www address and the DNS resolver can't find it. By adding that line to /etc/hosts, you skip DNS resolution for that domain and instead use it as an alias for localhost, which is where your browser can actually find a web server running on the same machine.

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.