Есть 2 виртуальных хоста, нужно чтобы с одного хоста не возможно было попасть во второй хост. MPM-itk устраивает. Установил.
Проверяю site1.ru командой id выдает uid=1003(web1_admin) gid=1003(web1) groups=1003(web1). А site2 при обращении к php файлам выдает
Warning: Unknown: open_basedir restriction in effect. File(/data/sites/site2/br2.php) is not within the allowed path(s): (/data/sites/site1) in Unknown on line 0Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
Fatal error: Unknown: Failed opening required '/data/sites/site2/br2.php' (include_path='.:/usr/local/share/pear') in Unknown on line 0
html файлы открывает нормально. Что делать не знаю.
Конфиги:
<VirtualHost *:80>
DocumentRoot "/data/sites/site1/"
ServerName "site1.ru"
<IfModule mpm_itk_module>
AssignUserId web1_admin web1
</IfModule><VirtualHost *:80>
DocumentRoot "/data/sites/site2/"
ServerName "site2.ru"
<IfModule mpm_itk_module>
AssignUserId web1_admin web1
</IfModule>
а где в Вашем конфиге закрывающие </VirtualHost> ?что говорит
apachectl -t
httpd -SДолжно быть
Syntax OK
и в перечне виртуальных хостов
site1.ru
site2.ruсоответственно.
> а где в Вашем конфиге закрывающие </VirtualHost> ?
> что говорит
> apachectl -t
> httpd -S
> Должно быть
> Syntax OK
> и в перечне виртуальных хостов
> site1.ru
> site2.ru
> соответственно.Закрывающий тег здесь пропустил
httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_servers:
*:80 is a NameVirtualHost
default server site2.ru
port 80 namevhost site2.ru
port 80 namevhost site1.ru
Syntax Okapachectl -t
Syntax Ok
>[оверквотинг удален]
> httpd -S
> VirtualHost configuration:
> wildcard NameVirtualHosts and _default_servers:
> *:80 is a NameVirtualHost
> default server site2.ru
> port 80 namevhost site2.ru
> port 80 namevhost site1.ru
> Syntax Ok
> apachectl -t
> Syntax OkС самим Apache все верно.
А вот с php - не совсем.Если для сайта не заданы параметры, то используются общие для php из его php.ini
И, похоже, что в этом php.ini задан параметр open_basedir, который вам совсем не подходит.Укажите в конфиге апача в секции virtualhost для каждого сайта:
php_admin_value open_basedir "/data/sites/site2" (или site1).
>[оверквотинг удален]
>> apachectl -t
>> Syntax Ok
> С самим Apache все верно.
> А вот с php - не совсем.
> Если для сайта не заданы параметры, то используются общие для php из
> его php.ini
> И, похоже, что в этом php.ini задан параметр open_basedir, который вам совсем
> не подходит.
> Укажите в конфиге апача в секции virtualhost для каждого сайта:
> php_admin_value open_basedir "/data/sites/site2" (или site1).Спасибо действительно заработало.
Но ситуация теперь такая. Хосты работают от разных пользователей. через команду system() выполняемую на site1 создать каталог в site2 не получается. А через site2 в site1 каталог создается. В чем может быть причина? /data/sites/site1 и /dats/sites/site2 принадлежат соответственно пользователем от имени которых работают хосты (их домашние папки)
>[оверквотинг удален]
>> И, похоже, что в этом php.ini задан параметр open_basedir, который вам совсем
>> не подходит.
>> Укажите в конфиге апача в секции virtualhost для каждого сайта:
>> php_admin_value open_basedir "/data/sites/site2" (или site1).
> Спасибо действительно заработало.
> Но ситуация теперь такая. Хосты работают от разных пользователей. через команду system()
> выполняемую на site1 создать каталог в site2 не получается. А
> через site2 в site1 каталог создается. В чем может быть причина?
> /data/sites/site1 и /dats/sites/site2 принадлежат соответственно пользователем от имени
> которых работают хосты (их домашние папки)Ну я же не знаю, что у вас еще прописано в php.ini ...
Посмотрите в том же Инете документацию по PHP. Даже с примерами полно.
И тогда вопросов, который был выше, будет гораздо меньше.
Да и не лишним будет понять, что и зачем и где прописывается в конфигах, чтобы обезопасить свои же сервера.P.S. open_basedir можете вообще отключить, тогда php сможет получать доступ куда угодно ...
>[оверквотинг удален]
>> /data/sites/site1 и /dats/sites/site2 принадлежат соответственно пользователем от имени
>> которых работают хосты (их домашние папки)
> Ну я же не знаю, что у вас еще прописано в php.ini
> ...
> Посмотрите в том же Инете документацию по PHP. Даже с примерами полно.
> И тогда вопросов, который был выше, будет гораздо меньше.
> Да и не лишним будет понять, что и зачем и где прописывается
> в конфигах, чтобы обезопасить свои же сервера.
> P.S. open_basedir можете вообще отключить, тогда php сможет получать доступ куда угодно
> ...Спасибо за помощь. Разобрался