Назад | Перейти на главную страницу

Виртуальные хосты не работают в Fedora 22

Недавно я переключился с Ubuntu на Fedora Workstation в качестве среды разработки, чтобы лучше понимать серверы CentOS (а также по другим причинам).

Я пытался настроить локальный стек LAMP для разработки.

Вот что у меня есть банкомат:

httpd    Apache/2.4.16 (Fedora), runs as apache/apache,
         mod_php is disabled,
         handler is
         "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"

php      5.6.14

php-fpm  runs as apache/apache,
         path is /run/php-fpm/www.sock, process type is mpm_event

/etc/httpd/conf.d/php.conf

<IfModule !mod_php5.c>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>
</IfModule>

Я действительно не пробовал ни одну из настроек в /etc/httpd/conf/httpd.conf. Сервер и PHP работают нормально для /var/www/html, но когда я пытаюсь создать новый VirtualHost, Я получил 403 для всех каталогов. Я пытаюсь перейти на новый виртуальный хост, добавив файл конфигурации:

/etc/httpd/conf.d/sites.conf

<VirtualHost *:80>
    ServerName site1.local
    ServerAlias site1alias.local
    DocumentRoot /home/myuser/Projects/site1/www
    <Directory /home/myuser/Projects/site1/www>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

httpd -S

AH00558: httpd: Could not reliably determine the server's
fully qualified domain name, using ::1.
Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   site1.local (/etc/httpd/conf.d/sites.conf:4)
ServerRoot: "/etc/httpd"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/etc/httpd/logs/error_log"
Mutex default: dir="/run/httpd/" mechanism=default 
Mutex authdigest-opaque: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
Mutex authdigest-client: using_defaults
Mutex lua-ivm-shm: using_defaults
Mutex proxy: using_defaults
Mutex authn-socache: using_defaults
PidFile: "/run/httpd/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="apache" id=48
Group: name="apache" id=48

/ etc / hosts

127.0.0.1   localhost gpc local localhost.localdomain site1.local site1alias.local
::1         localhost gpc local localhost.localdomain

SELinux установлен на «разрешающий» с помощью setenforce 0 (кажется, показывает предупреждения, но разрешает действия).

Всякий раз, когда я пытаюсь просмотреть http://localhost/ или http://site1.local/, Я получил

Forbidden: You don't have permission to access / on this server.

Возможно

AH00558: httpd: Could not reliably determine the server's
fully qualified domain name, using ::1.
Set the 'ServerName' directive globally to suppress this message

имеет какое-то отношение к этому? Я пробовал ченинг ServerName localhost директива в /etc/httpd/conf/httpd.conf но это не имело никакого эффекта. У меня заканчиваются идеи здесь. Чувствую, что в конфигурации чего-то не хватает. Любая помощь или совет будут очень благодарны.

РЕДАКТИРОВАТЬ:

Записи из /var/log/httpd/error_log:

[Sat Oct 31 17:29:33.253428 2015] [core:notice] [pid 844:tid 140376890374272] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sat Oct 31 17:29:33.259649 2015] [suexec:notice] [pid 844:tid 140376890374272] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
[Sat Oct 31 17:29:33.274149 2015] [auth_digest:notice] [pid 844:tid 140376890374272] AH01757: generating secret for digest authentication ...
[Sat Oct 31 17:29:33.275309 2015] [lbmethod_heartbeat:notice] [pid 844:tid 140376890374272] AH02282: No slotmem from mod_heartmonitor
[Sat Oct 31 17:29:33.279406 2015] [mpm_event:notice] [pid 844:tid 140376890374272] AH00489: Apache/2.4.16 (Fedora) configured -- resuming normal operations
[Sat Oct 31 17:29:33.279437 2015] [core:notice] [pid 844:tid 140376890374272] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Sat Oct 31 17:30:18.500583 2015] [core:error] [pid 937:tid 140376476202752] (13)Permission denied: [client 127.0.0.1:42036] AH00035: access to / denied (filesystem path '/home/myuser/Projects') because search permissions are missing on a component of the path
[Sat Oct 31 17:30:18.667997 2015] [core:error] [pid 937:tid 140376459417344] (13)Permission denied: [client 127.0.0.1:42036] AH00035: access to /favicon.ico denied (filesystem path '/home/myuser/Projects') because search permissions are missing on a component of the path, referer: http://site1.local/

Разрешения

apache/apache 755 /var/www/html/
apache/apache 755 /home/myuser/Projects/site1/

Вот твоя ошибка. Смотри внимательно:

[Sat Oct 31 17:30:18.500583 2015] [core:error] [pid 937:tid 140376476202752] (13)Permission denied: [client 127.0.0.1:42036] AH00035: access to / denied (filesystem path '/home/myuser/Projects') because search permissions are missing on a component of the path
[Sat Oct 31 17:30:18.667997 2015] [core:error] [pid 937:tid 140376459417344] (13)Permission denied: [client 127.0.0.1:42036] AH00035: access to /favicon.ico denied (filesystem path '/home/myuser/Projects') because search permissions are missing on a component of the path, referer: http://site1.local/

Это происходит потому, что у Apache нет разрешения на поиск (спуститься, x разрешение) один из родительских каталогов.

Чтобы решить проблему, сначала проверьте, какой родительский каталог не имеет необходимых разрешений, например с участием namei -l /home/myuser/Projects/index.php. Найдите каталог, в котором отсутствует x разрешения для всех пользователей и дайте правильные разрешения с помощью chmod a+x /directory.

Ошибка не может квалифицироваться, что fqdn не имеет к этому никакого отношения, вы можете исправить это, добавив запись в / etc / hosts с вашим внешним IP-адресом, а затем именем хоста. По поводу ошибки php: что-нибудь в логах apache?

РЕДАКТИРОВАТЬ:

Пожалуйста, проверьте разрешения / home / myuser / Projects, он должен быть доступен для чтения для пользователя httpd apache (по крайней мере, r-x)