Archive

Posts Tagged ‘nginx’

Установка nginx и php_fastcgi

February 1st, 2009 No comments

Променяли apache на nginx + fastcgi. Замечания:
- наверное должно работать быстрее
- в отличии от апачевских rewrite’ов – в nginx’овских вначале должно стоять ^/, а не просто ^
- красивый конфиг где все понятно
- под php надобно демона запускать, вот скриптик:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/sh
#
 
# PROVIDE: php_fastcgi
# REQUIRE: DAEMON
# BEFORE:  LOGIN
# KEYWORD: shutdown
 
. /etc/rc.subr
 
name="php_fastcgi"
rcvar=`set_rcvar`
 
load_rc_config $name
 
: ${php_fastcgi_enable="NO"}
: ${php_fastcgi_user="www"}
: ${php_fastcgi_bindaddr="127.0.0.1"}
: ${php_fastcgi_bindport="9000"}
: ${php_fastcgi_children="5"}
: ${php_fastcgi_max_requests="1000"}
: ${php_fastcgi_allowed_env=""}
 
export PHP_FCGI_CHILDREN=${php_fastcgi_children}
export PHP_FCGI_MAX_REQUESTS=${php_fastcgi_max_requests}
 
command="/usr/local/bin/php-cgi"
command_args="-q -b ${php_fastcgi_bindaddr}:${php_fastcgi_bindport} &"
pidfile="/var/run/${name}.pid"
 
_allowed_env="ORACLE_HOME PATH USER PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
_allowed_env="${_allowed_env} ${php_fastcgi_allowed_env}"
 
start_precmd="${name}_start_precmd"
start_postcmd="ps -U ${php_fastcgi_user} -o 'pid,command'|grep ${command}|head -1|cut -f 1 -d ' ' > ${pidfile}"
stop_postcmd=": > ${pidfile}"
php_fastcgi_start_precmd()
{
    export USER=${php_fastcgi_user}
    E=
    for i in ${_allowed_env}; do
        eval _val="\$$i"
        if [ "${_val}_x" != "_x" ]; then
            eval _add="$i=$_val"
            E="${E} ${_add}"
        fi
    done
    command="env - ${E} ${command}"
}
 
load_rc_config $name
 
run_rc_command "$1"
Tags: ,