open_base_dir сломался ? или itk в топку ?

mefish

Support
Регистрация
30 Авг 2007
Сообщения
879
Реакции
699
Пипл непойму что за дела творятся, уже голову почти сломал*:D.


Пример виртуал хоста:


<VirtualHost IP:8080>
ServerName site.ru
DocumentRoot /home/user/data/www/site.ru
AssignUserID user user*
CustomLog /home/httpd-logs/site.ru.access.log combined
ErrorLog /home/httpd-logs/site.ru.error.log
ServerAlias Для просмотра ссылки Войди или Зарегистрируйся
ServerAdmin webmaster@site.ru
php_admin_value open_basedir "/home/user/data:."
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@site.ru"
php_admin_value upload_tmp_dir "/home/user/data/mod-tmp"
php_admin_value session.save_path "/home/user/data/mod-tmp"
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
</VirtualHost>



Апач mpm-itk.


Проблема в том, что папка data просматривается, я уже все перепробовал, на втором сервере все гуд, а тут такая беда.*


Мож кто сталкивался с такой хренью ?*
 
  • Заблокирован
  • #2
Прошу прощения, но можно поконкретнее, что не так?
open_basedir он на то и есть open_basedir, чтобы папка просматривалась!
Или имеется ввиду всего-навсего, что видно её содержимое без индекса?
 
В open_basedir заносится список разрешенных, а не запрещенных каталогов.
 
Хех, скажу конкретнее, панель ISPManager, заливаем шелл и пробуем пройтись по папкам.

Обьясните систаксис open base dir, что означает двоеточие и точка? :.

Раньше просмотр папок был возможен всех каталогов, НО исключая диру data. Почему сейчас сломалось все, не в курсе :confused:
 
: это разделитель
. это текущий каталог



Возможно, раньше шелл заливался с правами апача, а теперь заливается под правами юзера, залатали багу.
 
  • Заблокирован
  • #6
Хех, скажу конкретнее, панель ISPManager, заливаем шелл и пробуем пройтись по папкам.
Обьясните систаксис open base dir, что означает двоеточие и точка? :.
Раньше просмотр папок был возможен всех каталогов, НО исключая диру data. Почему сейчас сломалось все, не в курсе :confused:
Через двоеточие можно указать несколько директорий.
Очевидно точка, это текущая директория, но какую роль она играет в данном случае, хз... Возможно что и текущую директорию апача.
Имхо, точка там не нужна, можешь смело затереть вместе с двоеточием!
 
Очевидно точка, это текущая директория, но какую роль она играет в данном случае, хз... Возможно что и текущую директорию апача.
Имхо, точка там не нужна, можешь смело затереть вместе с двоеточием!


выдержка из манов. Точку никак нельзя стирать.
Специальное значение . указывает, что базовой следует считать директорию, в которой расположен сам скрипт. В этом случае следует быть осторожным, так как рабочую директорию скрипта можно легко изменить при помощи функции chdir().

Для Windows-систем разделителем списка директорий служит точка с запятой. Для всех других операционных систем в качестве разделителя используется двоеточие. В случае, если PHP работает как модуль веб-сервера Apache, все указания open_basedir для родительских директорий наследуются.

Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет открывать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".
 
  • Заблокирован
  • #8
выдержка из манов. Точку никак нельзя стирать.
Вот именно по этому и нужно убрать точку!!!
Читаем внимательно ман, и вникаем, что же там написано:
Специальное значение . указывает, что базовой следует считать директорию, в которой расположен сам скрипт. В этом случае следует быть осторожным, так как рабочую директорию скрипта можно легко изменить при помощи функции chdir().
Без неё директорию скрипта не сменить, а значит шелл отсасывает! :)
 
Все гуд, но сейчас на серванте 300 доменов, а со временем будет 500-600 к примеру, мне что, руками исправлять каждый раз прийдется ? :D

С разрабами разговор бесполезный, просили еще год назад сделать небольшой конфиг виртуал хоста, ответ был просто ухахатывающий: Вы ничего не решите, только удовлетворите сою параною :D

Вообщем что-то в етом роде.
 
  • Заблокирован
  • #10
Все гуд, но сейчас на серванте 300 доменов, а со временем будет 500-600 к примеру, мне что, руками исправлять каждый раз прийдется ? :D
С разрабами разговор бесполезный, просили еще год назад сделать небольшой конфиг виртуал хоста, ответ был просто ухахатывающий: Вы ничего не решите, только удовлетворите сою параною :D
Вообщем что-то в етом роде.
Глянул свой конфиг, и вспомнил про ":."...
Так как от испсистем реакции не ожидается, есть вариант подставить костыли.:confused:
Пишем скрипт, читающий конфиг виртуалхотсов, который ищет там :., и, если находит, удаляет везде и перезапускает апач.:)
Скрипт кидаем в крон, например раз в 10 минут, нагрузка минимальная.
Как такой вариант?

P.S.: Что-то я вдруг засомневался, что тут дело в точке, но в любом случае принцип понятен... :confused::)
 
Назад
Сверху