С недавних пор, сделал волевое решение расширить кругозор и потихоньку уйти от CMS Drupal 7/8 на PHP-фреймворк. Выбор пал на Laravel 5. В обнимку с Laracast, уже получилось разобраться и создать свой скромный демо-проектик на этом замечательном фреймворке.
И вот теперь появился вопрос: «Как установить мой проект на обычный shared хостинг Timeweb?». Возможно ли это? Есть ли все необходимые разрешения/модули/etc у этого хостинг-провайдера для Laravel 5 на обычном хостинге (вариант с переходом на VPS пока не рассматриваю).
Буду признателен за мануал, советы или готовый кейс по этому вопросу!
Заранее спасибо.
Ответы (16)
https://medium.com/laravel-news/the-simple-guide-to-deploy-laravel-5-application-on-shared-hosting-1a8d0aee923e#.ln6zbkigm
Кое-какую информацию можно получить с официального форума, например, из этой темы:
http://laravel.io/forum/03-06-2015-how-to-setup-laravel-5-in-shared-hosting
Предлагаю попробовать проследовать той инструкции, которая по первой ссылке размещена.
А если будут сложности - пишите на каком этапе проблема, Vikky, попробуем вместе решить её.
Только один вопрос: можно ли установить node.js (и в частности gulp), чтобы делать крутые штуки, как показано в одном из уроков Laracast (https://laracasts.com/series/laravel-5-from-scratch/episodes/6 )?
По логике вещей, вы разрабатываете у себя на локальком компе, а уже все скомпилированные css и т.д. заливаете на хостинг(либо через FTP либо через сторонние приложения для деплоя).
Команда "php artisan serve" запускает встроенный веб сервер. Это тоже используется для локальной разработки, чтобы не надо было грубо говоря апач поднимать.
Касательно node через ssh npm работает, думаю и gulp тоже будет, но сам сервер вы не поднимите на простом хостинге, а без этого back-end на js не будет работать.
Если не прав, исправьте.
https://staindb.pixarts.ru/node-js-na-timeweb-ru/
сервер поднять не удалось, но поставить, подгрузить модули через npm, вышло.
#Установка лары 5.6
composer create-project - -prefer-dist laravel/laravel .
#возможно падение в момент выполнения команды artisan optimize
#по умолчанию в консоли версия 5.3…! Чтобы успешно запустить скрипт artisan, нужно добавить расположение нужной консольной версии php в команду
/opt/php7.1/bin/php artisan optimize
#гибкая ссылка на рабочий каталог, посему каталог public_html, если возможно, удалите.
ln -s public public_html
#Далее надо выполнить две вещи в корне проекта
cp .env/example .env
/opt/php7.1/bin/php artisan key:generate
#выставить права, как указано ниже.
chmod 755 laravel_app/
chmod 755 laravel_app/public/
chmod 644 laravel_app/public/index.php
chmod -R 777 laravel_app/storage
chmod -R 777 laravel_app/bootstrap/cache
#После этого Лара заработает.
положить на сайте hook
touch .git/hooks/post-receive
cat <<EOF > .git/hooks/post-receive
#!/bin/sh
cd ..
GIT_DIR='.git'
if [ -e "composer.json" ];
then
if [ -d "vendor" ];
then
composer install
else
composer update
fi
fi
git reset --hard
EOF
chmod +x .git/hooks/post-receive
====
Чтобы этот хук срабатывал нужно чтобы подтягивалась в консоли нужная версия php, для этого
положить композер в ~/.utils/
создать в корне сайта или всего хостинга файл bash_profile с алиасом к нужной версии php, иначе вендоры не установятся.
cat <<EOF2 > .bash_profile
alias composer='/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar'
EOF2
#!/bin/bash
cd ..
GIT_DIR='.git'
if [ -e "composer.json" ]; then
if [ -d "vendor" ]; then
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar install --no-dev
else
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar update --no-dev
fi
fi
git reset --hard
EOF
chmod +x .git/hooks/post-receive