Как да инсталирате сайт, базиран на Laravel
Инсталирането се извършва с помощта на composer. Домейнът, използван като пример, е example.com, а потребителят на сайта е user.
Подготовка
Инсталиране на Composer
Инсталирайте composer в FASTPANEL® в секцията "Приложения"


Създаване на уебсайт
Създайте уебсайт в FASTPANEL® и задайте поддиректорията public в настройките на сайта в секцията "Директория на сайта".

Създаване на проект
За да създадете проект, трябва да се свържете към сървъра чрез SSH, като използвате данните на собственика на сайта. Собственикът на сайта е показан в картата на сайта в FASTPANEL

След като SSH връзката е установена, трябва да изчистите директорията на сайта, като използвате следния пример за команда (вместо example.com посочете името на вашия сайт)
rm -rf /var/www/user/data/www/example.com/*
След това отидете в директорията на сайта
cd /var/www/user/data/www/example.com
И създайте проект
composer create-project laravel/laravel ./
Примерен изход при коректна инсталация
73 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package fruitcake/laravel-cors is abandoned, you should avoid using it. No replacement was suggested.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
76 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
No security vulnerability advisories found
> @php artisan key:generate --ansi
Application key set successfully.
Инсталиране на конкретна версия на Laravel
За да инсталирате конкретна версия, при създаване на проект трябва да посочите версията в края на командата в кавички
composer create-project laravel/laravel ./ "5.8.*"
Свързване с база данни
- За Artisan посочете данните за свързване към базата данни във файла.env в директорията на сайта
- За сайта посочете данните за свързване към базата данни във файла
./config/database.php
За да редактирате файла .env, можете да използвате текстов редактор с име nano чрез SSH:
nano .env
Пример за .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=site_db
DB_USERNAME=db_user
DB_PASSWORD=0j9vd3qATwTsXW7C
За да редактирате файла ./config/database.php чрез SSH:
nano ./config/database.php
Пример за ./config/database.php
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'site_db'),
'username' => env('DB_USERNAME', 'db_user'),
'password' => env('DB_PASSWORD', '0j9vd3qATwTsXW7C'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
В редактора nano Ctrl+O се използва за запазване на промените, а Ctrl+X — за изход от редактора.
Свързване с Memcached (по избор)
Трябва да инсталирате PHP модула memcached за версията на PHP, използвана от сайта, както и да инсталирате приложението.
Инсталиране на PHP модула memcached


Инсталиране на приложението memcached


Редактиране на конфигурационен файл
Посочете данните за свързване към memcached във файла ./config/cache.php
Пример за ./config/cache.php
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],