У меня проблема с простым chdir и require.
Из первого файла: web/index_cluster.php
Я пытаюсь загрузить второй: ezpublish_legacy/index_cluster.php
Мой требуемый файл не загружается, но я понятия не имею, почему...
Вот мой конфиг.
- PHP 5.4.16
- Обновление с eZ Publish 4.7 до eZ Pubslih 5.90.0alpa1 (на основе SF2)
- Red Hat Enterprise Linux Server версии 6.4 (Сантьяго)
В журнале ezpublish и разрешенном размере памяти в apache ничего нет.
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 240 bytes) in /path/to/my/www/web/index_cluster.php on line 11
Вот мое (упрощенное) дерево
www
`-- ezpublish_legacy
|-- index_cluster.php
`-- web
|-- index_cluster.php
Вот исходный код
$legacyRoot = '/path/to/my/www/ezpublish_legacy';
chdir( $legacyRoot );
require 'index_cluster.php';
И вот мое исправление
$legacyRoot = '/path/to/my/www/ezpublish_legacy';
chdir( $legacyRoot );
require '/path/to/my/www/ezpublish_legacy/index_cluster.php';
Я пробовал все, что мог придумать:
$legacyRoot = '/path/to/my/www/ezpublish_legacy';
require $legacyRoot.'/index_cluster.php';
=> Работает
$legacyRoot = '/path/to/my/www/ezpublish_legacy';
echo getcwd() . "\n";
chdir( $legacyRoot );
echo getcwd() . "\n";
die()
require 'index_cluster.php';
=> именно то, что я ожидаю
/path/to/my/www/web
/path/to/my/www/ezpublish_legacy
Загрузка с абсолютным путем и проверка текущего каталога в загруженном файле дает ожидаемый результат
веб/index_cluster.php
require '/path/to/my/www/ezpublish_legacy/index_cluster.php';
ezpublish_legacy/index_cluster.php
echo getcwd() . "\n";
die();
результат (то, что я ожидаю)
/path/to/my/www/web
веб/index_cluster.php
$legacyRoot = '/path/to/my/www/ezpublish_legacy';
chdir( $legacyRoot );
require '/path/to/my/www/ezpublish_legacy/index_cluster.php';
ezpublish_legacy/index_cluster.php
echo getcwd() . "\n";
die();
результат (то, что я ожидаю)
/path/to/my/www/ezpublish_legacy
Обновление: я пробовал что-то новое:
require "/index_cluster.php" => instant fail
Предупреждение PHP: require(/index_cluster.php): не удалось открыть поток: нет такого файла или каталога в /path/to/my/www/web/index_cluster.php в строке 11
require "index_cluster.php" => trying loading for 10 seconds then fail
Неустранимая ошибка PHP: допустимый размер памяти 536870912 байт исчерпан (попытка выделить 240 байт) в /path/to/my/www/web/index_cluster.php в строке 11