Универсальный разделитель пути включения - PullRequest
0 голосов
/ 28 апреля 2020

Я использую проект как на своем локальном хосте (на машине windows), так и на сервере Linux, который не позволяет мне получить доступ к php .ini .

Мне нужно добавить два include_path внутри моего .htaccess, чтобы мой скрипт читал как файлы localhost, так и файлы хоста.

Поэтому мне нужно добавить два пути включения:

C:/Xampp/path/to/root  --local
/home/path/to/root     --server

Проблема в том, что разделитель многолучевого распространения в Windows - это точка с запятой, а в Linux - двоеточие, поэтому пишите следующее:

php_value include_path "C:/Xampp/path/to/root;/home/path/to/root"

Я получаю фатальную ошибку на веб-сайте, и пишу:

php_value include_path "C:/Xampp/path/to/root:/home/path/to/root"

Я получаю фатальную ошибку на локальном хосте.

Есть ли обходной путь, чтобы заставить их обоих работать?

Я не могу использовать set_incude_path или ini_set, потому что мне нужно включить файл поверх каждого отдельного скрипта, использующего эти пути, и я не могу использовать auto_prepend_file, потому что мой хост отключил его.

1 Ответ

1 голос
/ 28 апреля 2020

Я нашел обходной путь:

php_value include_path "first/linux/path/:;first/windows/path;:second/linux/path:;second/windows/path

или

php_value include_path "first/linux/path:second/linux/path:;first/windows/path/1;second/windows/path"

, поэтому в моем примере:

php_value include_path "C:/Xampp/path/to/root;:/home/path/to/root"

Объяснение:

Сервер Linux читает два пути: C:/Xampp/path/to/root; и /home/path/to/root.

Таким образом, первый недопустим, но это не имеет значения, поскольку на сервере Linux мне нужен только второй one.


Машина Windows считывает два пути: C:/Xampp/path/to/root и :/home/path/to/root.

Таким образом, второй недопустим, но это не имеет значения, поскольку на Windows машина Мне нужен только второй.


Все равно будет проблема, если мне понадобится путь, который работает в обеих системах, но это не мой случай.

В любом случае Я оставлю этот вопрос открытым для более подробных c и всегда работающих ответов.

...