Несмотря на то, что фреймворков для 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, в результате, на своем сайте вы увидите следующее: