Openserver... htaccess... assets

Различные вопросы по установке и настройке фреймворка, конфигурции веб-сервера и IDE.
Ответить
acidflash
Сообщения: 107
Зарегистрирован: 2015.09.03, 19:37

Openserver... htaccess... assets

Сообщение acidflash »

Приложение в упор не может увидеть ссылки /assets/css-compress/0660ed2ff1f982112a478b760e9d5846.css?v=1499624288 - 404, вместо этого доступно frontend/web/assets/css-compress/0660ed2ff1f982112a478b760e9d5846.css?v=1499624288

если в браузере набрать имядомена/assets/, то тыкается в каталог frontend/web/assets/, здесь все верно.
Ниже мой htaccess корневой директории


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^assets/(.*) frontend/web/assets/$1 [L]
# /admin -> /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1

# /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

# Если frontend запрос
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php

# Если backend запрос
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php



htaccess каталога /frontend/web

RewriteEngine on
# if a directory or a file exists, use the request directly

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward the request to index.php
RewriteRule . index.php


видимо какая-то тривиальная проблема, но никак не решается, прошу помощи
acidflash
Сообщения: 107
Зарегистрирован: 2015.09.03, 19:37

Re: Openserver... htaccess... assets

Сообщение acidflash »

похоже ковыряться нужно в настройках nginx
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Openserver... htaccess... assets

Сообщение girmate »

Себе сделал такую памятку при разворачивании нового проекта.
После установки OpenServer:

Выбрать модули: Apache-PHP-7 + PHP-7.0

Кодировка (MySQL сервер): utf_unicode_ci

Включить XDebug: OS-Конфигурация-PHP-7 в конце файла найти расскоментить и исправить строки:
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.default_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000

Для браузера скачать расширение слушателя дебаггера (Xdebug helper):
https://chrome.google.com/webstore/deta ... nfo-dialog

После установки PhpStorm добавить в закладки PhpStorm
имя - IDE, название PhpStorm,
путь(взять из свойств ярлыка к PhpStorm): C:\Program Files\JetBrains\PhpStorm 2017.1.4\bin\phpstorm64.exe

Создать новый проект в PhpStorm (либо клонировать)
При создании указать дирректорию к новому проекту!
Настроить git и GitHub в PhpStorm
В терминале:
composer self-update
composer global require "fxp/composer-asset-plugin:^1.2.0"
И скачать фреймворк:
composer create-project yiisoft/yii2-app-advanced d:\OpenServer\domains\site.loc
(запросит токен)

Выполнить для закачки на GitHub (единожды):
git config --global user.email ******e@yandex.ru
git config --global user.name "Your Name"
Затем в PhpStorm меню VCS - Import into Version Control - Share project on GitHub

В OpenServer создать в доменах ручное управление и прописать пути с frontend/web и backend/web/.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Openserver... htaccess... assets

Сообщение girmate »

при этом в каждую папку /web (frontend и backend) положил по файлу .htaccess со следующим содержимым:
Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

https://github.com/yiisoft/yii2/blob/ma ... hosting.md

Все картинки показываются, ЧПУ-ссылки работают. Windows, Openserver.

PhpStorm запускаю из-под OpenServer - для этого создаю там ярлык. И тогда в windows никакие PATH прописывать не надо, работает git, composer прямо из терминала PhpStorm. Если при работе сайта на локальной машине есть секундная задержка при переходе по любой ссылке в проекте - установите патч от Microsoft на приоритетное использование протокола Ipv4 (но не тот что предлагает OpenServer). И тогда сайт будет работать мгновенно (на локальной машине).

Если что непонятно из того, что я сказал (по моей заметке) - спрашивайте.
Осторожно! Вы общаетесь с новичком ;)
images
Сообщения: 1
Зарегистрирован: 2017.11.11, 20:30

Re: Openserver... htaccess... assets

Сообщение images »

PhpStorm запускаю из-под OpenServer - для этого создаю там ярлык. И тогда в windows никакие PATH прописывать не надо, работает git, composer прямо из терминала PhpStorm. Если при работе сайта на локальной машине есть секундная задержка при переходе по любой ссылке в проекте - установите патч от Microsoft на приоритетное использование протокола Ipv4 (но не тот что предлагает OpenServer). И тогда сайт будет работать мгновенно (на локальной машине).

Можете подробнее описать что значить запустить phpStorm из -под OpenServer.
dsamsonov
Сообщения: 5
Зарегистрирован: 2016.11.14, 12:39

Re: Openserver... htaccess... assets

Сообщение dsamsonov »

Пользую примерно такой конфиг

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

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    # deal with admin first
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
    RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} ^/(assets|css|js)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
</IfModule>

Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Openserver... htaccess... assets

Сообщение girmate »

images писал(а): 2017.11.11, 22:44 PhpStorm запускаю из-под OpenServer - для этого создаю там ярлык. И тогда в windows никакие PATH прописывать не надо, работает git, composer прямо из терминала PhpStorm. Если при работе сайта на локальной машине есть секундная задержка при переходе по любой ссылке в проекте - установите патч от Microsoft на приоритетное использование протокола Ipv4 (но не тот что предлагает OpenServer). И тогда сайт будет работать мгновенно (на локальной машине).

Можете подробнее описать что значить запустить phpStorm из -под OpenServer.
Открываете меню OpenServer. Там есть раздел настроек с кучей вкладок. Там находите вкладку "Закладки" (пишу по памяти). Вписываете:
Имя: PhpStorm (или как угодно)
Категория: IDE (или как угодно, чтобы было понятно Вам)
Путь: например, C:\Program Files\JetBrains\PhpStorm 2017.2.4\bin\phpstorm64.exe (обычно название папки \PhpStorm 2017.2.4\ будет зависеть от версии PhpStorm, поэтому подкорректируйте).

Все, настройка готова. Запускаете OpenServer. Идете опять в меню OpenServer и ищите там свою вкладку IDE, нажимаете и там внутри будет одна вкладка с названием PhpStorm. Открываете ее и, если правильно прописали путь - запустится PhpStorm. OpenServer автоматически передаст ему все переменные окружения, подскажет где и что. Вам только дальше уже настраивать git, БД из-под PhpStorm. В общем, все упрощается в разы. И да, теперь можно писать команды для того же composer прямо в командной строке PhpStorm'a - его он тоже начнет видеть.

Будут еще вопросы, пишите. Наверное, в будущем я эту инструкцию выложу для тех, кто в Windows сидит в отдельную тему. А то тут много линуксоидов, но я линукс еще не понимать ((.

Себе я сделал памятку, все что нужно сделать, когда разворачиваю новый проект. Сейчас памятка в таком виде, но иногда корректирую:
После установки OpenServer:

Выбрать модули: Apache-PHP-7 + PHP-7.1

Кодировка (MySQL сервер): utf_unicode_ci

Включить XDebug: OS-Конфигурация-PHP-7 в конце файла найти расскоментить и исправить строки:
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.default_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000

Для браузера скачать расширение слушателя дебаггера (Xdebug helper):
https://chrome.google.com/webstore/deta ... nfo-dialog

После установки PhpStorm добавить в закладки PhpStorm
имя PhpStorm, категория - IDE,
путь(взять из свойств ярлыка к PhpStorm):
C:\Program Files\JetBrains\PhpStorm 2017.2.4\bin\phpstorm64.exe

Создать новый проект в PhpStorm (либо клонировать)
При создании указать дирректорию к новому проекту!
Настроить git и GitHub в PhpStorm
В терминале:
composer self-update
composer global require "fxp/composer-asset-plugin:^1.2.0"
И скачать фреймворк:
composer create-project yiisoft/yii2-app-advanced d:\OpenServer\domains\site.loc
(запросит токен)

Выполнить для закачки на GitHub (единожды):
git config --global user.email ******e@yandex.ru
git config --global user.name "Your Name"
Затем в PhpStorm меню VCS - Import into Version Control - Share project on GitHub

В OpenServer создать в доменах ручное управление и прописать пути с frontend/web и backend/web/.
И если я правильно понял, то начиная с версии Yii 2.0.13 (последня на сегодня версия), то строчка
composer global require "fxp/composer-asset-plugin:^1.2.0"
уже не требуется. Поправьте меня, если нужно.
Осторожно! Вы общаетесь с новичком ;)
Ответить