2.8.4.2.2. Перенесення Laravel на хостинг

Увага!

Інформація в цій статті має виключно ознайомчий характер. Перенесення на хостинг проєкту на Laravel є досить складним і має певні нюанси, які може передбачити тільки його розробник.

Для перенесення проєкту на Laravel насамперед потрібно завантажити файли на сервер будь-яким зі способів:

  • У разі використання Git можна підключитися до хостингу по SSH і клонувати проєкт:
    git clone http://github.com/example/example_site/
  • Завантажити файли проєкту на сервер.

Після завантаження файлів на сервер підключіться по SSH і виконайте такі дії:

  1. Налаштуйте підключення до бази даних.
  2. Перейдіть у каталог із завантаженим проєктом:
    cd ~/example.com/www/
  3. Оновіть залежності та всі пакети:
    PATH=/usr/local/php70/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
    composer install
  4. Виконайте команду:
    /usr/local/php70/bin/php artisan migrate
  5. Файли проєкту зазвичай знаходяться в каталозі public, тому змініть кореневий каталог сайту одним із способів:
    Змініть кореневий каталог сайту так, щоб він вказував на каталог public.
    Додайте або відредагуйте два файли .htaccess:
    1. У кореневому каталозі сайту:
      <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule ^$ public/ [L]
      RewriteRule ((?s).*) public/$1 [L]
      </IfModule>
    2. У каталозі public:
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
      </IfModule>
  6. Якщо необхідно, створіть символічне посилання, що веде від public/storage до storage/app/public. Це можна зробити двома способами:
    1. Перейдіть до каталогу /storage/app/ у вашому проєкті та створіть символічне посилання, що веде на каталог public.
    2. Вставте створене символічне посилання в каталог public/storage у кореневому каталозі проєкту.
    1. Підключіться до хостингу по SSH.
    2. Створіть символічне посилання:
      ln -s /home/example/example.com/www/public/storage /home/example/example.com/www/storage/app/public

      У команді замість /example/example.com/www/ вказуйте кореневий каталог сайту, у якому розміщено ваш проєкт.

  7. Перевірте роботу сайту.

Крім описаного вище, для налаштування проєкту можуть знадобитися додаткові дії. У цьому випадку слід звернутися до розробника проєкту для уточнення більш детальної інформації.

Зміст

    (2)

    Коментарі

    krikunenko.m.v
    UPD від 02.12.2024 | Laravel 11

    Додатково потрібно в налаштуваннях сайту змінити "Кореневий каталог" вказати "public" повна існтрукція
    https://www.ukraine.com.ua/uk/wiki/hosting/sites/my-sites/site-settings/root-dir/#change

    Для
    роботи з "storage" треба створити окремо символьне посилання

    Перейдіть у директорію /storage/app в файл-менеджері, натисніть правою кнопкою миші там на папку public і оберіть опцію "Створити сімлінк".
    Далі перейдіть в директорію /public і вставте там сімлінк правою кнопкою миші.

    Повна інструкція: https://www.ukraine.com.ua/wiki/hosting/files/file-manager/symlink/
    verliber
    Дякуємо за інформацію, додали її до інструкції.