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

При копировании готового сайта, созданного на php фреймворке yii2, на хостинг, где обязательная доменная папка public_html и изменить ее ну никак нельзя.
Я пробовал разные рецепты решений с разновидностями .htaccess, но не выходило как нужно, и везде требовалось указание в url "/web", иначе на любых url показывает только контент главной страницы.
P.S. У меня Basic версия yii2 фреймворка
Решение:
- Сперва я на локальном компьютере запаковал файлы сайта в архив TAR, с помощью программы 7zip (Пр.кнопкой мыши -> добавить в архив -> указал tar)
- Загрузил архив сайта через веб интерфейс в корневую папку сайта на хостинге
- Удалил папку public_html на хостинге
- Распаковал архив (пр.кнопкой мыши)
Дальше:
У меня хостинг 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