php, fastcgi, nginx (Не сохраняется pid в процессе загрузки.)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
solshark
Сообщения: 439
Статус: Монархист
ОС: Gentoo ~amd64

php, fastcgi, nginx

Сообщение solshark »

Здравствуйте.
FreeBSD 7.1
nginx + php + fastcgi. Все из портов.
Если сервер перезагружается, то fastcgi для php поднимается от нужного юзера, но pid не пишет в файл. Если запускать руками - все нормально, пид есть.
Папка для файла с пидом /var/run/dbphp_fastcgi принадлежит phpmyadmin с правами 755.
Скрипты и конфиги:

/usr/local/etc/rc.d/dbphp_fastcgi:

Код:

#!/bin/sh # PROVIDE: dbphp_fastcgi # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name="dbphp_fastcgi" rcvar=`set_rcvar` load_rc_config $name : ${dbphp_fastcgi_enable="NO"} : ${dbphp_fastcgi_user="www"} : ${dbphp_fastcgi_bindaddr="127.0.0.1"} : ${dbphp_fastcgi_bindport="9000"} : ${dbphp_fastcgi_children="5"} : ${dbphp_fastcgi_max_requests="1000"} : ${dbphp_fastcgi_allowed_env=""} export PHP_FCGI_CHILDREN=${dbphp_fastcgi_children} export PHP_FCGI_MAX_REQUESTS=${dbphp_fastcgi_max_requests} command="/usr/local/bin/php-cgi" command_args="-q -b ${dbphp_fastcgi_bindaddr}:${dbphp_fastcgi_bindport} &" pidfile="/var/run/dbphp_fastcgi/${name}.pid" _allowed_env="ORACLE_HOME PATH USER PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS" _allowed_env="${_allowed_env} ${dbphp_fastcgi_allowed_env}" start_precmd="${name}_start_precmd" start_postcmd="ps -U ${dbphp_fastcgi_user} -o 'pid,command'|grep ${command}|head -1|awk -- '{print \$1}' > ${pidfile}" dbphp_fastcgi_start_precmd() { touch $pidfile chown $dbphp_fastcgi_user $pidfile export USER=${dbphp_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}" } stop_postcmd=dbphpstop_postcmd dbphpstop_postcmd() { rm -f $pidfile } load_rc_config $name run_rc_command "$1"

/etc/rc.conf:

Код: Выделить всё

dbphp_fastcgi_enable="YES"
dbphp_fastcgi_user="phpmyadmin"
dbphp_fastcgi_bindaddr="127.0.0.1"
dbphp_fastcgi_bindport="9000"
dbphp_fastcgi_children="5"
dbphp_fastcgi_max_requests="1000"
dbphp_fastcgi_allowed_env=""

dmesg -a:

Код: Выделить всё

/etc/rc: DEBUG: checkyesno: dbphp_fastcgi_enable is set to YES.
/etc/rc: DEBUG: pid file (/var/run/dbphp_fastcgi/dbphp_fastcgi.pid): not readable.
/etc/rc: DEBUG: run_rc_command: start_precmd: dbphp_fastcgi_start_precmd
Starting dbphp_fastcgi.
/etc/rc: DEBUG: run_rc_command: doit: su -m phpmyadmin -c 'sh -c "env -  PATH=/sbin:/bin:/usr/sbin:/usr/bin USER=phpmyadmin PHP_FCGI_CHILDREN=5 PHP_FCGI_MAX_REQUESTS=1000 /usr/local/bin/php-cgi  -q -b 127.0.0.1:9000 &"'
/etc/rc: DEBUG: run_rc_command: start_postcmd: ps -U phpmyadmin -o 'pid,command'|grep /usr/local/bin/php-cgi|head -1|awk -- '{print $1}' > /var/run/dbphp_fastcgi/dbphp_fastcgi.pid
/etc/rc: DEBUG: checkyesno: mysql_enable is set to YES.
/etc/rc: DEBUG: pid file (/var/db/mysql/soldistudio1.pid): not readable.
/etc/rc: DEBUG: run_rc_command: start_precmd: mysql_prestart
/etc/rc: DEBUG: checkyesno: mysql_limits is set to NO.
Starting mysql.
/etc/rc: DEBUG: run_rc_command: doit: su -m mysql -c 'sh -c "/usr/local/bin/mysqld_safe  --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysql/soldistudio1.pid  > /dev/null 2>&1 &"'
/etc/rc: DEBUG: checkyesno: solcom_fcgi_enable is set to YES.
/etc/rc: DEBUG: pid file (/var/run/solcom_fcgi/solcom_fcgi.pid): not readable.
/etc/rc: DEBUG: run_rc_command: doit: echo "Starting solcom_fcgi."; su solcom -c '/data/www/vhosts/solshark.com/httpdocs/portal/manage.py runfcgi host=127.0.0.1 port=8881 daemonize=true pidfile=/var/run/solcom_fcgi/solcom_fcgi.pid'
Starting solcom_fcgi.
/etc/rc: DEBUG: checkyesno: nginx_enable is set to YES.
/etc/rc: DEBUG: pid file (/var/run/nginx.pid): not readable.
/etc/rc: DEBUG: run_rc_command: start_precmd: nginx_precmd
Performing sanity check on nginx configuration:
2009/02/11 13:02:58 [info] 1169#0: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
2009/02/11 13:02:58 [info] 1169#0: the configuration file /usr/local/etc/nginx/nginx.conf was tested successfully
/etc/rc: DEBUG: checkyesno: nginxlimits_enable is set to NO.
Starting nginx.


Буду признателен за любой совет. У меня идеи закончились.
Ceterum censeo Carthaginem esse delendam
Marcus Porcius Cato
Мой блог про KDE4 и рыбу в томате
Спасибо сказали: