跳转到主要内容

如何安装基于 Laravel 的网站

安装通过 composer 完成。 示例中使用的域名是 example.com,网站用户是 user

准备工作

安装 Composer

FASTPANEL® 的“Applications”部分中安装 composer

FASTPANEL 中的应用管理菜单

在 FASTPANEL 中安装 composer

创建网站

FASTPANEL® 中创建一个网站,并在网站设置的“Site Directory”部分指定 public 子目录。

指定 public 子目录

创建项目

要创建项目,您需要使用网站所有者的数据通过 SSH 连接到服务器。 网站所有者显示在 FASTPANEL 中的网站卡片里

在 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 文件,您可以通过 SSH 使用名为 nano 的文本编辑器:

nano .env
.env 示例
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=site_db
DB_USERNAME=db_user
DB_PASSWORD=0j9vd3qATwTsXW7C

通过 SSH 编辑 ./config/database.php 文件:

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 版本安装 PHP memcached 模块,并安装该应用程序。

安装 memcached PHP 模块

FASTPANEL 中的 PHP 管理菜单

在 FASTPANEL 中安装 PHP memcached 模块

安装 memcached 应用程序

FASTPANEL 中的应用管理菜单

在 FASTPANEL 中安装 memcached 应用程序

编辑配置文件

在文件 ./config/cache.php 中指定连接 memcached 的数据

./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,
],
],
],

在非系统 PHP 版本上使用 Artisan

要在非系统 PHP 版本上使用 artisan,必须指定可执行文件的完整路径。 使用替代 php 版本 8.2 的示例:

/opt/php82/bin/php artisan list

基本 Artisan 命令

命令应在项目的根目录中执行(本示例中为 example.com)

cd /var/www/user/data/www/example.com

要查看所有可用 Artisan 命令的列表,您可以使用以下命令

php artisan list

启动本地 Laravel 开发服务器。 您可以指定 --host--port

php artisan serve

启动迁移

php artisan migrate

在网站上启用维护模式,使用键 --redirect=/ 指定维护模式页面

php artisan down

关闭网站上的维护模式

php artisan up