前言
GitHub上发卡平台项目独角数卡https://github.com/assimon/dujiaoka。
PHP应为7.4 其他的可能会报错
用了宝塔海外版aaPanel,不需要注册,干净许多。
安装环境
aaPanel官网: https://www.aapanel.com/
安装aaPanel:
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel
最终会返回面板的登录地址和账号密码:
aaPanel Internet Address: https://xx.xx.xx.xx:7800/ead667fd
aaPanel Internal Address: https://xx.xx.xx.xx:7800/ead667fd
username: fshffdsa
password: 453rhg6d
安装环境
登录面板后,弹出默认安装的内容,选择如图即可:
- Nginx v1.21
- MySQL v5.6 (5.7及以上版本需要至少2G内存)
- PHP v7.4 (独角数卡GitHub页面指定的版本为7.4,为了兼容Laravel不要使用较高版本)
- phpMyAdmin v5.0
- 选择Compile编译的方式安装(Fast是包管理器安装也是可以的而且更快,但是我更倾向于编译安装,稳定性更佳)

此外还需要在App Store中安装:
- Supervisor

PHP解禁函数&安装拓展
宝塔默认会禁用一些php的函数,导致artisan命令无法正确运行
在App Store中找到PHP-7.4,点击Setting,左侧Disabled functions
将以下函数删除:
putenvproc_openpcntl_signalpcntl_alarm


接下来在左侧选择Install extensions,安装以下三个扩展:
- fileinfo
- redis
- opcache

建立网站
下载项目代码
打开项目Releases:https://github.com/assimon/dujiaoka/releases
复制最新的包的url

在服务器上下载,解压,改名,提权
wget https://github.com/assimon/dujiaoka/releases/download/2.0.6/2.0.6-antibody.tar.gz
tar -xvf 2.0.6-antibody.tar.gz
mv dujiaoka/ shop.j000e.co #我个人需要,可以不改名
chattr -i /home/wwwroot/shop.j000e.co/public/.user.ini
chown -R www /home/wwwroot/shop.j000e.co/
新建网站
在Website中Add site
注意Website Path是刚才解压出来的绝对路径;数据库在此会新建,后面会用来对接,最下面的两个SSL选项我这里没勾选因为我需要用自己的SSL证书,如果你没有SSL证书但是需要https,那么都勾选上即可,aaPanel会去申请Let’s Encrypt的证书。
点Submit保存

新建后点域名进入配置菜单
自定义SSL证书
进入SSL,Other certificate,填入SSL证书的KEY和PEM并Save即可,成功的话会出现绿色的Succesfully deployed字样,同时可以开启右上角的Force HTTPS,如果是CloudFlare颁发的证书,注意要将SSL/TLS模式调整为完全(严格),否则会出现本地媒体文件不走https导致小锁上有叹号。


设置项目伪静态和运行目录
进入Site directory
检查Site directory是否是前面解压的网站绝对路径
将Running directory选择为/public
如果下拉栏里没有/public选项,可以先把上面Site directory后面加上/public,Save,再该回去,Save,Running directory会出现/public的选项
进入URL rewrite
选择laravel5并保存

网站安装
这时可以打开网站了,填好信息即可

报错”419 No Reason Phrase“或“0 err”

编辑网站根目录的.env文件,配置如下选项(如果没有就新增):
vi .env
ADMIN_HTTPS=true
Supervisor配置
Run User为www
Run Dir为网站路径
Start Command为如下,注意中间的空格后面的路径对应自己的网站路径
/www/server/php/74/bin/php /home/wwwroot/fk.skygv.com/artisan queue:work

邮件配置
本来是想用宝塔邮局做个自己域名的邮件系统的,但是阿里云25口无法解封导致宝塔邮局无法工作,所以换成了Outlook,而且用Outlook有个好处就是发邮件没有自建邮件系统那么容易进垃圾箱。
注册了一个新的Outlook邮箱或者在已有Outlook邮箱设置中新建一个别名(无所谓outlook,gmail,163还是什么邮箱,支持SMTP就行)
在微软账户设置-Security中新建一个App Password,不能直接用微软账号密码是因为那样会有验证码的环节,而App Password像一个绿色通道,不需要验证码就可以使用SMTP等服务


根据微软给出的SMTP配置填写独角数卡的系统设置中的邮件服务
Server name: smtp.office365.com
Port: 587
Encryption method: STARTTLS

注意:协议要写TLS而不是STARTTLS,否则会报错:
Connection could not be established with host smtp.office365.com :stream_socket_client(): unable to connect to starttls://smtp.office365.com:587 (Unable to find the socket transport “starttls” – did you forget to enable it when you configured PHP?)
原因是在swiftmailer中,TLS是STARTTLS,SSL是TLS。
参考:
How do I use STARTTLS with swiftmailer in php?

给服务器开587的TCP口

测试一下,填写个收件地址,能收到即可。

让邮箱转发所有邮件
隐藏脚注 Powered by @独角数卡
编辑resources/views/unicorn/layouts/_footer.blade.php 将脚注内容删除或注释起来,如:
<!--Powered by:<a href="http://dujiaoka.com">@独角数卡</a>-->
优化页面速度
商品图片可以统一使用webp格式并尽量压缩控制在个位数KB水平。
Cloudflare新建规则启用缓存相关设置和Rocket Loader等工具。
自定义图标,favicon,背景图
在系统设置-站点模板中,可以看到独角数卡有三种主题可选,分别是默认的unicorn, Luna和hyper。
这里以Luna举例,其他主题同理。
luna背景图:/www/wwwroot/fk.skygv.com/public/assets/luna/img/background.png
luna和hyper的网站图标(favicon) 32X32:/www/wwwroot/fk.skygv.com/public/assets/style/favicon.ico
默认unicorn的网站图标(favicon) 32X32:/www/wwwroot/fk.skygv.com/public/favicon.ico
默认商品图片 512×512(网站 LOGO 共享此图,与后台自定义 LOGO 和商品图片不冲突): /www/wwwroot/fk.skygv.com/public/assets/common/images/default.jpg
