Плюсы и Минусы или Как Установить и Отладить Фреймворк Laravel

Laravel — бесплатный PHP веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC. Laravel выпущен под лицензией MIT. Исходный код проекта размещается на GitHub.

Плюсы Laravel:

  • пока не обнаружено

Минусы Laravel:

  • По умолчанию в Laravel нет админки, но можно подключить стороннюю административную панель, например Voyager, SleepingOwlAdmin, Nova (платная), quick-admin, z-song.
  • Нет SEO модуля, но можно установить что-то типо Laravel SEO Meta Tags

Требований к веб-серверу, на который можно устанавливать Laravel и создавать сайты на его базе:

  • Apache, Nginx
  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

Требования касаются, в первую очередь, используемой версии PHP и наличия различных модулей для корректной работы Laravel.

Официальная документация не блещет расширенной информацией обстановке Laravel. Как вы догадываетесь в этой статье не идет речь как стать программистом Laravel. Здесь разбирается случай когда вы купили программистское "поделье" на Laravel и не знаете как его запустить. И при этом этот супер-пупер программист забыл вам сказать, что под его поделье надо покупать аж цельный VPS.

И так пробуем выкрутиться и хоть как-то, без SSH доступа, воткнуть Laravel на хостинг. Варианты установки Laravel:

  1. Установка Laravel через пакетный менеджер Composer.
  2. Ручная установка с GitHub. Скачать официального репозиторий Laravel в виде архива с последующей его распаковкой. При данном способе установки после распаковки архива нужно перейти в консол в папку проекта и обязательно запустить следующую команду:
    composer update

    С помощью неё вы установите файлы самого фреймворка, хранящиеся в папке vendor, и прочие компоненты, идущие в Laravel из коробки, которые не хранятся в Laravel репозиториях благодаря соответствующему правилу в файле .gitignore, расположенному в корне проекта.

Самый простой способ проверки работоспособности Laravel даже не потребует от вас наличия настроенного веб сервера. Минимальным требованием является наличие установленного PHP.

В таком случае для запуска Laravel можно будет воспользоваться встроенным в PHP сервером разработки с помощью artisan команды serve:

php artisan serve

Данная команда запускает сервер разработки по URL http://localhost:8080 и делает доступным сайт, в папке которого вы вызвали команду serve.

Если же у вас уже есть в наличии настроенным веб-сервер со всеми необходимыми компонентами (минимум Apache/Nginx + PHP), то для тестового запуска Laravel введите в строке браузера url вашего сайта, добавив в конце «/public», т.к., ввиду файловой структуры Laravel, даже после успешной установки, при входе на сайт вы увидите только список файлов.

Многие предпочитают задавать настройки в файле .env (в корне созданного приложения). В нем можно задать любые настройки из конфигов, а так же добавить любые свои. Все переменные, описанные в этом файле, будут автоматически доступны вашему приложения в суперглобальной переменной $_ENV и вы сможете использовать их везде в своем приложении.

Часто необходимо иметь разные значения для разных настроек в зависимости от среды, в которой выполняется приложение. Например, вы можете захотеть использовать разные драйвера (или настройки) на локальном сервере и на продакшне. То есть вы можете изменять эти переменные под свои нужны, как на локальной машине, так и в продакшне.

2

Ну если вы делаете по инструкции с laravel.com, то там config/database.php содержит такие строки:

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
],

На примере одной строки:

'host' => env('DB_HOST', 'localhost'),

host равен переменной DB_HOST в env-файле (если он есть) или localhost, если env-файл не подключен.

Криворукие программисты не знают что такой Linux way и превратно понимают термин "единая точка входа на сайт". Давайте попытаемся хоть как это исправить - ведь продукт куплен и деньги программисты Ларавел возвращать не хотят.

И так в apache public из url можно убрать двумя способами:

  1. Изменить настройки виртуального хоста, параметр DocumentRoot.
  2. В корне сайта поместить .htaccess с таким содержимым
DirectoryIndex /public/index.php
RewriteEngine On
 
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
 
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.+) /public/$1 [L]
 
Options +SymLinksIfOwnerMatch
RewriteRule ^(.*)$ /public/ [QSA,L]

Второй вариант файла .htaccess для переправления в public, он немного проще

<IfModule mod_rewrite.c>
# That was ONLY to protect you from 500 errors
# if your server did not have mod_rewrite enabled
 
RewriteEngine On
# RewriteBase /
# NOT needed unless you're using mod_alias to redirect
 
RewriteCond %{REQUEST_URI} !/public
RewriteRule ^(.*)$ public/$1 [L]
# Direct all requests to /public folder
 
</IfModule>

Laravel трудно отлаживать. Включить режим отладки Laravel: для этого вам просто нужно изменить в файле config/app.php debug_mode на true

'debug' => env('APP_DEBUG', true),

Или включить дебаг логи можно также через файл .env установи в нем переменную APP_DEBUG в значение true (значение false соответственно выключит отладку)

APP_DEBUG=true
  • Устраняем ошибку: Laravel "No application encryption key has been specified."
/opt/php74/bin/php artisan key:generate
/opt/php74/bin/php artisan config:cache
PQ VPS сервера в 28+ странах.