Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Apache 2: php5 как cgi-приложение...
 
 автор: Cyrax   (15.09.2008 в 19:48)   письмо автору
 
 

До настоящего момента работал с php, установленным в качестве модуля. Всё нормально работало.
Возникла необходимость работы с php как с cgi-приложением. Для этой трансформации
я в файле httpd.conf заменил строки
AddType application/x-httpd-php phtml php
LoadModule php5_module "C:/GPL/PHP/php5apache2_2.dll

на строки
AddType application/x-httpd-php phtml php 
<Directory "C:/GPL/PHP/">  
  Options ExecCGI  
</Directory>  
ScriptAlias "/php_dir/" "C:/GPL/PHP/"  
Action application/x-httpd-php "/php_dir/php-cgi.exe"

так, как было указано в двух статьях из инета.

Но при этом браузер выводит ошибку
FORBIDDEN. You don't have permission to access /php_dir/php-cgi.exe/index.php on this server.

Странно, почему здесь фрагмент /php_dir/ не заменён на C:/GPL/PHP/...

Если убрать ScriptAlias
AddType application/x-httpd-php phtml php 
<Directory "C:/GPL/PHP/">  
  Options ExecCGI  
</Directory>  
Action application/x-httpd-php "C:/GPL/PHP/php-cgi.exe"

выводится уже другая ошибка:
NOT FOUND. The requested URL /GPL/PHP/php-cgi.exe/index.php was not found on this server.

А здесь уже куда-то-то исчез фрагмент "C:/"...

Одним словом, не работает. Может, где ещё чего изменить ?

  Ответить  
 
 автор: Cyrax   (18.09.2008 в 20:20)   письмо автору
 
   для: Cyrax   (15.09.2008 в 19:48)
 

А может, как cgi его никто не юзает ?

  Ответить  
 
 автор: Cyrax   (20.09.2008 в 19:25)   письмо автору
 
   для: Cyrax   (15.09.2008 в 19:48)
 

Проблема решена. Достаточно было внутри конструкции Directory указать Allow from all,
что означает разрешение доступа к этой папке с любых ip-ников:
AddType application/x-httpd-php phtml php 
<Directory "C:/GPL/PHP/">  
  Allow from all
  Options ExecCGI  
</Directory>  
ScriptAlias "/php_dir/" "C:/GPL/PHP/"  
Action application/x-httpd-php "/php_dir/php-cgi.exe"


В файле httpd.conf были описаны свойства корневой папки следующим образом:
<Directory />
    Options FollowSymLinks Includes Indexes
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Т.е. на все папки (на все подпапки корневой папки) по умолчанию был установлен запрет
доступа для всех ip-ников. Этот запрет по умолчнию распространялся на все папки, описанные
в httpd.conf , включая C:/GPL/PHP.
Поэтому, необходимо было установить разрешение Allow from all либо в описании корневой папки, либо в описании папки C:/GPL/PHP.

[quote]Странно, почему здесь фрагмент /php_dir/ не заменён на C:/GPL/PHP/...[/quote]
А замена фрагменов по ScriptAlias'у, судя по всему, происходит после получения доступа к папке, поэтому в сообщении об ошибке указан /php_dir/, а не C:/GPL/PHP/

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования