Сегодня я пытаюсь установить httpd и mysql на свой ПК с Fedora 14. Это отлично работает. После этого я пытаюсь создать папку public_html в каталоге пользователя и разрешить php обращаться к этой папке. Для этого я перехожу по этой ссылке. Теперь, когда я пытаюсь получить доступ к этой папке, он показывает forbidden сообщение в моем браузере. Чтобы избежать этого, я погуглил мою проблему, которая дала мне эту ссылку. Когда я пытаюсь setsebool -P httpd_enable_homedirs=1
Теперь мой браузер показывает Internal server error .

Мой журнал ошибок

    [Tue Apr 01 09:01:28 2014] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Apr 01 09:01:28 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Apr 01 09:01:28 2014] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 01 09:01:28 2014] [notice] Digest: done
[Tue Apr 01 09:01:30 2014] [notice] Apache/2.2.17 (Unix) DAV/2 PHP/5.3.8 configured -- resuming normal operations
[Tue Apr 01 09:08:45 2014] [crit] [client 127.0.0.1] configuration error:  couldn't perform authentication. AuthType not set!: /~BON4/
[Tue Apr 01 09:08:52 2014] [crit] [client 127.0.0.1] configuration error:  couldn't perform authentication. AuthType not set!: /~BON4/HH.php
[Tue Apr 01 09:08:52 2014] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico

4 ответа4

1

Пытаться

<Directory />

   Options FollowSymLinks
   AuthType None
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>

<Directory "/opt/your_folder/*">

   Options FollowSymLinks MultiViews
   AllowOverride None
   AuthType None
   Order deny,allow
   Allow from all
</Directory>

Кажется, это ошибка разрешения папки, которую вы создали в веб-каталоге.

1

Поместите некоторое содержимое (например, index.php или index.html) в каталог public_html в соответствии с вашей конфигурацией веб-сервера.И да, было бы полезно, если вы предоставите журналы ошибок.

0

Ссылка, по которой вы переходили, указана для версий 2.2 и 2.4; Я подозреваю, что вам нужно удалить Require all granted из /etc/httpd/conf.d/userdir.conf как Fedora 14 поставляется с Apache 2.2.

Я также рекомендовал бы прочитать http://httpd.apache.org/docs/2.2/mod/mod_userdir.html для лучшего обзора mod_userdir в apache 2.2

-1

Веб-сайт, который вы хотите запустить, должен быть таким, каким он был упомянут в вашей ссылке (используя selinux и /home /user /public_html). Если это не так, пожалуйста, отключите selinux и попробуйте поместить некоторый контент в /var /www /html, а также прокомментируйте модуль userdir. И если вы хотите настроить его в /home /user /public_html, рассмотрите запись vhosts (virtualhost) в вашем файле httpd.conf. Потому что в случае включения selinux вы должны сделать политику, что разрешать, а что нет.

Настройка Vhost:

Так как разрешения по умолчанию позволяют нам, «демо» пользователю, просматривать нашу домашнюю папку, давайте начнем с предоставления Apache доступа и к этой папке:

chmod 755 /home /demo

Хорошо, теперь нам нужно создать структуру каталогов для наших сайтов.

В вашем домашнем каталоге создайте папку public_html:

cd ~ mkdir public_html

Теперь для каждого домена, который мы хотим разместить, создайте папку со стандартным набором подпапок:

mkdir -p public_html/domain1.com/{public, private, log, cgi-bin, backup}

Это создаст папки public, private, log, cgi-bin и backup для каждого нашего домена (domain1.com).

index.html

Содержимое общей папки полностью зависит от вас, но в этом примере я собираюсь использовать очень простой HTML-файл, чтобы мы могли проверить правильность работы виртуальных хостов:

Для каждого домена создадим файл index.html:

vi public_html/domain1.com/public/index.html

Давайте продолжим и раскомментируем универсальный NameVirtualHost в конфигурации Apache.

Перейдите в каталог /etc /httpd /conf и откройте основной файл конфигурации Apache (httpd.conf):

sudo vi httpd.conf

Теперь мы можем перезапустить Apache, чтобы инициировать изменения:

sudo /etc/init.d/httpd restart

Пользовательские виртуальные хосты

Мы настроили основы, и теперь мы готовы добавить наши собственные виртуальные хосты, чтобы мы могли начать обслуживать наши домены.

Давайте создадим vhost для domain1:

sudo vi /etc/httpd/conf/httpd.conf

В нижней части файла httpd.conf нам нужно добавить следующее:

# Администрирование электронной почты, имя сервера (имя домена) и любые псевдонимы ServerAdmin webmaster@domain1.com ServerName domain1.com ServerAlias www.domain1.com

# Корень документа (где находятся общедоступные файлы) DocumentRoot /home/demo/public_html/domain1.com/public # Расположение пользовательских файлов журнала LogLevel warn ErrorLog /home/demo/public_html/domain1.com/log/error.log CustomLog /home /demo /public_html /domain1.com /log /access.log в сочетании

Хорошо, теперь нам нужно перезагрузить Apache:

sudo /etc/init.d/httpd reload

Теперь перейдите на ваш сайт:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .