1/5 - (1 голос)

Несмотря на то, что фреймворков для PHP не так уж и много, существует немало споров на тему выбора того самого фреймворка для работы, и уже опытные разработчики часто негативно отзываются о любом из них. Но, как показывает практика, это все лишь вопрос того момента, когда один из таких девелоперов не поставит себе один из существующих фреймворков и не оценит все удобства, что он предоставляет .nnИменно поэтому, предлагаю перейти к ознакомлению с одним из PHP-фреймворков под названием Laravel.n

Что такое Laravel?

Laravel — это бесплатный фреймворк для PHP с открытым исходным кодом, структура которого базируется на архитектурной модели MVC (Model, View, Controller). Говорят, что при разработке фреймворка, Тейлор отвели — основоположник Laravel, был вдохновлен присутствовать принципами и подходами к разработке в Ruby.nnСам фреймворк был выпущен 11 июня 2011 — Laravel 1, и с тех пор достиг большой популярности.nnНа данный момент, последней версии фреймворка является Laravel 5.6.n

Установка laravel

Перед тем как перейти к непосредственной установки фреймворка, нам нужно будет настроить рабочую среду. В статье будет описано Установка Laravel 5.6 для Ubuntu 16.04.n

Установка и настройка веб-сервера.

На официальном сайте Laravel описаны следующие требования для установки последней версии фреймворка (5.6), которые должны обязательно быть учтены при интсаляции:n

  • PHP> = 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension

Если у вас еще не установлен веб-сервер, рекомендую посмотреть статью — «Установка Apache2 + php + mysql + phpmyadmin на Ubuntu 16.04» со следующими правками:n

  • Вместо установления PHP-версии 5.6, нам, согласно требованиям официальной документации, потребуется версия 7.1. Именно поэтому, вместо командыn
     sudo apt-get install php5.6

    нам нужна будет командаn

     sudo apt-get install php7.1
  • Вместо старого перечня модулей:n
     sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

    Используем следующий перечень:n

     sudo apt-get install php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-json php7.1-curl

В случае, если у вас уже есть установленный веб-сервер, убедитесь, что он соответствует всем требованиям, указанным выше.n

Установка Composer

Composer — менеджер зависимостей для языка PHP, который позволяет легко и просто устанавливать пакеты (одним из которых и будет Laravel).nnЕсли у вас уже установлен Composer, вы можете пропустить этот пункт и переходить к непосредственной установке фреймворка.nnДля того чтобы установить Composer, вам нужно открыть терминал, и поочередно ввести следующие команды (желательно, чтобы у вас были все права на директорию, в которой вы находитесь, к примеру, вы можете перейти в директорию текущего пользователя с помощью команды cd ~):n

  • Загружаем composer-инсталлятор:n
     php -r "copy ( 'https://getcomposer.org/installer", "composer-setup.php');"
  • Проверяем SHA-384 хэш инсталлятора. Перед тем как запускать команду, убедитесь, что SHA-384 хэш предоставлен на сайте Composer соответствует тому, что указан в команде ниже:n
     php -r "if (hash_file ( 'SHA384", "composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') {echo 'Installer verified";} else {echo "Installer corrupt'; unlink (" composer-setup. php ');} echo PHP_EOL; "

    В результате должны получить следующее:n

     Installer veryfied
  • Устанавливаем Composer в директорию/usr/local/bin и делаем его глобально доступным через команду composer:n
     sudo php composer-setup.php --install-dir =/usr/local/bin -filename = composer

    В результате, должны получить следующее:n

     All settings correct for usingnn	 Composer Downloading 1.1.1 ...nn	 Composer successfully installed to: /usr/local/bin/composernn	 Use it: php /usr/local/bin/composer
  • Удаляем инсталлятор:n
     php -r "unlink (" composer-setup.php '); "

Если все прошло успешно, проверить себя можно простой командой composer -v, которая выведет список всех доступных команд Composer’a.n

Установка Laravel 5.6

Если при настройке веб-сервера вы следовали нашей инструкции, то у вас, уже должна быть папка для вашего первого сайта, в противном случае, ее нужно создать и прописать настройки виртуальных хостов, а также в файле hosts.nnДля установки Laravel нам нужно будет перейти в директорию, где находятся наши сайты (чаще всего это -/var/www) и выполнить команду:n

 composer create-project laravel/laravel your-project-namen

где your-project-name — название директории, в которой будет размещен ваш сайт, например laravel.locnnС помощью команды выше, будет установлена ​​последняя на текущий момент версия Laravel. Если вы хотите установить старую версию, тогда вы можете использовать следующую команду:n

 composer create-project laravel/laravel your-project-name "5.5. *"n

где 5.5. * — версия LaravelnnРезультат успешного выполнения вышеупомянутых команд можно увидеть на скринах ниже:nnnnPS Если в конце у вас автоматически не исполнилось команда php artisan key: generate, ее нужно будет выполнить вручную. Для этого:n

  • Перейдите в папку с вашим проектом (например — cd /var/www/your-project-name) и выполните командуn
     php artisan key: generaten
  • В результате вы должны получить следующий ответ (сгенерированный ключ будет отличаться):n
     Application key [base64: dhtyupBtreytyurtubt+ eryvetuW1n + rgWw =] set successfully.n

Настройка .htaccess

Без предварительной настройки .htaccess, ваша индексная страница будет доступна по ссылке your-domain/public. Если вас это не устраивает, эту проблему можно решить в несколько простых действий:n

  • В корневой директории сайта (стандартно — cd /var/www/your-project-name) добавляем файл .htaccess
  • В вновь файл добавляем следующее:n
         RewriteEngine Onnn     RewriteRule ^ (. *) $ Public/$ 1 [L]n

После нескольких простых шагов, все запросы будут автоматически переадресовываться на your-domain/public и теперь любая страница будет доступна по привычной адресу, например — your-domain/example-pagen

Исправление ошибок, связанных с правами доступа

Наверное, каждый пользователь Ubuntu сталкивался с проблемами доступа к отдельным директориям или файлов. Если ваш сайт установлен в директорию /var/www, то, почти с 99% вероятностью можно сказать, что ваш первый проект на Laravel встретит вас похожей ошибкой:n

 "The stream or file"/var/www/your-project-name/storage/logs/laravel.log "could not be opened: failed to open stream: Permission denied"

Если вы только установили проект, тогда, скорее всего, в ошибки выше есть как минимум 2 причины:n

  • Не настроены авторизационные данные для подключения к базе данных;
  • Все ошибки, возникающие в Laravel, фреймворк пытается записывать в файл laravel.log, но, как сообщает нам дебаггер, у него нет доступа к этому файлу — Permission denied

Настройка подключения к базе данных мы рассмотрим чуть ниже, а вот ошибку с правами доступа попробуем решить прямо сейчас.nnВсе свои действия PHP-скрипт выполняет через стандартного пользователя Ubuntu — www-data, однако, при установке проекта, все наши файлы были записаны под текущим пользователем. Именно поэтому, нам нужно изменить его для определенных файлов проекта.nnСистемными каталогами, необходимые для нормального функционирования Laravel является bootstrap & storage, именно для них мы и будем менять владельца с помощью следующих команд:n

 sudo chown -R www-data: www-data storage/
 sudo chown -R www-data: www-data bootstrap/

Настройка подключения к БД

Конечным этапом установления Laravel будет настройки подключения к базе данных. Для этого вам нужно будет:n

  • С помощью PHPMyAdmin или других инструментов для работы с БД создать саму базу данных, например — laravel
  • Найти в корневом каталоге файл .env (если такого файла нет, переименуйте присутствующий файл .env.example в .env) и откройте его с помощью любого текстового редактора
  • Файл .env представляет собой перечень основных настроек вашего проекта. Для настройки подключения к базе данных, нас будет интересовать исключительно следующее:n
     DB_CONNECTION = mysql //тип подключения к БДn DB_HOST = 127.0.0.1 //хост БДn DB_PORT = 3306 //порт для подключения БДn DB_DATABASE = homestead //название БД n DB_USERNAME = homestead //пользователь БД n DB_PASSWORD = secret //пароль от БД n

Выыод

Если вы успешно прошли все вышеуказанные шаги, необходимые для установки PHP-фреймворка Laravel, в результате, на своем сайте вы увидите следующее: