• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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/src
    curl -sS https://getcomposer.org/installer | php
    mv composer.phar  /usr/local/bin/composer
    

    测试

    composer -V
    

    此时composer已经成为全局使用的工具。


    安装 laravel 9

    /var/web/www目录下安装 web 项目exampleApi。要求:PHP 版本 8.0.2+

    cd /var/web/www
    composer create-project laravel/laravel exampleApi
    
    cd /var/web/www/exampleApi
    chmod -R 777 storage
    chmod -R 777 bootstrap/cache
    chmod -R 777 database/migrations
    

    查看 Laravel版本:

    php artisan --version
    cat 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/exampleApi
    
    rm -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 文件,这样的话项目依赖可以更快安装。