#php
#php
Вопрос:
В настоящее время в моем PHP-коде я должен указывать include($_SERVER['DOCUMENT_ROOT']"./
перед каждым путем к файлу в моем веб-коде. Я ранее спрашивал и обнаружил, что могу установить include_path. Я попытался установить это как в .htaccess, так и в .conf для виртуального хоста, но он просто выходит из строя и не работает / не загружает включение.
Код: это в файле vhost .conf:
<IfModule mod_php7.c>
php_value include_path ":/var/www/testdomains/domain-test1.local/php"
php_admin_flag engine on
</IfModule>
(Я пытался поместить это за пределы области IfModule, но безуспешно.
Мой файл .php на веб-сервере:
<?php require "/authcheck.php" ?>
Что я делаю не так?
Комментарии:
1. Вам не нужен include_path для запроса других php-файлов в том же каталоге. Если у вас есть, например, index.php и authcheck.php в том же каталоге просто удалите начальную косую черту, например
<?php require "authcheck.php" ?>
. Вам нужен путь включения, чтобы сделать доступными файлы, которых нет в корне документа веб-сервера.2. Если вы хотите включить файл относительно файла, который выполняет включение, используйте
require __DIR__ . '/path/to/the/file.php';
—__DIR__
константа содержит абсолютный путь к файлу, в который он записан, что позволит ему работать, даже если вы включите этот файл из другого файла в другом месте.3. Я пытаюсь очистить код, и include_path показался лучшим способом сделать это. В любом случае, я бы предпочел иметь возможность просто включать заголовки и дополнительную информацию, не беспокоясь об относительных путях, и просто записывать все на основе корня документа. Является ли код, который я включил выше, просто невозможным?