Yii2 Advanced Apache2 .htaccess

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

Здравствуйте, установлен проект Yii2 advanced, в корне 2 папки: public_html, в котором находится index.php файл, вторая папка - core, в которой frontend,backend и т.д.
Если в папку public_html добавить .htaccess c содержимым:

Код: Выделить всё

RewriteEngine On
RedirectMatch 404 /\.git
RedirectMatch 404 /composer
RedirectMatch 404 /.bowerrc
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
То выдаёт 500 ошибку:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.
Если полностью убрать .htaccess файл, то при попытке зайти на любую другую страницу, кроме index.php приводит к ошибке 404 с содержимым
Not Found
The requested URL was not found on this server.
Проблема аналогична этой статье viewtopic.php?t=44876 , но в моём случае AllowOverride Находится в All
Как нужно правильно настроить конфигурацию Apache2, либо же .htaccess файл?
Последний раз редактировалось vanookay 2020.05.15, 15:01, всего редактировалось 1 раз.

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

More information about this error may be available in the server error log.

то есть смотрите логи Yii
весьма вероятно он у вас сконфигурирован неверно.
и запросы то ему перекидываются, да он на их обработке падает, когда с 500ой, когда с 404ой

-- public_html, в котором находится index.php файл, вторая папка - core, в которой frontend,backend и т.д.
веб сервер должен смотреть в frontend/web и backend/web а не public_html
либо реврайтить на их index.php

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

У меня нет папок web, вместо frontend/web у меня public_html, а вместо backend/web - public_html/admin

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

vanookay писал(а): установлен проект Yii2 advanced
...
У меня нет папок web
тогда он как-то не так установлен

Либо это вы его так решили "донастроить", по своему

но тогда и настройки роутинга Yii перенастраивайте.

да и сами index.php у него рассчитаны на определенное расположение каталогов фреймворка - их тоже тогда надо переделать.

утрировано - если вы создали уникальную конфигурацию, то теперь вам надо уникально и разруливать - почему она не работает.

смотрите в логи, в доку, в типовую установку

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

При работе Openserver'а всё прекрасно работает, при условии, что там настроены домены для этих папок
https://prnt.sc/shbyo5

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

ну значит и на сервере у вас проблем нет. все прекрасно работает!
повторите успешную настройку, и все.

так работает или не работает?

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

Я сейчас загружаю всё на Docker, тут голый апач стоял, который видимо нужно под себя настроить. В Openserver это работает, но мне нужно добиться, чтобы работало с docker

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

vanookay писал(а):
2020.05.15, 15:24
Я сейчас загружаю всё на Docker, тут голый апач стоял, который видимо нужно под себя настроить. В Openserver это работает, но мне нужно добиться, чтобы работало с docker
а, так там еще и докер... который тоже может быть неправильно настроен.
с докером разобрались? образ приложения правильно сконфигурирован? проксируется как нужно?
vanookay писал(а):
2020.05.15, 15:24
В Openserver это работает,
я как-то настраивал на шареде advanced. у хостера было ограничение на возможности конфигурирования вебсрвера
тоже работало в нестандартном окружении - реврайтами в кастомные папки, и нестандартные расположения каталогов yii - и все работало.

все можно настроить. просто если нестандартно - то вряд ли найдете рецепт. и нужно разбираться как работает Yii, смотреть на что он жалуется, в логах, и настраивать - чтобы работало - самостоятельно. либо, если есть возможность - использовать типовой сценарий, который описан в документации.
либо покажите лог файлы, апача и Yii
может по ним станет понятно почему 500ая

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

Хостером в данном случае являюсь я. Я загружаю его пока что локально

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

vanookay писал(а):
2020.05.15, 15:32
Хостером в данном случае являюсь я. Я загружаю его пока что локально
тогда какая у вас причина использовать нестандартную структуру каталогов?
не, если очень хочется - то используйте.
просто если вот вы решаете сейчас проблему - нетиповой, нестандартной конфигурации.
зачем? с какой целью?

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

Причины как таковой нет, сейчас будем пробовать с стандартной структурой!

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

К сожалению, ничего не изменилось, только теперь на localhost:8001 у меня
You don't have permission to access this resource.
, а при открытии напрямую http://localhost:8001/frontend/web/index.php с .htaccess файлом внутри
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

-- You don't have permission to access this resource.
значит не дали их, пермишины на каталог

-- http://localhost:8001/frontend/web/index.php с
а так конечно Yii не может работать.

давайте еще раз попробуем, про любое веб приложение на php:

вебсерверу нужно указать на каталог, куда он будет переводить приходящий http запрос (у NGINX чуть "сложнее", он работает с "ресурсами")
дать ему разрешение, что с этого каталога можно запускать скрипты
указать что такое скрипты, и как их запускать

обычно все это сразу настроено из коробки, но вы должны понимать как это работает.
потому что You don't have permission to access this resource - говорит о том что это у вас - не настроено

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

Но ваш "скрипт" при попытке прямого запуска:
Internal Server Error

То есть - содержит ошибку. А так как это не скрипт, а целая группа скриптов, под названием фреймворк Yii
с пачкой скриптов конфигураторов, то вероятнее всего что их настройки и не позволяют работать вот так:
http://localhost:8001/frontend/web/index.php

значит, по шагам:
разберитесь с настройкой Апач.
БЕЗ всяких фреймворков, положите туда свой index.php

Который содержит 1 строчку
echo "Я фронтенд"

а в веб каталог бекенда свой,с 1ой строчкой
echo "Я бекенд"

и добейтесь их работы.

Потом их же, запакуйте в докер, добейтесь той же работы
Потом еще что придумайте, выложите на хостинг и т.п.
и добейтесь той же работы.

И когда вы сможете как угодно настраивать работу этих двух скриптиков, приступайте к настройке Yii
будучи уверены что веб сервер то у вас правильно настроен!

Это обычная история, когда все время выручал OpenServer и вот, не выручил, а как там оно работает - вот и настала пора разобраться.

Я предпочитаю кстати xampp, он более низкоуровневый, проще обнолять, настраивать как угодно.
Но то такое.

В идеале, вам бы поднять чистую виртуальную машину, поставить линукс, и установить настроить апач+php на ней, и своих два скрипта

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

да, и еще совет

не ленитесь прописывать домены в свой локальный hosts
чтобы настраивать как обычно, а не на localhost:8001

окупится. с localhost, портами, да и просто наглядностью в конфиге виртуальных хостов - будет намного приятнее читать:
front.vanookay.vnk
adm.vanookay.vnk

чем всякие безликие localhost:8001/blabla/index.php
тем более что типовые настройки во фреймворках рассчитаны на нормальные домены, а не указание пути запуска index
проблем нет, все настраивается

но оно вам надо? тем более когда на реальном сервере все равно будет субдомен.домен.ru?

тем более что после выкатки - тьма вопросов и на этом форуме, и везде
ой, локально у меня вот так работало
http://localhost:8001/frontend/web/index.php

а выложил на сервер субдомен.домен.ru
не работает

ну правильно, под такую кривую адресацию перестроили у себя роутинг, а теперь на нормальном адресе она, под кривое настройка и не работает.

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

Всё заработало и на "не стандарнтой структуре", нужно было включить mod_rewrite в конфиге Apache

vanookay
Сообщения: 15
Зарегистрирован: 2020.02.26, 21:27

Re: Yii2 Advanced Apache2 .htaccess

Сообщение vanookay »

@skynin, спасибо за попытку помочь

skynin
Сообщения: 263
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 Advanced Apache2 .htaccess

Сообщение skynin »

vanookay писал(а):
2020.05.15, 19:21
Всё заработало и на "не стандарнтой структуре", нужно было включить mod_rewrite в конфиге Apache
мдя, поди догадайся что основные действия не были сделаны.

машина не заводится!
и так гадали, и сяк
оказывается - бак пустой.

ох уж эти начинающие, в тупик ставят на раз.
:)

Ответить