laravel9 安装配置
在 Linux 服务器上搭建 PHP 语言的web,使用laravel 9框架+vue3前端框架。以前后端分离的方式,进行搭建配置。
运行环境:
- centOS 9
- nginx 1.22
- php 8.1.9
- mysql 8.0.30
运行环境的搭建,参阅centOS服务器搭建
安装 composer
cd /usr/local/srccurl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
测试
composer -V
此时composer已经成为全局使用的工具。
安装 laravel 9
在/var/web/www目录下安装 web 项目exampleApi。要求:PHP 版本 8.0.2+
cd /var/web/wwwcomposer create-project laravel/laravel exampleApicd /var/web/www/exampleApichmod -R 777 storagechmod -R 777 bootstrap/cachechmod -R 777 database/migrations
查看 Laravel版本:
php artisan --versioncat composer.json
查看目录结构:
tree -L 2 ./
安装验证码
Validate capatcha in api middleware支持API方式图形验证码。captcha-函数列表
composer require mews/captcha
在config/app.php中添加注册引用
'providers' => [ Mews\Captcha\CaptchaServiceProvider::class, Illuminate\Auth\AuthServiceProvider::class, ..... 'aliases' => Facade::defaultAliases()->merge([ 'Captcha' => Mews\Captcha\Facades\Captcha::class, ])->toArray(), .....
生成配置文件,在项目根目录下,输入如下命令:
php artisan vendor:publish
选项响应的生成文件数字9,自动生成配置文件config/captcha.php。修改 default 数组可以对验证码进行样式、数量、大小上的修改。
页面中使用:
<tr> <td><label for="captcha">验证码:</label></td> <td><input type="text" id="captcha" class="form-control{{ $errors->has('captcha') ? ' is-invalid' : '' }}" name="captcha" required /></td> </tr> <tr> <td> </td> <td><img src="{{ captcha_src('flat') }}" onclick="this.src='{{$web}}/captcha/flat?'+Math.random()" title="点击图片重新获取验证码" /></td> </tr>
控制器中验证captcha::check()
或者captcha_check()
验证
...... use Mews\Captcha\Facades\Captcha; ...... $captcha=$request->input('captcha'); if(!Captcha::check ($captcha)) { //验证码错误 }
如果是前后端分离的项目
return response()->json([ 'src' => \captcha_src()
配置 laravel 9
登录 mysql 创建数据库
登录 mysql 客户端mysql -u root -p 创建数据库 create database exampleApi default character set utf8mb4 collate utf8mb4_unicode_ci;
配置 laravel 链接数据库,修改.env文件。
.env ...... DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=exampleApi DB_USERNAME=root DB_PASSWORD=mySqlPassword ......
上传到生产环境后。需要修改配置,修改.env文件。
调试模式 ...... APP_ENV=local APP_DEBUG=true ...... 生产模式 ...... APP_ENV=production APP_DEBUG=false ......
配置 laravel 链接数据库,修改config/database.php文件。
...... 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'exampleApi'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'mySqlPassword'), 'unix_socket' => env('DB_SOCKET', '/usr/local/mysql/run/mysqld.sock'), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => 'db_', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ......
清除laravel默认的迁移文件
Laravel9 默认,在目录database/migrations下有四个文件:
- 2014_10_12_000000_create_users_table.php,用来创建db_users表,用于构建用户表。
- 2014_10_12_100000_create_password_resets_table.php,用来创建db_password_resets表,用于构建密码重置表。
- 2019_08_19_000000_create_failed_jobs_table.php,用来创建db_failed_jobs表,用于构建任务失败表。
- 2019_12_14_000001_create_personal_access_tokens_table.php,用来创建db_personal_access_tokens表,用于 sanctum 验证,存放用户对应的 token 相关字段信息。
若已经具备数据表,这四个文件可以清除掉。
cd /var/web/www/exampleApirm -rf database/migrations/*composer dump-autoload
清除 laravel 缓存命令
使用终端命令行工具,进到 laravel 应用程序目录下。使用以下命令来清除缓存:
1、清除应用程序缓存
php artisan cache:clear
2、清除路由缓存
php artisan route:cache
3、清除配置缓存
php artisan config:cache
4、清除已编译的视图文件
php artisan view:clear
5、自动加载优化
部署应用到生产环境时,确保优化过 Composer 的类自动加载映射以便 Composer 可以快速为给定类找到要加载的文件:
composer install --optimize-autoloader --no-dev
注:除了优化自动加载器之外,还要在项目代码仓库中包含 composer.lock 文件,这样的话项目依赖可以更快安装。