Перенос Yii2 на хостинг

Перенос Yii2 на хостинг

При копировании готового сайта, созданного на php фреймворке yii2, на хостинг, где обязательная доменная папка public_html и изменить ее ну никак нельзя.

Я пробовал разные рецепты решений с разновидностями .htaccess, но не выходило как нужно, и везде требовалось указание в url "/web", иначе на любых url показывает только контент главной страницы.

P.S. У меня Basic версия yii2 фреймворка

Решение:

  1. Сперва я на локальном компьютере запаковал файлы сайта в архив TAR, с помощью программы 7zip (Пр.кнопкой мыши -> добавить в архив -> указал tar)
  2. Загрузил архив сайта через веб интерфейс в корневую папку сайта на хостинге
  3. Удалил папку public_html на хостинге
  4. Распаковал архив (пр.кнопкой мыши)

Дальше:

У меня хостинг Beget.com и там разрешено подключаться по SFTP

В итоге, я создал доступ в разделе FTP/SFTP с разрешением ssh

Потом авторизовался через удаленный доступ (Putty по ssh 22 протокола)

[login]@[Сервер]

  • [login] - это логин к sftp
  • [Сервер] - это адрес сервера, можно увидеть сбоку на странице FTP/SFTP

Потом программа спросит пароль - я просто скопировал пароль в буфер обмена и вставил, нажав правой кнопкой мыши (Текст пароля вы не увидите, но он есть!) и нажал Enter

Успешно авторизовавшись я ввожу команду для отображения всех файлов и папок в текущей директории ls -la

p.s. первая буква это англ. буква л (лес)

Увидев, где я нахожусь (вижу папки доменов моего хостинга - мои домены)

Я перехожу внутрь моего домена командой cd mysyte.ru (Замените mysyte.ru На свой)

опять можете указать команду ls -la чтобы убедиться что мы в нужной папке и указываю команду создания ссылки на папку public_html

ln -s web public_html

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

Для выхода из программы Putty можете ввести команду exit и нажать Enter

Для красоты поменяем пароль и имя базы данных в конфигурационном файле config/db.php

И если есть какие то глюки с урлами, то можно в файле config/web.php указать пустым значение baseUrl в urlManager

'urlManager' => [
            'baseUrl' => '',

 

Все! У меня сайт завелся и все стало работать как часы и без манипулирования htaccess

 

 

Сопутствующие статьи

Установка локального веб сервера на Windows — Open Server (OsPanel)
Установить сервер nginx php-fpm ubuntu
​Linux команды терминала для сервера
MySQL импорт базы данных