У цій публікації розберемо як розгорнути Laravel-додаток на сервері під операційною системою Ubuntu Linux 20.04.
Laravel - це загальнодоступний PHP-фреймоворк, розроблений ще в 2011 році. Використовується для створення багаторівневих Web-ресурсів та програм.
Він оперативно підтримує функціональне тестування під час створення ПЗ, і можна використовувати інші інструменти тестування ПЗ. Легка масштабованість проектів на фреймворку Laravel.
Фреймворк забезпечує просту, але швидку і доступну систему авторизації і дає права доступу до ваших файлів. Що дозволяє нам зробити обмеження на доступ неавторизованих користувачів. Забезпечуючи захист додатків, варто розуміти, що код фреймворку захищений від таких загроз як SQL-ін'єкцій або міжсайтових підробок запитів.
Скористайся надійним хостингом для сайтів на Laravel.
Laravel надає простий та гнучкий підхід до розробки веб-додатків. Він поставляється з потужними функціями та інструментами, які дозволяють розробникам швидко та легко створювати та обслуговувати веб-додатки. Також для розвинених розробників є можливість використовувати шаблони та модулі для більш ефективного проектування та розробки додатків. Крім того, Laravel підтримує багато популярних баз даних, таких як MySQL, Postgres, SQLite та MS SQL, що робить його більш придатним для розробки програм з різними базами даних. У нього є вбудовані механізми для безпеки та аутентифікації, до всього перерахованого він має потужні інструменти для моніторингу додатків. Все це робить Laravel дуже привабливим для розробки веб-програм.
Nginx підтримує такі унікальні фішки:
- Керування продуктивністю: Nginx надає багато інструментів для налаштування продуктивності сервера, включаючи можливість масштабування та контролю навантаження.
- Підтримка великої кількості протоколів: Nginx підтримує широкий спектр протоколів, включаючи HTTP, HTTPS, FTP, SMTP та багато інших.
- Керування кешуванням: Nginx дозволяє налаштовувати кешування, щоб покращити продуктивність та підвищити швидкість відгуку.
- Підтримка розподілених програм: Nginx підтримує розподілені програми, дозволяючи розподіляти навантаження між кількома серверами.
- Підтримка віртуального хостингу Nginx дозволяє робити віртуальний хостинг, що дозволяє запускати кілька веб-сайтів на одному сервері.
Вимоги до системи
- сервер на операційній системі Linux Ubuntu;
- Оновлені пакети системи та додатків;
- Встановлений Web-сервер Nginx, «БД» MySQL, PHP та Composer.
Можна скористатися готовим рішенням для Laravel. Детальніше у статті: Стабільний хостинг для сайтів на Laravel.
Початок роботи
Оновлюємо пакети.
sudo apt updateВстановлюємо необхідні пакети модулів PHP.
sudo apt install php-mbstring php-xml php-bcmath
Створення БД
Щоб показати основне призначення фреймворку, створимо таблицю city list, де ми внесемо список популярних міст.
Заходимо в консоль MySQL з-під root`a бази даних.
sudo mysql
Створюємо нову «БД»
Створюємо користувача та видаємо усі права для створеної «БД»
Видаємо усі права для «БД» користувачеві, потім виходимо із «БД»
Це дає користувачеві всі права доступу до БД для адміністрування.
Перевіряємо, чи можемо зайти в MySQL, використовуючи облікові дані нашого користувача.
Перевіряємо також доступ до створеної БД, потім виходимо з БД.
Створення нового додатку
Створюємо табличку в «БД».
Вносимо дані до таблиці. У нашому випадку вносимо дані популярних міст.
Перевіряємо, чи додались записи до таблиці. З'явиться таке вікно.
Розробка додатку для фреймворку
Після того, як створили додаток citylist. Додаток використовується для показу основних конфігурацій фреймворку і є доступом підключення до «БД».
Створюємо новий каталог «citylist», де буде міститися сам фреймворк.
composer create-project --prefer-dist laravel/laravel “name_of_your_project”Після встановлення буде показана наступна інформація в командному рядку.
Тепер відкриваємо каталог нашої програми, запускаємо команду artisan для того, щоб перевірити чи встановилися потрібні компоненти правильно.
cd “name_of_your_project”Artisan – це CLI, що входить до складу фремворку. Він видає низку команд, які корисні при розробці вашої програми.
php artisan
Якщо все зроблено як за інструкцією, то буде показано наступні.
Налаштування фреймворку
Налаштування фреймворку розташоване у каталозі “config” вашого головного каталогу. Коли ми встановлювали фреймворк через утиліту "Composer", то створився файл середовища.
Файл середовища — записано налаштування вашого середовища, де знаходиться програма, і ставить свій файл за пріоритетом вище за інші файли налаштувань, які знаходяться в каталозі «config».
Відкриваємо файл ".env".
Nano .envХоч і у файлі на перший погляд багато конфігурацій, але ми налаштовуватимемо лише ті, які нам знадобляться. Далі ми розглянемо і опишемо детальніше, які параметри змінюватимемо.
- APP_NAME: Ім'я вашого проекту в основному користується для сповіщення;
- APP_ENV: Актуальне середовище вашої програми;
- APP_KEY: Спеціальний ключ для генерації хеш-сум створюється відразу після встановлення фреймворку, його не чіпаємо;
- APP_URL: Сюди вписуємо вашу ip-адресу;
- DB_DATABASE: ім'я вашої БД;
- DB_USERNAME: ім'я користувача для підключення до «БД»;
- DB_PASSWORD: пароль до «БД», щоб підключатися до неї.
Налаштування веб-сервера
Переміщуємо папку нашої програми до каталогу «/var/www», де зазвичай зберігають усі додатки, які функціонують на веб-сервері.
sudo mv ~/yourproject /var/www/yourproject
Видаємо доступ до папок, куди фреймворк зберігає створені програмою файли.
Приступимо до налаштування веб-сервера. Створюємо файл налаштувань віртуального хоста.
sudo nano /etc/nginx/sites-available/yourprojectВставляємо наступні параметри для веб-сервера.
server {
listen 80;
server_name IP ADDRESS/DOMAIN_NAME;
root /var/www/YOURPROJECT/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;}
location ~ /\.(?!well-known).* {deny all;}
}
Тепер, запускаємо новий файл з налаштуваннями віртуального хоста, створюємо посилання на ваш проект у sites-enabled.
sudo ln -s /etc/nginx/sites-available/yourproject /etc/nginx/sites-enabled/Перевіряємо на синтаксис помилок у налаштуваннях.
sudo nginx -tПерезавантажуємо веб-сервер
systemctl reload nginx
Налаштування головної сторінки фреймворку
Відкриваємо файл головного маршруту.
nano routes/web.php<span></span>Вносимо такі параметри до нашого файлу.
<?php
use Illuminate\Support\Facades\DB;
Route::get('/', function () {
$visited = DB::select('select * from places where visited = ?', [1]);
$togo = DB::select('select * from places where visited = ?', [0]);
return view('yourproject', ['visited' => $visited, 'togo' => $togo ] );
});<span></span>
Створюємо новий файл - екран, на якому виконуватиметься рендеринг виведення інформації з «БД» для користувача.
nano resources/views/travellist.blade.php<span></span>
Цей код призначений для виведення інформації. Прописуємо його у файл конфігурації.
Зберігаємо файл. Відкриваємо браузер і перезавантажуємо програму. Сама сторінка буде виглядати у такому форматі.
Перевірений хостинг для сайтів на Laravel.
Висновок
У цій публікації ми розібрали такі дії:
- Створили та розписали «БД» для додатку;
- Налаштували новий додаток фреймворку;
- Налаштування фреймворку та веб-сервера;
- Налаштування головної сторінки фреймворку.