通过Notion查看本文
本文同步发布在j000e.com

更新:不要使用阿里云香港,其他香港服务器我认为也不稳妥

服务器因“涉及发布传播欺诈类违法违规内容”彻底被阿里云关停了,说明删除阿里云盾是没用的,无法申诉解封(要营业资质),不给退费,不能备份数据,白瞎了机器和心血,劳民伤财。文末补放上相关截图和从工单要来的咩咩超市遗照一张。

前言

一直想有个自己的发卡网站,试着卖点杂七杂八,终于在开学前这段空闲时间着手去做了,ZFAKA之前有所耳闻但是看起来不维护了,GitHub上发卡平台项目很多,我从中挑了一个Star比较多的,就是这个独角数卡https://github.com/assimon/dujiaoka

最开始我使用LNMP一键脚本作为环境去搭建,但始终没能成功,至今不知道原因,遇到了各种问题包括PHP版本和Laravel不匹配(PHP应为7.4)等,最后卡在了网页安装界面上,报错如图纪念一下:

问了一下TG群但是大家都要收费解答所以换了宝塔作为环境,项目中教程介绍也更加详细,另外心理作用感觉国内版宝塔不干净且还要注册账号,所以用了宝塔海外版aaPanel,不需要注册,干净许多。

系统用的是Ubuntu 20.04 LTS

服务器1C1G香港

安装环境

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

防火墙开端口

VPS后台都会有防火墙端口设置,以阿里云举例,给面板添加个TCP的7800口:

安装环境

登录面板后,弹出默认安装的内容,选择如图即可:

  • 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
将以下函数删除:

  • putenv
  • proc_open
  • pcntl_signal
  • pcntl_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/shop.j000e.co/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口

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

让邮箱转发所有邮件

支付对接

对接方式有很多种,服务平台会从中收取佣金即费率。

另开一篇单独记录支付宝当面付申请流程→ 支付宝当面付申请流程

支付模式介绍

一方支付:点对点现金支付

例如,小白去买个面包,付了现金,一手交钱一手交货。这是最初的支付模式,就是点对点的直接交易过程。

二方支付:依托银行进行支付

例如,身处江苏的小白需要给远在重庆的小黑一笔资金,现今汇款已经非常方便,小白将钱存入银行账户,然后进行转账操作,通过银行就可以将资金给到小黑。这就是二方支付,银行是一个重要的媒介,依托银行的支付。

三方支付:资金由第三方担保平台结算完成交易

随着互联网的发展,出现了三方支付。例如,小白网购了一个产品,其资金不会直接转入卖家的账户,而是进入第三方担保平台,待小白收到产品确认没有任何问题,随即通知第三方担保平台,资金才会由第三方担保平台结算给卖家。某宝最初是以“第三方担保模式”解决网络交易中的资金安全问题,直到2011年首批支付牌照的下发,第三方支付公司出现。

四方支付:也叫聚合支付,是基于三方支付的拓展

因为所有的第三方支付公司都是独有的支付通道,例如支付宝,微信,京东等等,就会造成用户需要开设各类支付通道的账户,为了支付的便捷,出现了四方支付。

四方支付属于三方支付的拓展,简单来说,就是集成多个三方支付接口,开放给个人和商家。

第四方支付平台分2种:一种是易支付,平台参与结算,也就是资金经过平台手中(二清),有跑路风险;另一种是扫码支付,资金即时到达用户账户,平台不参与结算,用户只需在平台预存手续费。

支付方式简述


当面付是支付宝的签约功能,只需要提供店铺门牌和内景照片即可,虽然有交易额限制,但作为个人商家足够用了,上传与支付宝账号同名营业执照会解除限制,这个方式是首选中的首选,除了不好申请没有缺点,具备完美的稳定性和官方的api回调。

码支付和易支付是两种支付方式,有很多商家提供这两种方式的付费服务,但分别存在不稳定、跑路和需要营业执照等弊端,而且平台费率不低。

码支付与易支付最大的区别就是码支付是上传自己的收款二维码收款,你的用户付款,款项是直接打到您自己的收款二维码号上的,而易支付是则是平台收款,金额满一定量可在平台上提现,这种二清的模式存在大量跑路案例。

码支付需要挂软件,有提供免挂服务的,原理是监听收款通知然后回调,对接易支付的无需挂软件。

v免签,paysapi,payjs等开源项目和服务商在网上都可以搜到,但是都跑路或者停止维护了。

除此之外还有stripe,PayPal,加密货币等支付平台,不做赘述。

综上支付宝当面付是唯一一种兼具了安全性(资金实时到账自己钱包)和稳定性(不用挂软件不怕风控不怕停更和跑路)的低费率(0.6%)方式。

隐藏脚注 Powered by @独角数卡

编辑resources/views/unicorn/layouts/_footer.blade.php 将脚注内容删除或注释起来,如:

<!--Powered by:<a href="http://dujiaoka.com">@独角数卡</a>-->

优化页面速度

商品图片可以统一使用webp格式并尽量压缩控制在个位数KB水平。

Cloudflare新建规则启用缓存相关设置和Rocket Loader等工具。

卸载阿里云安全中心 | 安骑士

如果售卖的商品擦边或者不合法,注意上线前要卸载阿里云安全中心Agent,详细请参考→ 卸载阿里云盾|安骑士|云安全中心Agent|Aegis

服务器涉及发布传播欺诈类违法违规内容被关停&申诉解封无效




自定义图标,favicon,背景图

在系统设置-站点模板中,可以看到独角数卡有三种主题可选,分别是默认的unicorn, Luna和hyper。

这里以Luna举例,其他主题同理。

luna背景图:/www/wwwroot/shop.j000e.co/public/assets/luna/img/background.png

luna和hyper的网站图标(favicon) 32X32:/www/wwwroot/shop.j000e.co/public/assets/style/favicon.ico

默认unicorn的网站图标(favicon) 32X32:/www/wwwroot/shop.j000e.co/public/favicon.ico

默认商品图片 512x512(网站 LOGO 共享此图,与后台自定义 LOGO 和商品图片不冲突): /www/wwwroot/shop.j000e.co/public/assets/common/images/default.jpg

THE END
最后修改:2023 年 06 月 05 日 00 : 13
本文链接:https://www.j000e.com/websites/Unicorn-payment-mail-conf-on-aaPanel.html
版权声明:本文『独角数卡搭建+支付对接+邮箱配置(基于国际版宝塔aaPanel)』为『Joe』原创。著作权归作者所有。
转载说明:独角数卡搭建+支付对接+邮箱配置(基于国际版宝塔aaPanel) || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:June 5, 2023