Я работаю с сервером LAMP с несколькими сайтами, настроенными как поддомены в Apache. Как стандарт, каждый сайт/поддомен живет в опрятном каталоге внутри/var/www /. Я рассказал Apache, где каждый сайт живет в файлах/etc/apache2/sites-available/config, используя несколько VirtualHosts и указывая DocumentRoot и ServerName для каждого.Apache & PHP: DocumentRoot не работает должным образом
Когда я пишу JavaScript на страницах, я могу ссылаться на другие страницы на основе корня сайта, например:
include '/includes/something.js';
Но я не могу сделать то же самое в PHP. Если я хочу, чтобы включить файл в PHP код, мне нужно набрать:
include '/var/www/site_name/includes/something.php';
(я все еще могу сделать относительные ссылки, такие как ../includes/something.php, но это рядом с точкой здесь.) Я был смущен тем, зачем мне нужен/var/www /, но до сих пор это было просто досадой. Я мог бы составить код вокруг него, как только я понял, что нужен полный каталог. Но теперь я пытаюсь установить PHPlist, и каждый раз, когда я сохраняю параметр, я перенаправляюсь на URL-адрес, такой как https://phplist.mydomain.org/var/www/phplist/admin/?page=configure - который, конечно, дает мне ошибку «Страница не найдена».
Похоже, что что-то испортилось из-за того, как моя установка Apache/PHP обрабатывает корень сайта. Я не вкопался в код PHPlist и особо не хочу этого делать. Но я предполагаю, что если я могу исправить свои настройки, чтобы включить файлы на PHP без необходимости/var/www/prefix, то PHPlist также перестанет давать мне префиксы URL.
Для справки, вот как выглядит большинство моих виртуальных хостов Apache. Я думаю, что мои конкретные вопросы: 1) вы видите что-то в том, что я вам сказал, что нужно исправлять? 2), где бы вы посмотрели или что бы вы попробовали, чтобы выяснить эту странность?
<VirtualHost 95.102.96.250:443>
ServerName phplist.mydomain.org
DocumentRoot /var/www/phplist
ServerAdmin [email protected]
<Directory /var/www/phplist/>
Options +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
</Directory>
</VirtualHost>
Надеюсь, это просто основное недоразумение с моей стороны. Я пробовал RingTFM, но не смог понять, что здесь происходит. Заранее спасибо!