Страница 1 из 4

APACHE+SUEXEC+PHP

Добавлено: 2007-06-16 14:24:31
zheltovodets
Делаю хостинг по http://www.lissyara.su/?id=1066 и в браузере высвечивает ошибка 500,


error.log
[Sat Jun 16 14:27:03 2007] [error] [client 192.168.1.2] Premature end of script headers: /var/www/hosting/sites/user/cgi-bin/php-cgi

Что это может быть? Как исправить?

Добавлено: 2007-06-16 20:15:13
Alex Keda

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

%./php-cgi "<?php ?>"
Status: 404
X-Powered-By: PHP/4.4.7
Content-type: text/html

No input file specified.
%
тоже самое выдаст?
===========
было такое - вот тока причину не помню...

Добавлено: 2007-06-18 9:18:06
zheltovodets
ДА, тоже самое выдает, и что это значит? :?

Добавлено: 2007-06-18 9:26:36
Alex Keda
php.ini снеси для начала - ка без него будет?

Добавлено: 2007-06-18 11:01:20
zheltovodets
Тот php.ini который находится в папочке cgi-bin удалить не получается

Добавлено: 2007-06-18 11:26:36
Alex Keda

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

man chflags
и ещё раз перечитать статью.

Добавлено: 2007-06-18 12:00:27
zheltovodets
Флаги убрал, удалил нечего нового не написало, залил новий php.ini, тоже самое

Добавлено: 2007-06-18 12:50:40
Alex Keda
до этого php на машине был?
если был - снос под чистую с ручной чисткой всех либ и прочего

Добавлено: 2007-06-18 12:53:48
zheltovodets
Небыло собираю новый сервак, устанавливал из портов, включил все что относится к CGI, может нужно еще добавить что-то?

Добавлено: 2007-06-18 13:41:42
Alex Keda
это ты зря.
надо было тока необходимое включать.

Добавлено: 2007-06-18 13:46:06
wizard
Мое личное мнение что php через cgi не гуд!!!
Если нужно сделать нормально делай через fastcgi

Добавлено: 2007-06-18 13:47:02
Alex Keda
напиши сттатью.
думаю, все будут рады.

Добавлено: 2007-06-18 15:03:05
wizard
lissyara писал(а):напиши сттатью.
думаю, все будут рады.
К сожалению не очень у меня получается статьи писать, советом могу помочь, но не статьёй :(

Добавлено: 2007-06-18 15:17:18
Alex Keda
ну хоть скажи чё ставить и как настраивать, и осоновные грабли - уж на этом стстью напишем сами :)

Добавлено: 2007-06-18 15:32:26
wizard
1.

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

#cd /usr/ports
# make search name=mod_fcgid
Port:   mod_fcgid-2.1
Path:   /usr/ports/www/mod_fcgid
Info:   An alternative FastCGI module for Apache2
Maint:  hemi@puresimplicity.net
B-deps: apache-2.0.59 expat-2.0.0_1 libiconv-1.9.2_2 perl-5.8.8
R-deps: apache-2.0.59 expat-2.0.0_1 libiconv-1.9.2_2 perl-5.8.8
WWW:    http://fastcgi.coremail.cn/
2.

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

# cd /usr/ports/www/mod_fcgid
#make
#make install 
#make clean 
3.

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

#ee /usr/local/etc/apache2/httpd.conf
добовляем

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

LoadModule fcgid_module libexec/apache2/mod_fcgid.so
<Directory "/usr/local/www/data">
    AllowOverride None
    Order allow,deny
    Allow from all
    Options +ExecCGI
    AddHandler fcgid-script .php
    SetHandler fcgid-script
    FCGIWrapper /home/fcgid-php.sh .php
</Directory>
4,

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

#ee  /home/fcgid-php.sh
туда пишем

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

#!/bin/sh
export PHP_FCGI_MAX_REQUESTS=0
exec /usr/local/bin/php-cgi


P.S. php должен быть собран как

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

$ ./configure \
  --enable-fastcgi \
  --enable-discard-path \
  --enable-force-cgi-redirect \

Последнее действие, это упрощение политики безопасности suEXEC, а
именно удаление проверки запускаемого скрипта (fcgid-php.sh) и
директории в которой он находится (/home) на
соответствие их владельца с пользователем указанным в SuexecUserGroup.
Для этого надо закомментировать строки (566-576 в 2.2.3)

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

      if ((uid != dir_info.st_uid) ||
          (gid != dir_info.st_gid) ||
          (uid != prg_info.st_uid) ||
          (gid != prg_info.st_gid)) {
          log_err("target uid/gid (%ld/%ld) mismatch "
                  "with directory (%ld/%ld) or program (%ld/%ld)\n", uid, gid,
                  dir_info.st_uid, dir_info.st_gid,
                  prg_info.st_uid, prg_info.st_gid);
          exit(120);
        }
в файле [httpd-2.x]/support/suexec.c и пересобрать suEXEC. Иначе
пришлось бы копировать fcgid-php.sh каждому пользователю и указывать
путь в каждом виртуальном хосте.

Добавлено: 2007-06-18 15:34:22
Alex Keda
ужос нах...
вместо прямого запуска проставку в шелл.
и в чём преимущество?

Добавлено: 2007-06-18 15:39:19
wizard
lissyara писал(а):ужос нах...
вместо прямого запуска проставку в шелл.
и в чём преимущество?
Запусти php в cgi режиме и попробуй сделать авторизацию, и тогда я на тебя посмотрю, а в таком слуаи она прекрастно работает

Добавлено: 2007-06-18 15:44:57
wizard
да и скорость работы значительно выше чем в cgi или mod_php режиме

Добавлено: 2007-06-18 17:02:41
Toptyg
да и скорость работы значительно выше чем в cgi или mod_php режиме
что серьезно быстрее чем mod_php пашет? o_0

Добавлено: 2007-06-18 17:03:48
wizard
если не ошибаюсь то в среднем ~ в 10 быстрее

Добавлено: 2007-06-18 17:14:20
Alex Keda
wizard писал(а):
lissyara писал(а):ужос нах...
вместо прямого запуска проставку в шелл.
и в чём преимущество?
Запусти php в cgi режиме и попробуй сделать авторизацию, и тогда я на тебя посмотрю, а в таком слуаи она прекрастно работает
поделись - чё не так с авторизацией.
делал - пашет

Добавлено: 2007-06-18 17:16:19
wizard
lissyara писал(а):
wizard писал(а):
lissyara писал(а):ужос нах...
вместо прямого запуска проставку в шелл.
и в чём преимущество?
Запусти php в cgi режиме и попробуй сделать авторизацию, и тогда я на тебя посмотрю, а в таком слуаи она прекрастно работает
поделись - чё не так с авторизацией.
делал - пашет
Авторизация сессиями по принципу в cgi режиме работать не будет!!!

Добавлено: 2007-06-19 14:07:55
zheltovodets
Снес php5, поставил php4, тоже самое
Заметил в логах начало писать:

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

failed to open log file
fopen: No such file or directory
[Tue Jun 19 14:10:42 2007] [error] [client 192.168.1.2] Premature end of script headers: /var/www/hosting/sites/user/cgi-bin/php-cgi
Для проверки отключил все права никак не хочет работать
:?

Добавлено: 2007-06-20 23:04:25
wizard
zheltovodets писал(а):Снес php5, поставил php4, тоже самое
Заметил в логах начало писать:

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

failed to open log file
fopen: No such file or directory
[Tue Jun 19 14:10:42 2007] [error] [client 192.168.1.2] Premature end of script headers: /var/www/hosting/sites/user/cgi-bin/php-cgi
Для проверки отключил все права никак не хочет работать
:?
Ну как дела с хостингом ? Заценить уже где можно ?

Добавлено: 2007-06-21 8:59:48
zheltovodets
Смешно :twisted: