Я тестирую Fedora 29 (я был пользователем Debian последние 10 лет) для веб-разработки, и мне очень трудно пытаться заставить виртуальные хосты работать в Apache (я полагаю, это непонимание с моей стороны, если честно).
Это структура папок, с которой я хочу работать (я знаю, что я отклоняюсь от стандартного способа / var / www / html):
/home
/julio
/Projects
/Web
/meca-innotech.com
Пока что для работы с виртуальными хостами я создал «основные» папки и символические ссылки (только одну для тестирования):
/etc
/httpd
/sites-available
meca-innotech.com.conf
template.conf
/sites-enabled
meca-innotech.com.conf -> /etc/httpd/sites-available/foo.conf
Чтобы это работало, я также внес изменение в /etc/httpd/conf/httpd.conf
:
# Virtual host definitions
IncludeOptional sites-enabled/*.conf
Мое определение виртуального хоста выглядит так:
<VirtualHost *:80>
ServerName meca-innotech.com
DocumentRoot /home/julio/Projects/Web/meca-innotech.com
</VirtualHost>
Чтобы убедиться, что Apache разрешает допустимое полное доменное имя, я добавил соответствующую строку в /etc/hosts
:
192.168.1.77 jmecahansen-E1-570G.meca-innotech.com jmecahansen-E1-570G
127.0.0.1 meca-innotech.com
Я тоже настроил /etc/sysconfig/network
:
HOSTNAME=jmecahansen-E1-570G
Я запустил httpd -S
, и он не показал никаких ошибок. Я также запустил службу Apache с sudo systemctl start httpd
и все прошло нормально.
Проблема в том, что я, вероятно, не имею правильных разрешений или мне не хватает того, чего я не вижу сам. Например, я прочитал (в SO, сообщениях в блогах, некоторых сайтах Google и выводе /var/log/httpd/error_log
) ваш домашний каталог должен быть, по крайней мере, исполняемым. Это означает, что каталог /home/julio
необходимо преобразовать в chmod либо в 710, либо в 711.
Еще одна вещь, которую я прочитал, это то, что Apache должен быть связан с вашей группой пользователей, поэтому я попытался использовать usermod -a -G julio apache
, но это, похоже, не помогает.
В других источниках информации говорится, что вам нужно включить расширение Apache Userdir и запустить некоторые команды, связанные с SELinux, которые я совсем не понимаю.
Может быть, я переусердствовал, и все сводится к тому, чтобы следовать стандартному пути /var/www/html
и гарантировать, что мой пользователь является членом Apache и имеет соответствующие разрешения для вышеупомянутого пути.
В любом случае, я был бы очень признателен за помощь. Можете ли вы дать мне подсказку? :)