Я пытаюсь создать поддомен для проекта, над которым работаю, projectx.cairocubicles.com, этот URL указывает на сервер, отличный от того, на котором www.cairocubicles.com. На сервере, на который указывает субдомен, установлен apache со следующим виртуальным хостом:
<VirtualHost *:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin webmaster@cairocubicles.com
ServerName www.project1.cairocubicles.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/project1/web/public
<Directory /home/project1/web/public>
Options Indexes FollowSymLinks
AllowOverride All
AcceptPathInfo On
Order allow,deny
Allow from all
</Directory>
# Custom log file locations
LogLevel warn
ErrorLog /home/project1/web/log/error.log
CustomLog /home/project1/web/log/access.log combined
</VirtualHost>
Но теперь при просмотре project1.cairocubicles.com я получаю другой веб-сайт (другой веб-сайт в списках виртуальных хостов). Я тоже пробовал менять ServerName www.project1.cairocubicles.com
к ServerName project1.cairocubicles.com
но затем я получил ошибку 403 Forbidden. Какие-нибудь подсказки?
Спасибо.
-Убедитесь, что вы выполнили перезагрузку или перезагрузку с apache2 / httpd после ЛЮБЫХ изменений в конфигурации
-Убедитесь, что / home / project1 / web / public существует и разрешение 664 (выполнить это рекурсивно с -R)
-Убедитесь, что владельцем и группой файлов является apache2 / httpd (в зависимости от дистрибутива), обычно идентификатор пользователя 33
-Убедитесь, что IP-адрес, на который указывает project1.cairocubicles.com, правильный.
-Я вообще избегаю www. субдомен с существующим субдоменом (не по техническим причинам, это просто выглядит беспорядочно)
-Для тестирования создайте файл с именем phpinfo.php, и пусть он содержит только следующие
<?php
phpinfo();
?>
и загрузить только это (так что http://project1.cairocubicles.com/phpinfo.php)
-Вы должны убедиться, что вы изменили информацию о владельце и группе в папках. Попробуйте выполнить следующую команду (расширяя пункт 3 выше):
sudo chown apache2 /home/project1/public -R
и
sudo chgrp apache2 /home/project1/public -R
если команды говорят, что пользователь apache2 не существует, замените его на httpd. Если процесс apache2 (запущенный как пользователь apache2) не может читать / выполнять файлы, могут возникнуть ошибки (например, 403 запрещено).
Другой способ обойти это - добавить вашего пользователя в группу apache2. Это немного сложнее правильно настроить, хотя
Просто быстрый снимок в темноте, но это может быть проблема SELinux. Когда вы переходите на сайт, который вы настроили как ServerName, отображается ли что-нибудь в журналах конкретного сайта? Что-нибудь отображается в /var/log/http/error.log?
Пытаться:
ServerName project1.cairocubicles.com ServerAlias www.project1.cariocubicles.com
Убедитесь, что пользователь, от имени которого запущен apache, имеет доступ для чтения к каталогу / home / project1 / web / public.
Если домен не указан как ServerName или ServerAlias, он будет загружаться с первого определенного VirtualHost. Поэтому в первом случае вы оказались не на том сайте.
После изменения ServerName вы, вероятно, загружали правильный веб-сайт, но теперь у вас возникла проблема с разрешениями или контентом. Проверьте журналы ошибок, журналы доступа, разрешения файловой системы. Кроме того, предыдущий плакат упоминал SELinux как возможную проблему.
так что теперь это сработало, когда я дал домашнему каталогу в / home / userx разрешение o + x, это безопасно, почему ему нужно разрешение на выполнение для всех
Мне нужно было убедиться, что я изменил информацию о владельце и группе в папках с помощью следующей команды: chown apache2 / home / project1 / public -R и chgrp apache2 / home / project1 / public -R, если команды говорят, что пользователь apache2 не существует, замените его на httpd. Это причина, по которой он не работает в домашнем каталоге (принадлежащем вашему пользователю) и не работает в каталоге / var / www (принадлежит apache2). Я бы рекомендовал создать символическую ссылку в / var / www /, указывающую на ваш домашний каталог. Это стандартное дело. (другим легче увидеть, что происходит)