* [Comm] php as cgi
@ 2004-05-30 16:44 Eugene Prokopiev
2004-05-31 12:27 ` Klimchev Konstantin
0 siblings, 1 reply; 9+ messages in thread
From: Eugene Prokopiev @ 2004-05-30 16:44 UTC (permalink / raw)
To: community
Здравствуйте!
Необходима возможность выполнять php-скрипты на разных виртуальных
хостах от имени соответствующих пользователей, для чего необходима
возможность использования php в режиме cgi.
Сделал следующее:
1. Собрал php из ALM 2.2 не как cli, а как cgi
2. В конце /etc/httpd/conf/httpd.conf написал:
ScriptAlias /bin/ "/usr/bin/"
AddType appication/x-httpd-php .php
Action appication/x-httpd-php /bin/php-cgi
После рестарта Apache все заработало.
Переходим к виртуальным хостам. Если описание виртуального хоста
выглядит так:
<VirtualHost 192.168.1.1>
ServerName web1.athlon.home
DocumentRoot /var/www/vhosts/web1/web
</VirtualHost>
все работает. А если так:
<VirtualHost 192.168.1.1>
User web1
Group web1
ServerName web1.athlon.home
DocumentRoot /var/www/vhosts/web1/web
</VirtualHost>
получаю 500 Internal Server Error, а в логах:
[Sun May 30 19:49:33 2004] [error] [client 192.168.1.1] Premature end of
script headers: /usr/bin/php-cgi
Пользователь/группа web1 существует и может выполнить php-cgi
web/index.php без особых проблем.
Куда копать дальше?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-05-30 16:44 [Comm] php as cgi Eugene Prokopiev
@ 2004-05-31 12:27 ` Klimchev Konstantin
2004-05-31 12:31 ` Klimchev Konstantin
2004-05-31 17:30 ` Eugene Prokopiev
0 siblings, 2 replies; 9+ messages in thread
From: Klimchev Konstantin @ 2004-05-31 12:27 UTC (permalink / raw)
To: community
On Sun, 30 May 2004 20:44:01 +0400
Eugene Prokopiev <john@rmts.donpac.ru> wrote:
> Сделал следующее:
>
> 1. Собрал php из ALM 2.2 не как cli, а как cgi
> 2. В конце /etc/httpd/conf/httpd.conf написал:
>
> ScriptAlias /bin/ "/usr/bin/"
> AddType appication/x-httpd-php .php
> Action appication/x-httpd-php /bin/php-cgi
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
это не опечатка (я про /bin/php-cgi)?
>
> После рестарта Apache все заработало.
>
> Переходим к виртуальным хостам. Если описание виртуального хоста
> выглядит так:
>
> <VirtualHost 192.168.1.1>
> ServerName web1.athlon.home
> DocumentRoot /var/www/vhosts/web1/web
> </VirtualHost>
>
> все работает. А если так:
>
> <VirtualHost 192.168.1.1>
> User web1
> Group web1
> ServerName web1.athlon.home
> DocumentRoot /var/www/vhosts/web1/web
> </VirtualHost>
>
> получаю 500 Internal Server Error, а в логах:
suexec -V ?
>
> [Sun May 30 19:49:33 2004] [error] [client 192.168.1.1] Premature end of
> script headers: /usr/bin/php-cgi
>
> Пользователь/группа web1 существует и может выполнить php-cgi
> web/index.php без особых проблем.
ЗЫ. Я порекомендую посмотреть на suphp (suphp.org) - сейчас усилено тестирую. Как раз для запуска php-cgi-скриптов от пользователя.
Я бы еще порекомендовал патчи на suexec (http://www.localhost.nl/patches/, http://phil.kodezone.com/opensource/patches/), но автор на них "положил" и рекомендует suphp.
--
Best Regards, Konstantin Klimchev
(mailto:koka@atvc.ru jabber:koka@jabber.atvc.ru)
ATK-Internet ISP, Arkhangelsk, Russia
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-05-31 12:27 ` Klimchev Konstantin
@ 2004-05-31 12:31 ` Klimchev Konstantin
2004-05-31 17:30 ` Eugene Prokopiev
1 sibling, 0 replies; 9+ messages in thread
From: Klimchev Konstantin @ 2004-05-31 12:31 UTC (permalink / raw)
To: community
On Mon, 31 May 2004 16:27:12 +0400
Klimchev Konstantin <koka@atvc.ru> wrote:
> > ScriptAlias /bin/ "/usr/bin/"
> > AddType appication/x-httpd-php .php
> > Action appication/x-httpd-php /bin/php-cgi
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> это не опечатка (я про /bin/php-cgi)?
виноват... просмотрел ScriptAlias /bin/ "/usr/bin/"
--
Best Regards, Konstantin Klimchev
(mailto:koka@atvc.ru jabber:koka@jabber.atvc.ru)
ATK-Internet ISP, Arkhangelsk, Russia
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-05-31 12:27 ` Klimchev Konstantin
2004-05-31 12:31 ` Klimchev Konstantin
@ 2004-05-31 17:30 ` Eugene Prokopiev
2004-06-01 4:31 ` Klimchev Konstantin
1 sibling, 1 reply; 9+ messages in thread
From: Eugene Prokopiev @ 2004-05-31 17:30 UTC (permalink / raw)
To: community
Klimchev Konstantin пишет:
>>Action appication/x-httpd-php /bin/php-cgi
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> это не опечатка (я про /bin/php-cgi)?
нет, так надо :)
> suexec -V ?
# suexec -V
-D DOC_ROOT="/home"
-D GID_MID=100
-D HTTPD_USER="apache"
-D LOG_EXEC="/var/log/httpd/suexec_log"
-D SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D UID_MID=100
-D USERDIR_SUFFIX="public_html"
Правильно ли я понимаю, что это означает, что:
1. Папки пользователей должны лежать только в /home
2. Содержимое виртуальных хостов должно лежать в /home/user/public_html
?
Создаю следующую структуру:
# ls -l | grep web3
drwxrwx--- 3 web3 web3 80 May 31 20:13 web3
# ls -l web3/
total 1
drwxrwx--- 2 web3 web3 112 May 31 20:14 public_html
# ls -l web3/public_html/
total 8
-rw-rw---- 1 web3 web3 191 May 31 20:14 index.html
-rw-rw---- 1 web3 web3 17 May 31 20:08 index.php
Описываю виртуальный хост:
<VirtualHost 192.168.1.1>
User web3
Group web3
ServerName web3.athlon.home
DocumentRoot /home/web3/public_html
</VirtualHost>
Перезапускаю Apache и пытаюсь обратиться к http://web3.athlon.home,
получаю 500 Internal Server Error, а в логах:
# cat /var/log/httpd/access_log
192.168.1.1 - - [31/May/2004:20:57:29 +0400] "GET /index.php HTTP/1.1"
500 629
# cat /var/log/httpd/error_log
[Mon May 31 20:57:29 2004] [error] [client 192.168.1.1] Premature end of
script headers: /home/bin/php-cgi
# cat /var/log/httpd/suexec_log
[2004-05-31 20:57:29]: info: (target/actual) uid: (web3/web3) gid:
(web3/web3) cmd: php-cgi
[2004-05-31 20:57:29]: error: target uid/gid (1002/1002) mismatch with
directory (0/0) or program (0/0)
> ЗЫ. Я порекомендую посмотреть на suphp (suphp.org) - сейчас усилено тестирую. Как раз для запуска php-cgi-скриптов от пользователя.
Как-то пару месяцев назад я с Вами это уже обсуждал в сизифовской
рассылке, то я так и не уяснил для себя (в том числе и из документации
на suphp.org): чем в принципе suphp лучше? Только заточкой под php? А
что там может быть заточено? Это же всего лишь средство запуска внешнего
бинарника. Какие тут у php особенности?
> Я бы еще порекомендовал патчи на suexec (http://www.localhost.nl/patches/, http://phil.kodezone.com/opensource/patches/), но автор на них "положил" и рекомендует suphp.
спасибо, погляжу. Так забил он на свои патчи или он же автор suexec и на
него положил тоже? Это меняет дело ;)
Вы suphp в пакет случайно не заворачивали?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-05-31 17:30 ` Eugene Prokopiev
@ 2004-06-01 4:31 ` Klimchev Konstantin
2004-06-01 7:09 ` Eugene Prokopiev
0 siblings, 1 reply; 9+ messages in thread
From: Klimchev Konstantin @ 2004-06-01 4:31 UTC (permalink / raw)
To: community
On Mon, 31 May 2004 21:30:45 +0400
Eugene Prokopiev <john@rmts.donpac.ru> wrote:
>
> > suexec -V ?
>
> # suexec -V
> -D DOC_ROOT="/home"
> -D GID_MID=100
> -D HTTPD_USER="apache"
> -D LOG_EXEC="/var/log/httpd/suexec_log"
> -D SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
> -D UID_MID=100
> -D USERDIR_SUFFIX="public_html"
>
> Правильно ли я понимаю, что это означает, что:
>
> 1. Папки пользователей должны лежать только в /home
> 2. Содержимое виртуальных хостов должно лежать в /home/user/public_html
>
> ?
для решения Вашей проблемы - да
>
> Создаю следующую структуру:
>
> # ls -l | grep web3
> drwxrwx--- 3 web3 web3 80 May 31 20:13 web3
> # ls -l web3/
> total 1
> drwxrwx--- 2 web3 web3 112 May 31 20:14 public_html
> # ls -l web3/public_html/
> total 8
> -rw-rw---- 1 web3 web3 191 May 31 20:14 index.html
> -rw-rw---- 1 web3 web3 17 May 31 20:08 index.php
>
> Описываю виртуальный хост:
>
> <VirtualHost 192.168.1.1>
> User web3
> Group web3
> ServerName web3.athlon.home
> DocumentRoot /home/web3/public_html
> </VirtualHost>
>
> Перезапускаю Apache и пытаюсь обратиться к http://web3.athlon.home,
> получаю 500 Internal Server Error, а в логах:
>
> # cat /var/log/httpd/access_log
> 192.168.1.1 - - [31/May/2004:20:57:29 +0400] "GET /index.php HTTP/1.1"
> 500 629
> # cat /var/log/httpd/error_log
> [Mon May 31 20:57:29 2004] [error] [client 192.168.1.1] Premature end of
> script headers: /home/bin/php-cgi
> # cat /var/log/httpd/suexec_log
> [2004-05-31 20:57:29]: info: (target/actual) uid: (web3/web3) gid:
> (web3/web3) cmd: php-cgi
> [2004-05-31 20:57:29]: error: target uid/gid (1002/1002) mismatch with
> directory (0/0) or program (0/0)
проблемы с правами доступа
>
> Как-то пару месяцев назад я с Вами это уже обсуждал в сизифовской
> рассылке, то я так и не уяснил для себя (в том числе и из документации
> на suphp.org): чем в принципе suphp лучше? Только заточкой под php? А
> что там может быть заточено? Это же всего лишь средство запуска внешнего
> бинарника. Какие тут у php особенности?
помню было :) Да это wrapper над php-cgi.
мне понравилось то, что:
1) не надо вносить изменения в php (не прописываем #/usr/bin/php-cgi),
2) можно иметь различные настройки с suexec
3) да и вообще, понравился.
>
> > Я бы еще порекомендовал патчи на suexec (http://www.localhost.nl/patches/, http://phil.kodezone.com/opensource/patches/), но автор на них "положил" и рекомендует suphp.
>
> спасибо, погляжу. Так забил он на свои патчи или он же автор suexec и на
> него положил тоже? Это меняет дело ;)
первое :)
>
> Вы suphp в пакет случайно не заворачивали?
пока нет, но обязательно на этой неделе. Если в тестировании проблем не будет, то заверну в сизиф (с соизволения власть-придержащих конечно - suid'ный он).
--
Best Regards, Konstantin Klimchev
(mailto:koka@atvc.ru jabber:koka@jabber.atvc.ru)
ATK-Internet ISP, Arkhangelsk, Russia
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-06-01 4:31 ` Klimchev Konstantin
@ 2004-06-01 7:09 ` Eugene Prokopiev
2004-06-01 7:40 ` Klimchev Konstantin
0 siblings, 1 reply; 9+ messages in thread
From: Eugene Prokopiev @ 2004-06-01 7:09 UTC (permalink / raw)
To: community
Klimchev Konstantin пишет:
> On Mon, 31 May 2004 21:30:45 +0400
> Eugene Prokopiev <john@rmts.donpac.ru> wrote:
>
>
>
>>>suexec -V ?
>>
>># suexec -V
>> -D DOC_ROOT="/home"
>> -D GID_MID=100
>> -D HTTPD_USER="apache"
>> -D LOG_EXEC="/var/log/httpd/suexec_log"
>> -D SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
>> -D UID_MID=100
>> -D USERDIR_SUFFIX="public_html"
>>
>>Правильно ли я понимаю, что это означает, что:
>>
>>1. Папки пользователей должны лежать только в /home
>>2. Содержимое виртуальных хостов должно лежать в /home/user/public_html
>>
>>?
>
>
> для решения Вашей проблемы - да
>
>
>>Создаю следующую структуру:
>>
>># ls -l | grep web3
>>drwxrwx--- 3 web3 web3 80 May 31 20:13 web3
>># ls -l web3/
>>total 1
>>drwxrwx--- 2 web3 web3 112 May 31 20:14 public_html
>># ls -l web3/public_html/
>>total 8
>>-rw-rw---- 1 web3 web3 191 May 31 20:14 index.html
>>-rw-rw---- 1 web3 web3 17 May 31 20:08 index.php
>>
>>Описываю виртуальный хост:
>>
>><VirtualHost 192.168.1.1>
>> User web3
>> Group web3
>> ServerName web3.athlon.home
>> DocumentRoot /home/web3/public_html
>></VirtualHost>
>>
>>Перезапускаю Apache и пытаюсь обратиться к http://web3.athlon.home,
>>получаю 500 Internal Server Error, а в логах:
>>
>># cat /var/log/httpd/access_log
>>192.168.1.1 - - [31/May/2004:20:57:29 +0400] "GET /index.php HTTP/1.1"
>>500 629
>># cat /var/log/httpd/error_log
>>[Mon May 31 20:57:29 2004] [error] [client 192.168.1.1] Premature end of
>>script headers: /home/bin/php-cgi
>># cat /var/log/httpd/suexec_log
>>[2004-05-31 20:57:29]: info: (target/actual) uid: (web3/web3) gid:
>>(web3/web3) cmd: php-cgi
>>[2004-05-31 20:57:29]: error: target uid/gid (1002/1002) mismatch with
>>directory (0/0) or program (0/0)
>
>
> проблемы с правами доступа
а именно? что не так с правами? и что _конкретно_ означает последнее
сообщение в /var/log/httpd/suexec_log? что с чем должно совпадать?
>>Как-то пару месяцев назад я с Вами это уже обсуждал в сизифовской
>>рассылке, то я так и не уяснил для себя (в том числе и из документации
>>на suphp.org): чем в принципе suphp лучше? Только заточкой под php? А
>>что там может быть заточено? Это же всего лишь средство запуска внешнего
>>бинарника. Какие тут у php особенности?
>
>
> помню было :) Да это wrapper над php-cgi.
>
> мне понравилось то, что:
> 1) не надо вносить изменения в php (не прописываем #/usr/bin/php-cgi),
а вместо него прописываем модуль? ;)
> 2) можно иметь различные настройки с suexec
да, это может быть важно
> 3) да и вообще, понравился.
а вот это главное :)
>>>Я бы еще порекомендовал патчи на suexec (http://www.localhost.nl/patches/, http://phil.kodezone.com/opensource/patches/), но автор на них "положил" и рекомендует suphp.
>>
>>спасибо, погляжу. Так забил он на свои патчи или он же автор suexec и на
>>него положил тоже? Это меняет дело ;)
>
> первое :)
>
>
>>Вы suphp в пакет случайно не заворачивали?
>
>
> пока нет, но обязательно на этой неделе. Если в тестировании проблем не будет, то заверну в сизиф (с соизволения власть-придержащих конечно - suid'ный он).
если будете делать пакет для ALM 2.2, поделитесь?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-06-01 7:09 ` Eugene Prokopiev
@ 2004-06-01 7:40 ` Klimchev Konstantin
2004-06-01 17:23 ` Eugene Prokopiev
0 siblings, 1 reply; 9+ messages in thread
From: Klimchev Konstantin @ 2004-06-01 7:40 UTC (permalink / raw)
To: community
On Tue, 01 Jun 2004 11:09:47 +0400
Eugene Prokopiev <john@rmts.donpac.ru> wrote:
> > проблемы с правами доступа
>
> а именно? что не так с правами?
права должны быть только владельцу (а не 660)
> и что _конкретно_ означает последнее
> сообщение в /var/log/httpd/suexec_log? что с чем должно совпадать?
кому принадрежит каталог и кому скрипт и что прописано в User и Group
> а вместо него прописываем модуль? ;)
>
ничего не прописываем, т.е. <?php и далее код. А место расположения - где html
>
> если будете делать пакет для ALM 2.2, поделитесь?
>
Для 2.2 я его точно делать не буду (нужно еще php переделывать). Не за горами новый мастер. Сейчас на сизифе обкатаю, а с выходом выложу где-нить.
--
Best Regards, Konstantin Klimchev
(mailto:koka@atvc.ru jabber:koka@jabber.atvc.ru)
ATK-Internet ISP, Arkhangelsk, Russia
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-06-01 7:40 ` Klimchev Konstantin
@ 2004-06-01 17:23 ` Eugene Prokopiev
2004-06-01 18:14 ` Eugene Prokopiev
0 siblings, 1 reply; 9+ messages in thread
From: Eugene Prokopiev @ 2004-06-01 17:23 UTC (permalink / raw)
To: community
Klimchev Konstantin пишет:
> On Tue, 01 Jun 2004 11:09:47 +0400
> Eugene Prokopiev <john@rmts.donpac.ru> wrote:
>
>
>
>>>проблемы с правами доступа
>>
>>а именно? что не так с правами?
>
>
> права должны быть только владельцу (а не 660)
>
>
>>и что _конкретно_ означает последнее
>>сообщение в /var/log/httpd/suexec_log? что с чем должно совпадать?
>
>
> кому принадрежит каталог и кому скрипт и что прописано в User и Group
Запутался вконец. Вот такие права:
# ls -l | grep web
drwxrwx--- 4 web3 web3 136 Jun 1 19:53 web3
# ls -l web3/
total 1
drwxrwx--- 2 web3 web3 112 May 31 20:14 public_html
drwx------ 2 web3 web3 48 Jun 1 19:52 tmp
# ls -l web3/public_html/
total 8
-rw-rw---- 1 web3 web3 191 May 31 20:14 index.html
-rw------- 1 web3 web3 17 May 31 20:08 index.php
Описание виртуального хоста:
<VirtualHost 192.168.1.1>
User web3
Group web3
ServerName web3.athlon.home
DocumentRoot /home/web3/public_html
</VirtualHost>
Ну и результаты попытки обратиться к этому хосту:
# cat /var/log/httpd/error_log
[Tue Jun 1 20:10:52 2004] [error] [client 192.168.1.1] Premature end of
script headers: /usr/bin/php-cgi
# cat /var/log/httpd/suexec_log
[2004-06-01 20:10:52]: info: (target/actual) uid: (web3/web3) gid:
(web3/web3) cmd: php-cgi
[2004-06-01 20:10:52]: error: command not in docroot (/usr/bin/php-cgi)
Можно ужесточить права на /home/web3 и /home/web3/public_html (до 700),
но тогда я получаю:
Forbidden
You don't have permission to access /index.php on this server.
Интересно еще то, что старые ошибки у меня уже не выходит воспроизвести:
при 660 на index.php получается тоже error: command not in docroot
Какая теперь команда должна быть in docroot?
>>а вместо него прописываем модуль? ;)
>>
>
> ничего не прописываем, т.е. <?php и далее код. А место расположения - где html
ладно, попробуем suphp :)
1. сношу apache и все, что с ним связано
2. ставлю заново (без suexec)
3. компилирую suphp ставлю с помощью make install - пакет буду делать
потом. Он при установке дописывает в httpd.conf:
LoadModule suphp_module modules/mod_suphp.so
AddModule mod_suphp.c
Include conf/addon-modules/mod_suphp.conf
4. дописываю туда же в самый конец AddHandler x-httpd-php .php
5. описываю виртуальный хост:
<VirtualHost 192.168.1.1>
suPHP_Engine on
ServerName web3.athlon.home
DocumentRoot /home/web3/public_html
</VirtualHost>
перезапускаю Апач.
И при попытке обратиться к index.php вижу его исходники.
Что я упустил?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] php as cgi
2004-06-01 17:23 ` Eugene Prokopiev
@ 2004-06-01 18:14 ` Eugene Prokopiev
0 siblings, 0 replies; 9+ messages in thread
From: Eugene Prokopiev @ 2004-06-01 18:14 UTC (permalink / raw)
To: community
> И при попытке обратиться к index.php вижу его исходники.
Что-то я себе скрутил серьезно.
Снес apache и php полностью. Поставил apache и php_mod.
php_mod отображает то, что положено на http://localhost/index.php, а на
всех прочих показывает исходники php.
Как я умудрился такого добиться?
Vhosts.conf:
NameVirtualHost 192.168.1.1
<VirtualHost 192.168.1.1>
ServerName web3.athlon.home
DocumentRoot /home/web3/public_html
</VirtualHost>
В httpd.conf:
Include conf/vhosts/Vhosts.conf
Include conf/addon-modules/mod_php4.conf
В mod_php4.conf:
LoadModule php4_module /usr/lib/apache/libphp4.so
AddModule mod_php4.c
AddType application/x-httpd-php .php .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
AddHandler application/x-httpd-php .php .php4 .php3 .phtml
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-06-01 18:14 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-30 16:44 [Comm] php as cgi Eugene Prokopiev
2004-05-31 12:27 ` Klimchev Konstantin
2004-05-31 12:31 ` Klimchev Konstantin
2004-05-31 17:30 ` Eugene Prokopiev
2004-06-01 4:31 ` Klimchev Konstantin
2004-06-01 7:09 ` Eugene Prokopiev
2004-06-01 7:40 ` Klimchev Konstantin
2004-06-01 17:23 ` Eugene Prokopiev
2004-06-01 18:14 ` Eugene Prokopiev
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git