• Главная

Блог старого компьютера. Yii2 перенос на хостинг


Окружение виртуального хостинга - Специальные темы

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

Установка приложения Basic. ¶

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

Переименование webroot ¶

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

config logs www

В приведенном выше описании www - это webroot директория веб-сервера. Она может называться по-другому. Возможные названия: www, htdocs или public_html.

В Basic webroot называется web. Перед загрузкой своего приложения на виртуальный хостинг, переименуйте локальный webroot на название webroot виртуального хостинга. Например, web в www или public_html, в зависимости от наименования webroot вашего хостинга.

Корневая директория FTP доступна для записи ¶

Если вы можете записать в корневую директорию, где располагаются config, logs и www, то загрузите сюда же assets, commands и остальные директории, так же, как и у вас, локально.

Добавим настройки для веб-сервера ¶

В случае, если ваш сервер Apache, добавьте в директорию web или аналогичную, где располагается index.php, файл .htaccess со следующим содержимым:

Options +FollowSymLinks IndexIgnore **Options FollowSymlinksRewriteEngine onRewriteRule ^(.+)?$ /web/$1

Тем самым мы перекидываем по умолчанию все запросы в папку web.

Далее идем в папку web и создаем такм такой же файл, но уже с таким содержимым:

RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . index.php

Вот такие вот htaccess файлы у вас должны быть для yii2 на apache сервере. 

После этих действий наш сайт должен уже открываться по основному домену, но думаю вы заметили что в ссылках меню до сих пор присутствует приписка web. Чтоб от нее отказаться необходимо в конфиг дописать следующие строки. У меня конфиг лежит в папке config и называется web.php. В этом файле я указал 'homeUrl' => '/' и в components > request дописал  'baseUrl' => ''. Тем самым избавился от ненужной приписки web. Если быть кратким то нам необходимо сделать чтоб в конфиге у нас были следующие строки:

'homeUrl' => '/','components' => ['request' => ['baseUrl' => '',],],

Ни в коем случае не стираем то что есть в нашем конфиге, а добалвяем того чего не хватает. У меня получилась вот такая вот картина:

 yii2-config

 

www.wemarus.ru

Перенос сайта yii на локальный сервер

Вопрос: Отличие работы PHP на локальном сервере и на хостинге

Здравствуйте, гуру PHP. В связи с некоторыми проблемами с PHP на моем сайте, у меня к вам вопрос. Но сначала кратко поясню ситуацию.

Итак. У меня на сайте есть функция регистрации. Пользователь заполняет необходимые формы и при нажатии на кнопку "зарегистрироваться" происходит ajax-запрос, который методом POST отправляет данные с формы в файл registration.php. В этом файле полученные данные считываются из массива $_POST и раскладываются в переменные, затем производится отправка этих данных в БД и отправка ответа в AJAX, чтобы тот перекинул пользователя в личный кабинет.

А сама проблема вот в чем. На локальном сервере все работает на ура, однако на хостинге именно эта функция отказывается работать. PHP-скрипт в registration.php ничего не отсылает в AJAX и ничего не записывает в БД. Сервер под сайт у меня свой. На нем стоит FreeBSD, PHP и расширение для работы с MySQL. Сам MySQL-сервер находится на другой машине, это обусловлено тем, что с базой работает не только сайт, но и программы. С этим проблем нет, так как находятся оба сервера в локальной сети и все остальные запросы к базе данных и PHP-скрипты работают хорошо.

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

Ответ: регистр имен файлов. винде пофигу, а в *nix регистр важен.

Добавлено спустя 1 минуту 21 секунду:локаль - преобразования регистра или регистроНЕзависимый поиск подстроки может не работать из-за неверной локали.

Добавлено спустя 59 секунд:настройки вывода ошибок. в одном месте предупреждения подавлялись, в другом вылезли и поднасрали перед заголовками.

Добавлено спустя 45 секунд:версия PHP. используешь функцию или синтаксическую конструкцию, которой на хостинге нет.

Добавлено спустя 1 минуту 52 секунды:при подобных проблемах сразу лезь в логи сервера, возможно проблема там уже засветилась. и отлаживай свой код через диагностический вывод. надо максимально сузить область поиска. ты должен точно знать в каком файле, а лучше на какой строке возникает эта разница.

forundex.ru