Як встановити Laravel на Ubuntu 20.04

Все, що вам потрібно знати, щоб розгорнути веб-програму Laravel на машині Ubuntu 20.04 LTS

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

У цьому посібнику ви дізнаєтеся, як встановити Laravel зі стеком LAMP на сервері Ubuntu 20.04, щоб запустити і запустити вашу веб-програму.

Передумови

Щоб слідувати цьому посібнику, вам потрібен сервер Ubuntu 20.04 LTS і ввійти як sudo користувач. Перш ніж ми почнемо, оновіть та оновіть пакети Ubuntu 20.04, запустивши:

Оновлення sudo apt && оновлення sudo apt

Установка LAMP Stack

LAMP – абревіатура від Л операційна система inux, А веб-сервер pache, М база даних ySQL і п Мова програмування HP. Ми вже працюємо на Ubuntu 20.04, що відповідає Linux у стеку LAMP. Тому ми збираємося встановити решту трьох пакетів, щоб завершити стек LAMP для нашої програми Laravel.

Немає доступного мета-пакета для встановлення стеку LAMP у сховищах Ubuntu 20.04. Але ми можемо скористатися акуратною маленькою особливістю прих менеджер пакетів під назвою tasks. Завдання позначаються за назвою наявного завдання з курсантом (^) додається до нього.

sudo apt встановити lamp-сервер^

Ця команда шукатиме у файлах списку пакетів усі поля «Завдання:» і встановить усі пакунки з «lamp-server» у полі завдання. Отже, стек LAMP, що складається з пакетів Apache, MySQL і PHP з усіма їх залежностями, буде встановлено на вашому сервері Ubuntu.

Налаштувати брандмауер

Після встановлення стека LAMP вам також потрібно налаштувати нескладний брандмауер (UFW) та змінити його правила, щоб мати доступ до сервера Apache з Інтернету.

UFW надає прості профілі програми, які можна використовувати для зміни правил і перемикання трафіку на мережевих портах. Виконайте таку команду, щоб переглянути всі програми, які мають доступ до мережевих портів:

список програм sudo ufw

Ви побачите такий висновок:

Доступні програми: Apache Apache Full Apache Secure OpenSSH

Нижче наведено мережеві порти, які відкриваються на вашому сервері Ubuntu 20.04:

  • Apache: цей профіль відкриває лише порт 80 (дозволяє HTTP-трафік)
  • Apache Full: цей профіль відкриває обидва 80 & 443 порти (дозволяє HTTP і HTTPS трафік)
  • Apache Secure: цей профіль відкриває лише порт 443 (дозволяє HTTPS-трафік)
  • OpenSSH: цей профіль відкриває порт 22 який дозволяє протокол SSH

Вам потрібно ввімкнути профіль «Apache Full», який дозволить трафік на веб-сервер Apache з Інтернету. Крім того, вам також потрібно буде ввімкнути профіль «OpenSSH», який дозволить трафік через порт 22 (SSH) на вашому сервері Ubuntu 20.04. Якщо ви увімкнете UFW без дозволу профілю «OpenSSH», ви не зможете підключитися до свого сервера за допомогою SSH.

Щоб змінити правило UFW і дозволити трафік на порту 80 і 22, запустити:

sudo ufw дозволити 'Apache Full' sudo ufw дозволити 'OpenSSH'

Потім увімкніть брандмауер UFW за допомогою такої команди:

sudo ufw увімкнути

Ви можете отримати підказку про те, що «команда може порушити існуючі з’єднання ssh. Продовжити виконання операцій (y|n)?”. Натисніть Ю продовжити, оскільки ми вже додали правило, що дозволяє SSH в UFW.

Тепер ви можете отримати доступ до веб-сторінки Apache за замовчуванням, використовуючи IP-адресу вашого сервера Ubuntu з Інтернету. Для цього відкрийте свій браузер і введіть IP-адресу вашого сервера Ubuntu 20.04 в рядку URL і натисніть Enter.

//Ваш_ubuntu_server_ip

Ця сторінка підтверджує, що веб-сервер Apache працює правильно, а правила UFW налаштовані належним чином.

Налаштування бази даних MySQL для Laravel

Laravel 7 робить взаємодію з базами даних надзвичайно простою в різних серверних частинах баз даних, які вона підтримує, наприклад MySQL версії 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ і SQL Server 2017+. У нас уже встановлено останній пакет MySQL разом із ліхтар-сівер^ завдання. Тож у цьому розділі ми налаштуємо сервер MySQL, а потім розглянемо, як налаштувати нового користувача та базу даних MySQL для програми Laravel.

Налаштуйте MySQL

База даних MySQL постачається із попередньо встановленим сценарієм безпеки, який можна використовувати для видалення деяких небезпечних налаштувань за замовчуванням. Рекомендується запустити цей сценарій перед розгортанням програми Laravel.

sudo mysql_secure_installation

Наведена вище команда виконає сценарій безпеки, який запропонує вам ряд запитань щодо налаштування сервера MySQL.

Спочатку вас запитають, чи хочете ви налаштувати ПЕРЕВІРТИ ПАРОЛЬ підключати. Цей плагін перевіряє ваш пароль і оцінює його як безпечні або незахищені на основі рівня політики перевірки пароля, який ви виберете незабаром. Тож натисніть Ю якщо ви хочете ввімкнути цей плагін.

Вихід: Захист розгортання сервера MySQL. Підключення до MySQL за допомогою порожнього пароля. КОМПОНЕНТ ПЕРЕВІРКИ ПАРОлів можна використовувати для перевірки паролів та підвищення безпеки. Він перевіряє надійність пароля і дозволяє користувачам встановлювати лише ті паролі, які є достатньо безпечними. Бажаєте налаштувати компонент VALIDATE PASSWORD? Натисніть y|Y для Так, будь-яку іншу клавішу для Ні: Ю

Потім установіть рівень політики перевірки пароля, ввівши 0, 1 або 2 залежно від того, наскільки надійним ви хочете створити свій пароль для своїх баз даних.

Вихід: Існує три рівні політики перевірки пароля: LOW Length >= 8 MEDIUM Length >= 8, числовий, змішаний регістр та спеціальні символи STRONG Довжина >= 8, числовий, змішаний регістр, спеціальні символи та файл словника Будь ласка, введіть 0 = LOW, 1 = СЕРЕДНІЙ і 2 = СИЛЬНИЙ: 2

Далі вам буде запропоновано ввести новий пароль для користувача root MySQL. Введіть відповідний пароль для вашого кореня MySQL. Плагін VALIDATE PASSWORD надасть вам оцінку надійності вашого пароля відповідно до рівня перевірки пароля. Натисніть Ю щоб продовжити використання введеного вами пароля.

Вихід: Будь ласка, встановіть тут пароль для root. Новий пароль: повторно введіть новий пароль: Приблизна міцність пароля: 100 Чи бажаєте ви продовжити використання наданого пароля? (Натисніть y|Y для Так, будь-яку іншу клавішу для Ні) : Ю

Натисніть Ю для решти підказок вони видалить деяких анонімних користувачів і тестові бази даних, вимкнуть віддалений вхід до root і перезавантажать нові налаштування для сервера MySQL. Коли ви закінчите, перевірте свою базу даних, виконавши:

sudo mysql

Наведена вище команда відкриє консоль MySQL, підключившись до бази даних MySQL як корінь користувач. Ви побачите такий висновок:

Вихід: Ласкаво просимо до монітора MySQL. Команди закінчуються на ; або \g. Ваш ідентифікатор з’єднання MySQL — 10 Версія сервера: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Авторське право (c) 2000, 2020, Oracle та/або його філії. Всі права захищені. Oracle є зареєстрованою торговою маркою корпорації Oracle та/або її філій. Інші назви можуть бути торговими марками відповідних власників. Введіть 'help;' або '\h' для допомоги. Введіть '\c', щоб очистити поточний оператор введення. mysql>

Можливо, ви помітили, що вам не потрібно вводити пароль, який ви встановили для користувача root MySQL. Це тому, що стандартним методом аутентифікації для адміністративного користувача root MySQL є caching_sha2_authentication замість mysql_native_password метод, який використовує пароль для входу.

Таким чином, за замовчуванням ви можете ввійти лише як користувач root MySQL sudo увімкнених користувачів, які діють як додатковий захист для сервера MySQL. Але бібліотека MySQL PHP не підтримує caching_sha2_authentication метод. Тому нам потрібно використовувати mysql_native_password метод, коли ми створюємо нового користувача для Laravel, оскільки він використовує паролі для підключення та взаємодії з базою даних.

Створіть новий користувач і базу даних MySQL

Завжди корисно створити нового користувача та базу даних спеціально для вашої програми замість використання кореневих користувачів і тестових баз даних MySQL. Отже, ми збираємося налаштувати нового користувача MySQL під назвою laravel_user і базу даних під назвою laravel. Якщо ви дотримувалися інструкції до цього моменту, у вас повинна бути відкрита консоль MySQL. Для створення користувача викликано laravel_user виконайте наступний запит у консолі MySQL:

Примітка: Замініть пропуск тесту у наведеному нижче запиті MySQL із надійним паролем.

СТВОРИТИ КОРИСТУВАЧА 'laravel_user'@'%', ІДЕНТИФІКОВАНОГО ЗА mysql_native_password ЗА 'testpass';

Далі створіть базу даних під назвою laravel для нашої програми Laravel, виконавши цей запит:

СТВОРИТИ БАЗУ ДАНИХ laravel;

Тільки користувач root MySQL має права на щойно створену базу даних laravel. Надайте всі дозволи на laravel бази даних до laravel_user за допомогою:

НАДАТИ ВСЕ НА laravel.* TO 'laravel_user'@'%';

Отже, тепер у нас є новий користувач MySQL і база даних, вийдіть з консолі MySQL, виконавши:

ВИХІД;

Перевірте свого нового користувача MySQL, увійшовши з ним у консоль MySQL, для цього запустіть цю команду в терміналі:

mysql -u laravel_user -p

Зверніть увагу на -стр прапорець у команді, він запропонує вам пароль, який ви використовували під час створення laravel_user (пропуск тесту в запиті). Після того, як ви увійшли в консоль MySQL як laravel_user, підтвердьте, що користувач має доступ до laravel бази даних, запустивши:

ПОКАЗАТИ БАЗИ ДАНИХ;
Вихід: +-------------------+ | База даних | +-------------------+ | laravel | | інформація_схема | +-------------------+ 2 рядки в наборі (0,01 с)

Наведений вище вихід підтверджує, що користувач MySQL laravel_user має права доступу до бази даних laravel. Вийдіть з консолі MySQL за допомогою ВИХІД; запит, щоб ми могли перейти до створення програми DemoApp Laravel.

Встановлення Laravel

Фреймворк Laravel використовує Composer для завантаження та керування залежностями. Отже, нам потрібно встановити Composer на нашу машину Ubuntu 20.04, перш ніж ми зможемо створити додаток Laravel.

Встановіть Composer

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

Вам потрібно встановити деякі додаткові пакунки, які потрібні Composer для роботи, наприклад php-cli для запуску PHP-скриптів у терміналі та розпакувати щоб допомогти Composer розпакувати пакети. Встановіть їх обидва, запустивши:

sudo apt встановити php-cli розпакувати

Потім, щоб встановити Composer глобально, завантажте сценарій встановлення Composer за допомогою завивати і встановіть його за допомогою такої команди:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Нарешті, переконайтеся, що composer встановлено правильно, запустивши:

композитор
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Версія композитора 1.10.8 2020-06- 24 21:23:30 Використання: команда [параметри] [аргументи]

Цей результат підтверджує, що Composer працює належним чином на вашому сервері Ubuntu 20.04, ви можете почати використовувати його для встановлення та керування PHP-фреймворками та бібліотеками.

Створіть додаток Laravel

У нас майже є все необхідне для створення програми Laravel на нашому сервері Ubuntu 20.04, за винятком кількох розширень PHP. Встановіть ці відсутні розширення за допомогою такої команди:

sudo apt встановити php-mbstring php-xml php-bcmath php-zip php-json

Тепер ми можемо встановити Laravel і створити нову програму Laravel за допомогою Composer. Спочатку переконайтеся, що ви перебуваєте в домашньому каталозі користувача:

cd ~

Потім створіть новий проект Laravel за допомогою Composer створити-проект команда:

composer create-project --prefer-dist laravel/laravel LaravelApp

Наведена вище команда створить новий проект під назвою LaravelApp, а також встановить і налаштує Laravel Framework для вас. Ви побачите результат, подібний до цього:

Вихід: Створення проекту "laravel/laravel" у "./LaravelApp" Встановлення laravel/laravel (v7.12.0) Встановлення laravel/laravel (v7.12.0): завантаження (100%) Створений проект у /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Завантаження репозиторіїв composer з інформацією про пакет Оновлення залежностей (включаючи require-dev) Операції з пакетом: 97 встановлень, 0 оновлень, 0 видалень Встановлення voku/portable-ascii (1.5.2): Завантаження (100%) Встановлення symfony/polyfill-ctype (v1 .17.1): Завантаження (100%) Встановлення phpoption/phpoption (1.7.4): Завантаження (100%) Встановлення vlucas/phpdotenv (v4.1.7): Завантаження (100%) Встановлення symfony/css-selector (v5.1.2) : Завантаження (100%) ....

Коли інсталяція буде завершена, перейдіть до кореневого каталогу програми, а потім запустіть Laravel ремісник команда, щоб перевірити, чи всі компоненти встановлені належним чином:

cd LaravelApp/ php artisan
Вихід: Laravel Framework 7.18.0 Використання: команда [параметри] [аргументи] Параметри: -h, --help Відобразити це повідомлення довідки -q, --quiet Не виводити жодного повідомлення -V, --version Відобразити цю версію програми --ansi Примусовий вихід ANSI --no-ansi Вимкнути вихід ANSI -n, --no-interaction Не задавати жодних інтерактивних запитань --env[=ENV] Середовище, у якому команда має виконуватися під -v|vv|vvv, --verbose Збільшити детальність повідомлень: 1 для нормального виводу, 2 для більш детального виведення і 3 для налагодження ....

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

Налаштуйте додаток Laravel

Файли конфігурації Laravel розташовані в каталозі з ім конфіг всередині кореневого каталогу програми. Крім того, коли ми встановили Laravel через Composer, він створив файл середовища під назвою «.env» у кореневому каталозі програми. Файл середовища містить конфігурації, що стосуються середовища, і він має пріоритет перед налаштуваннями в звичайних файлах конфігурації, розташованих у каталозі config.

Примітка: файл конфігурації середовища містить конфіденційну інформацію про ваш сервер, таку як паролі бази даних, ключі додатків Laravel тощо. Таким чином, він ніколи не повинен бути публічним.

Зараз ми будемо редагувати .env файл, щоб змінити конфігурацію та додати до нього облікові дані бази даних. Відкрийте файл за допомогою редактора nano, запустивши:

nano .env

У цьому є багато змінних конфігурації .env файл. Нам не потрібно змінювати кожен з них, оскільки Composer налаштував більшість параметрів автоматично. Отже, ось список основних змінних конфігурації, про які ви повинні знати:

  • APP_NAME: назва програми, яка використовується для сповіщень і повідомлень, тому ми збираємося встановити для неї значення «LaravelApp».
  • APP_ENV: Ця змінна використовується для вказівки поточного середовища програми. Його можна налаштувати на локальне середовище, середовище розробки, тестування або виробниче середовище. Наразі ми збираємося встановити його в середовищі розробки.
  • APP_KEY: Унікальний ключ програми, який використовується для створення солей і хешів для веб-програми. Він генерується автоматично, коли ви встановлюєте Laravel через Composer, тому змінювати це не потрібно.
  • APP_DEBUG: для нього можна встановити значення true або false, залежно від того, чи хочете ви відображати помилки на стороні клієнта. Встановіть значення false, коли ви переходите до робочого середовища.
  • APP_URL: базова URL-адреса або IP-адреса програми, змініть її на своє доменне ім’я, якщо воно у вас є для вашої програми Laravel, або поки не торкайтеся.
  • DB_DATABASE: назва бази даних, яку ви хочете використовувати з програмою Laravel. Ми будемо використовувати базу даних MySQL «laravel», яку ми створили під час налаштування MySQL.
  • DB_USERNAME: Ім'я користувача для підключення до бази даних. Ми будемо використовувати створеного нами користувача MySQL ‘laravel_user’.
  • DB_PASSWORD: пароль для підключення до бази даних.
 APP_NAME= LaravelApp APP_ENV= розвиток APP_KEY= base64:Application_unique_key APP_DEBUG=true APP_URL= //domain_or_IP LOG_CHANNEL=стек DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= пропуск тесту

Внести зміни до .env файл відповідно, і коли ви закінчите редагування, збережіть і закрийте файл за допомогою CTRL+X потім натисніть Ю і натисніть Enter, щоб підтвердити. Тепер залишилося лише налаштувати сервер Apache і створити віртуальний хост для нашої програми Laravel.

Налаштування веб-сервера Apache

Ми встановили Laravel в локальну папку домашнього каталогу користувача. Хоча це чудово працює для локальної розробки, рекомендовано мати каталог веб-додатків /var/www. Причина, чому ми не встановили Laravel /var/www безпосередньо, тому що він належить root, і Composer не слід використовувати з sudo.

Тому використовуйте mv команда для переміщення папки програми Laravel та її вмісту /var/www:

sudo mv ~/Laravel/ /var/www

Каталог LaravelApp належить користувачу, тому ви все ще можете редагувати та вносити зміни до файлів, не використовуючи sudo команда. Але веб-сервер Apache потребує доступу до кешу та каталогів сховища програми, оскільки Laravel зберігає в ньому файли, створені програмою. Змініть власника цих папок на www-дані користувач, який використовує chown команда:

sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache

Після зміни власника цих каталогів увімкніть Apache mod_rewrite оскільки це вимагає Laravel для правильного перетворення URL-адрес для інтерпретації його функцією маршрутизації через .htaccess файл.

sudo a2enmod переписати

Далі нам потрібно налаштувати віртуальний хост для програми Laravel. Конфігурації віртуального хоста розташовані за адресою /etc/apache2/sites-available. Ми збираємося відредагувати файл віртуального хосту за замовчуванням для розгортання програми Laravel. Відкрийте файл конфігурації віртуального хоста за замовчуванням за допомогою редактора nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Змініть корінь документа з /var/www/html до /var/www/LaravelApp/public і додайте такий фрагмент під рядком DocumentRoot:

 AllowOverride All 

Ваш 000-default.conf тепер має виглядати приблизно так з кількома коментарями.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log об’єднаний 

Перезапустіть веб-сервер Apache, виконавши таку команду:

sudo systemctl перезапустити apache2

Тепер перейдіть у свій браузер і введіть IP-адресу вашого сервера Ubuntu 20.04. Ви побачите початкову сторінку Laravel замість сторінки привітання Apache за замовчуванням.

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

Категорія: Linux