Блог старого компьютера. 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' => '',],],
Ни в коем случае не стираем то что есть в нашем конфиге, а добалвяем того чего не хватает. У меня получилась вот такая вот картина:
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