LINUX.ORG.RU

Apache - open_basedir - ошибка


0

0

Добрый день, я не разбираюсь в администрировании веб-сервера. У меня проблема на сервере.

У меня на нем раньше можно было из одного пользователя обращаться к РНР файлам через РНР другого пользователя, вот пример:

<?php function testVar($var) { $var = str_replace('<','&lt;',$var); $var = str_replace('>','&gt;',$var); return $var; }

// код лежит в /home/user1/domains/example.ru/public_html/s.php $filename = '/home/user2/domains/example2.ru/public_html/index.php'; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); echo '<pre>'.testVar($contents); fclose($handle); ?>

Этот код выводит РНР код из файла index.php ДРУГОГО пользователя.

Мне нужно было чтобы этого делать было нельзя. Один человек мне однажды поковырял сервер и сделал, но появилась проблема с "open_basedir" - всегда выдавал ошибку если я делаю например следующее: 1. пишу в коде include '../file.php'; // тут из-за "../" выдавал ошибку про "open_basedir" 2. делаю скрипт "аплоуд файлов". 3. и вообще какие либо манипуляции с файлами не проходили, всегда выдавал одну и туже ошибку про open_basedir

Ошибка примерно такая: Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../configuration.php) is not within the allowed path(s): (VIRTUAL_DOCUMENT_ROOT:/tmp/) in /www/hmarka.net/r/o/robotwerder/home/site/index.php on line 21

(это не моя ошибка, но очень похожа на то что было у меня).

Я решал эту проблему прописывав в open_basedir путь к каждому своему сайту на сервере - но это ужасное решение.

Теперь мне человек попытался исправить это, и вернул так как было тогда, в начале и нечего больше сделать не смог.

Вопрос: как сделать так, чтобы тот скрипт который я привел в пример не срабатывал, чтобы не было доступа от одного пользователя к другому? И при этом чтобы не возникало проблем с "open_basedir".

p.s. Имею полный доступ к физическому серверу. Вот некоторая информация: Apache 2.2.11 DirectAdmin 1.33.6 Exim 4.69 MySQL 5.0.51a Named 9.3.4 ProFTPd 1.3.1 sshd dovecot 1.1.10 PHP Version 5.2.9

Apache он мне говорит работает как модуль.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.