【工具部署】使用宝塔面板搭建WebStack我的网址导航

背景

公司组内项目比较多了,各类域名、网址不利于记忆,故搭建一套统一的导航网站,网上找了一下,发现WebStack很是不错,最终选择了它,又在官方仓库的issues里发现了利用宝塔面板搭建的教程,因此就直接拿来用了,详细教程以下

1、安装宝塔面板

本文忽略,默认已安装

2、宝塔面板中安装php7.2

3、删除以下PHP禁用函数

  • passthru
  • proc_open

4、安装MySQL5.7版本

5、宝塔新建一个站点,例如:www.demo.com

6、拉取源码&部署

1.进入站点根目录

cd /www/wwwroot/www.demo.com

2.clone代码(这一步下载不动能够手动下载源码上传解压到网站根目录)

sudo git clone https://github.com/hui-ho/WebStack-Laravel.git

3.安装Composer包管理器而且全局处理

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

4.更换源为国内源,国外服务器可忽略此步骤

sudo composer config -g repo.packagist composer https://packagist.laravel-china.org

5.安装依赖

sudo composer install --ignore-platform-reqs

6.编辑配置

cp .env.example .env
在站点根目对.env文件的编辑如下内容
...
DB_DATABASE=数据库名称
DB_USERNAME=数据库用户名
DB_PASSWORD=数据库密码
...

7.生成Key值会自动填入.env文件中

sudo php artisan key:generate

8.迁移数据

sudo php artisan migrate:refresh --seed

9.本地测试

sudo php artisan serve

禁用Debugbar 分析器

在站点根目录下的.env文件中APP_DEBUG的值置成falsephp

修改站点端口

清除数据

sudo php artisan webstack:clean

7、错误排查

1.数据库编码错误,须要指定为utf8mb4_unicode_ci

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'admin_config' already exists (SQL: create table `admin_config` (`id` int unsigned not null auto_increment primary key, `name` varchar(255) not null, `value` varchar(255) not null, `description`   
  text null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)

2.升级composer

  • 升级命令:sudo composer self-update
Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.
Do not run Composer as root/super user! See https://getcomposer.org/root for details

3.composer self-update 出现 [ErrorException]  zlib_decode(): data error提示

  • 解决办法:编辑php.ini中zlib.output_compression = On、zlib.output_compression_level = 5

4.composer install遇到:Your requirements could not be resolved to an installable set of packages

  • 解决办法:直接忽略版本 composer install --ignore-platform-reqs 或者 composer update --ignore-platform-reqs

5.访问admin后台页面,提示以下报错

PHP Fileinfo extension must be installed/enabled to use Intervention Image. (View: /www/wwwroot/live-test.internal.weimobqa.com/vendor/james.xue/login-captcha/resources/views/index.blade.php)
  • 解决方案:在宝塔的PHP里面安装fileinfo插件

6.访问admin后台页面,提示以下报错

The stream or file "/www/wwwroot/live-test.internal.weimobqa.com/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
  • 解决方案:log日志没有写入权限,加上写入权限

8、最终效果展现

9、相关连接

开源地址:https://github.com/hui-ho/WebStack-Laravel
魔改版本:https://github.com/CrazyBoyM/WebStack-Laravel
宝塔搭建教程:https://spoience.com/webstack.html
https://blog.csdn.net/sanbingyutuoniao123/article/details/77512051
https://www.jianshu.com/p/d68f0ec0572bhtml