Перенос Symfony на новый хостинг (для чайников)

В процессе оптимизации хостингов, решили мы перенести сайты с одного на другой, все сайты перенеслись нормально, а один начал выдавать ошибку 500, и имел довольно странную структуру, как оказалось сайт был сделан на Symfony.

Ниже я расскажу как перенести Symfony на новый хостинг рабоче-крестьянским методом, т.е. для тех кто этот фреймворк максимум «1 раз видел», итак — поехали.

Сначала немного теории — Symfony (впрочем как и другие фреймворки) все свои файлы хранит в корне домена, сама папка веб содержимого т.е. public_html удаляется, и вместо нее ставится символическая ссылка на точку отображения фронтенда, т.е. при нажатии на public_html вас должно перекинуть в район web/frontend (в моем случае), а т.к. символические ссылки привязаны к файловой системе, то на новом хостинге пути разумеется будут другие, то и перенаправления с public_html не происходит.

Поэтому первое что нужно сделать — это убедится в том, что символические ссылки перенеслись и исправить в них пути на корректные (в моем случае они потерялись при копировании), проще всего наверное это сделать через архив.

Выглядят ссылки в файловом менеджере каждого хостера по разному, например на бегете это так

В принципе тут и видно что это ссылка, а не директория, причем на Бегете как оказалось инструмента для редактирования не было, поэтому мне пришлось подключаться через SSH и исправлять через Midnight Commander через меню File-Edit Symlink. Кстати все битые симлинки будут в нем подсвечены красным цветом, поэтому не ошибетесь. Достаточно изменить путь на правильный у current и почти все станет выглядеть нормально.

Если Вы не дружите с SSH, то попросите это сделать техподдержку (и заодно сказать вам правильный путь к сайту),  а вообще найти все поломанные симлинки через консоль можно командой

find -L . -type l -ls

Еще надо поправить такие ссылки

  • ~current/config/databases.yml
  •  ~сurrent/log
  • ~public_html/uploads

(вроде бы всё).

В папке releases могут лежать старые билды, в них в принципе можно ничего не трогать.

Второе — опять пути, но на этот раз к файлам

открываем папку /current/cache/frontend/prod/config и в файлах config_app.yml.php и config_autoload.yml.php меняем пути на правильные.

Когда я это уже сделал — то вычитал в интернете что можно было обновить кеш командой 

./symfony cc

но это неточно

Третье — в этой же папке в файле config_databases.yml.php, нужно заменить доступы к БД, если они менялись.

На этом всё. Способ конечно рабоче-крестьянский,  но если надо перенести Symfony на другой хостинг, «чтоб работало» а специалистов рядом нету, то сгодится.

Добавить комментарий

Ваш e-mail не будет опубликован.