Рейтинг:0

Apache2 - найден только домашний URL

флаг in

я создал ларавель 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.

Я ценю ваши ответы!

Craft avatar
флаг us
Действительно ли существует *DOCROOT/laravel_project/index.php*?
флаг in
@Craft Мой `index.php` находится в следующей папке: `/home/marcus/Desktop/Code/laravel_project/public/index.php`
Craft avatar
флаг us
В вашей конфигурации есть _/home/admin/Desktop/Code..._, а не _/home/marcus/Desktop/Code..._
Рейтинг:1
флаг cz

Вы заявили, что сайт работает, но не работает с глубоким URL-адресом, поэтому я предполагаю, что на данный момент конфигурация в порядке, и проверьте журналы Apache в /var/log/apache/error.log (может быть, /var/log/httpd/ журнал ошибок)

Там должна быть более подробная ошибка, которая приведет вас к тому, что не так.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.