я создал ларавель 8
приложение и установил апач2
.
Мои файлы конфигурации выглядят следующим образом:
000-default.conf
<Виртуальный хост *:80>
# Директива ServerName устанавливает схему запроса, имя хоста и порт, которые
# сервер использует для идентификации себя. Это используется при создании
# URL-адреса перенаправления. В контексте виртуальных хостов ServerName
# указывает, какое имя хоста должно отображаться в заголовке Host: запроса, чтобы
# соответствует этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это
# значение не имеет решающего значения, так как оно все равно используется в качестве хоста последней инстанции.
# Тем не менее, вы должны явно установить его для любого последующего виртуального хоста.
#ServerName www.example.com
Веб-мастер администратора сервера@localhost
DocumentRoot /home/admin/Desktop/Code/
# Доступные уровни логов: trace8, ..., trace1, debug, info, note, warn,
# ошибка, крит, оповещение, эмердж.
# Также можно настроить уровень логирования для конкретного
# модули, например.
# Информация об уровне журнала ssl: предупреждение
Журнал ошибок ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log вместе
# Для большинства конфигурационных файлов из conf-available/, которые
# включено или отключено на глобальном уровне, можно
# включить строку только для одного конкретного виртуального хоста. Например
# следующая строка включает конфигурацию CGI только для этого хоста
# после глобального отключения с помощью "a2disconf".
# Включить conf-available/serve-cgi-bin.conf
<Каталог /home/admin/Desktop/Code/laravel_project/public/>
Разрешить переопределить все
разрешить от всех
Опции +Индексы
</Каталог>
</ виртуальный хост>
# vim: синтаксис=apache ts=4 sw=4 sts=4 sr noet
apache2.conf
# Это основной файл конфигурации сервера Apache. Он содержит
# директивы конфигурации, которые дают инструкции серверу.
# См. http://httpd.apache.org/docs/2.4/ для получения подробной информации о
# директивы и /usr/share/doc/apache2/README.Debian о специфичных для Debian
# подсказки.
#
#
# Краткое изложение того, как конфигурация Apache 2 работает в Debian:
# Конфигурация веб-сервера Apache 2 в Debian сильно отличается от
# предложенный upstream способ настройки веб-сервера. Это потому, что Debian
# установка Apache2 по умолчанию пытается добавить и удалить модули,
# виртуальные хосты и дополнительные директивы конфигурации настолько гибки, насколько это возможно, в
# чтобы сделать автоматизацию изменений и администрирование сервера максимально простым
# возможное.
# Он разделен на несколько файлов, образующих описанную иерархию конфигурации
# ниже, все расположено в каталоге /etc/apache2/:
#
# /etc/apache2/
# |-- apache2.conf
# | `-- порты.conf
# |-- с поддержкой модов
# | |-- *.загрузить
# | `-- *.conf
# |-- conf включен
# | `-- *.conf
# `-- с поддержкой сайтов
# `-- *.conf
#
#
# * apache2.conf — основной файл конфигурации (этот файл). Он кладет кусочки
# вместе, включив все оставшиеся файлы конфигурации при запуске
# веб сервер.
#
# * ports.conf всегда подключается из основного файла конфигурации. это
# предполагается определить порты прослушивания для входящих соединений, которые могут быть
# настраивается в любое время.
#
# * Конфигурационные файлы в папках mods-enabled/, conf-enabled/ и sites-enabled/
# каталоги содержат определенные фрагменты конфигурации, которые управляют модулями,
# глобальные фрагменты конфигурации или конфигурации виртуального хоста,
# соответственно.
#
# Они активируются символической ссылкой на доступные файлы конфигурации из их
# соответствующие *-доступные/аналоги. Они должны управляться с помощью нашего
# помощники a2enmod/a2dismod, a2ensite/a2dissite и a2enconf/a2disconf. Видеть
# соответствующие справочные страницы для получения подробной информации.
#
# * Бинарный файл называется apache2. Из-за использования переменных окружения в
# конфигурация по умолчанию, apache2 нужно запускать/останавливать с помощью
# /etc/init.d/apache2 или apache2ctl. Вызов /usr/bin/apache2 напрямую не будет
# работа с конфигурацией по умолчанию.
# Глобальная конфигурация
#
#
# ServerRoot: Верхняя часть дерева каталогов, в которой находится сервер.
# файлы конфигурации, ошибок и журналов сохраняются.
#
# ПРИМЕЧАНИЕ! Если вы собираетесь разместить это в NFS (или в другой сети)
# смонтированная файловая система, тогда прочтите документацию по Mutex (доступна
# по адресу <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# вы избавите себя от многих проблем.
#
# НЕ добавляйте косую черту в конце пути к каталогу.
#
#ServerRoot "/etc/apache2"
#
# Файл блокировки сериализации приема ДОЛЖЕН БЫТЬ ХРАНЕН НА ЛОКАЛЬНОМ ДИСКЕ.
#
#Файл мьютекса: ${APACHE_LOCK_DIR} по умолчанию
#
# Каталог, в котором будут храниться shm и другие файлы среды выполнения.
#
Каталог времени выполнения по умолчанию ${APACHE_RUN_DIR}
#
# PidFile: файл, в котором сервер должен записывать свой процесс
# идентификационный номер при запуске.
# Это нужно установить в /etc/apache2/envvars
#
Pid-файл ${APACHE_PID_FILE}
#
# Тайм-аут: количество секунд до тайм-аута приема и отправки.
#
Таймаут 300
#
# KeepAlive: разрешать ли постоянные соединения (более
# один запрос на соединение). Установите на «Выкл.», чтобы деактивировать.
#
KeepAlive включен
#
# MaxKeepAliveRequests: Максимальное количество разрешенных запросов
# при постоянном соединении. Установите на 0, чтобы разрешить неограниченное количество.
# Мы рекомендуем вам оставить это число большим для максимальной производительности.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: количество секунд ожидания следующего запроса от
# тот же клиент на том же соединении.
#
KeepAliveTimeout 5
# Их нужно установить в /etc/apache2/envvars
Пользователь ${APACHE_RUN_USER}
Группа ${APACHE_RUN_GROUP}
#
# HostnameLookups: регистрируйте имена клиентов или только их IP-адреса.
# например, www.apache.org (вкл.) или 204.62.129.132 (вкл.).
# По умолчанию отключено, потому что в целом для сети было бы лучше, если бы люди
# должен был сознательно включить эту функцию, так как ее включение означает, что
# каждый клиентский запрос приведет как минимум к одному запросу на поиск
# сервер имен.
#
HostnameLookups Off
# ErrorLog: расположение файла журнала ошибок.
# Если вы не укажете директиву ErrorLog внутри <VirtualHost>
# контейнер, сообщения об ошибках, относящиеся к этому виртуальному хосту, будут
# зарегистрировался здесь. Если вы *делаете* определяете файл журнала ошибок для <VirtualHost>
# контейнер, ошибки этого хоста будут регистрироваться там, а не здесь.
#
Журнал ошибок ${APACHE_LOG_DIR}/error.log
#
# LogLevel: контроль серьезности сообщений, регистрируемых в error_log.
# Доступные значения: trace8, ..., trace1, отладка, информация, уведомление, предупреждение,
# ошибка, крит, оповещение, эмердж.
# Также можно настроить уровень журнала для определенных модулей, например.
# "Информация об уровне журнала ssl: предупреждение"
#
Предупреждение LogLevel
# Включить конфигурацию модуля:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Включить список портов для прослушивания
Включить порты.conf
# Устанавливает модель безопасности по умолчанию для HTTPD-сервера Apache2. Оно делает
# не разрешать доступ к корневой файловой системе за пределами /usr/share и /var/www.
# Первый используется веб-приложениями, упакованными в Debian,
# последний может использоваться для локальных каталогов, обслуживаемых веб-сервером. Если
# ваша система обслуживает контент из подкаталога в /srv, вы должны разрешить
# доступ сюда или к любому связанному виртуальному хосту.
<Каталог />
Индексы опционов FollowSymLinks включает ExecCGI
Разрешить переопределить все
Требовать все предоставленные
</Каталог>
<Каталог /usr/share>
Аллововеррайд
Требовать все предоставленные
</Каталог>
<Каталог /var/www/>
Индексы опционов FollowSymLinks
Разрешить переопределить все
Требовать все предоставленные
</Каталог>
#<Каталог /srv/>
# Индексы опционов FollowSymLinks
# Разрешить переопределение
# Требовать все предоставленные
#</Каталог>
# AccessFileName: Имя файла для поиска в каждом каталоге
# для дополнительных директив конфигурации. См. также AllowOverride
# директива.
#
ИмяФайлаДоступа .htaccess
#
# Следующие строки предотвращают доступ к файлам .htaccess и .htpasswd.
# просматривается веб-клиентами.
#
<Соответствие файлов "^\.ht">
Требовать все отказано
</FilesMatch>
#
# Следующие директивы определяют псевдонимы некоторых форматов для использования с
# директива CustomLog.
#
# Они отличаются от определений Common Log Format тем, что используют %O
# (фактические отправленные байты, включая заголовки) вместо %b (размер
# запрошенный файл), так как последнее делает невозможным обнаружение частичных
# Запросы.
#
# Обратите внимание, что использование %{X-Forwarded-For}i вместо %h не рекомендуется.
# Вместо этого используйте mod_remoteip.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" в сочетании
LogFormat "%h %l %u %t \"%r\" %>s %O" общий
LogFormat "%{Referer}i -> %U" реферер
Агент LogFormat "%{User-agent}i"
# Включение каталогов игнорирует файлы резервных копий редакторов и dpkg,
# подробности см. в README.Debian.
# Включить общие фрагменты операторов
IncludeOptional conf-enabled/*.conf
# Включите конфигурации виртуального хоста:
IncludeOptional sites-enabled/*.conf
# vim: синтаксис=apache ts=4 sw=4 sts=4 sr noet
Мой .htaccess
файл является стандартным файлом при создании проекта laravel
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Следующие модули включены для моей установки apache2:
> апачектл -М
AH00558: apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение.
Загруженные модули:
core_module (статический)
so_module (статический)
watchdog_module (статический)
http_module (статический)
log_config_module (статический)
logio_module (статический)
version_module (статический)
unixd_module (статический)
access_compat_module (общий)
alias_module (общий)
auth_basic_module (общий)
authn_core_module (общий)
authn_file_module (общий)
authz_core_module (общий)
authz_host_module (общий)
authz_user_module (общий)
autoindex_module (общий)
deflate_module (общий)
dir_module (общий)
env_module (общий)
filter_module (общий)
mime_module (общий)
mpm_prefork_module (общий)
модуль переговоров (общий)
php7_module (общий)
reqtimeout_module (общий)
rewrite_module (общий)
setenvif_module (общий)
status_module (общий)
Моя конфигурация сервера выглядит следующим образом:
судо apache2ctl -S
AH00558: apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение.
Конфигурация виртуального хоста:
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
Корневой сервер: "/etc/apache2"
Основной корневой документ: "/var/www/html"
Основной журнал ошибок: "/var/log/apache2/error.log"
Мьютекс по умолчанию: dir="/var/run/apache2/" механизм=по умолчанию
Mutex mpm-accept: using_defaults
Обратный вызов сторожевого таймера Mutex: using_defaults
Карта перезаписи мьютекса: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Определить: DUMP_VHOSTS
Определить: DUMP_RUN_CFG
Пользователь: name="www-data" id=33
Группа: name="www-data" id=33
Когда я открываю /
URL все работает нормально.Однако при открытии глубокого URL-адреса, такого как /компания/приложение
Я получаю следующую ошибку:
Любые предложения, что я делаю неправильно? я уже использовал Разрешить переопределить все
и разрешить от всех
для меня DocumentRoot
.
Я ценю ваши ответы!