说明: 独角数卡是一个功能较为完善且强大的开源发卡系统,框架来自 laravel/framework 后端采用 laravel-admin 前端UI使用的是 layui。支付接口已集成:支付宝当面付、支付宝 PC 支付、支付宝手机支付、 payjs 微信扫码、 Paysapi (支付宝/微信)、码支付 (QQ /支付宝/微信)、微信企业扫码支付、 Paypal 支付 (默认美元)和全网易支付支持 (针对彩虹版),我们可以使用独角数卡搭建我们自己的发卡平台!查看 -> github项目地址
界面截图
环境准备
注: 本教程基于军哥LNMP一键包进行安装部署,默认终端支持php-cli
且默认已安装fileinfo
扩展,redis
可以使用LNMP包内自带的addons.sh
进行一键安装。而关于开启相关函数需要查找php.ini
文件中找到disable_functions
移除禁用函数列表中的 putenv
、proc_open
、pcntl_signal
、pcntl_alarm
、procgetstatus
## 基本环境要求
- (PHP + PHPCLI) version >= 7.2
- Nginx version >= 1.16
- MYSQL version >= 5.6
- Redis (高性能缓存服务)
- Supervisor (一个python编写的进程管理服务)
- Composer (PHP包管理器)
- Linux/Win (Win下未测试,建议直接Linux)
## PHP环境要求
1. 必须安装fileinfo扩展、redis扩展
2. 终端需要支持php-cli,测试php -v(版本必须一致)
3. 需要开启的函数:putenv,proc_open,pcntl_signal,pcntl_alarm
4. 建议安装opcache扩展(非必需)
安装 composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
安装部署
注意,本教程可能不适用于dujiaoka v2
,本文内容基于v1.8.2
版本
建议直接在项目的 release 页面下载包含依赖的 build 版本尽可能减少产生错误的可能性。
# 定位到网站根目录
cd /home/wwwroot/www.example.com
# 下载作者提供的版本为v1.8.2的build包文件,注意本教程不适用 dujiaoka v2.0.0
wget --no-check-certificate https://github.com/assimon/dujiaoka/releases/download/v1.8.2/v1.8.2_build.tar.gz
# 解压
tar -xzf v1.8.2_build.tar.gz
# 移动包含隐藏的所有文件到网站根目录
mv dujiaoka_build/{,.}* ./
# 更改文件夹所属用户和用户组
chown -R www:www ./*
# 赋予文件夹读写权限
chmod -R 755 public bootstrap storage
创建数据库
# 输入密码进入mysql
mysql -u root -p
# 创建一个数据库,例如dujiaoka
create database dujiaoka;
修改项目配置文件
# 编辑配置文件
vi .env.example
必须确保 MySQL 数据库配置、Redis 配置、发件人邮件服务配置等正确无误(正式上线后一定要将.env
配置里面的APP_DEBUG
设置为false
)
# 网站url
APP_URL=https://www.example.com
# 数据库配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=数据库名
DB_USERNAME=数据库用户
DB_PASSWORD=数据库密码
# redis缓存配置
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=无密码填null
REDIS_PORT=6379
# 邮件服务配置
MAIL_DRIVER=smtp
MAIL_HOST=smtp服务器
MAIL_PORT=587
MAIL_USERNAME=邮箱账号
MAIL_PASSWORD=邮箱密码
MAIL_FROM_ADDRESS=发件人邮箱地址
MAIL_FROM_NAME=发件人名称
MAIL_ENCRYPTION=ssl
修改完成后,重命名配置文件
mv .env.example .env
导入数据库
# 网站www.example.com根目录下运行,数据导入成功会有提示
php artisan dujiao install
配置 Nginx
很多小伙伴安装完成启动时常常遇到 500 错误 ,除了没有正确赋予文件或文件夹权限,绝大部分因为Nginx配置问题导致。
修改网站对应的nginx配置文件:
vi /usr/local/nginx/conf/vhost/www.example.com.conf
请参考下面的配置:
关于免费SSL域名证书申请 -> 点此查看
server{
listen 80;
server_name www.example.com;
root /home/wwwroot/www.example.com/public;
index index.php index.html index.htm;
rewrite ^/(.*)$ https://www.example.com/$1 permanent;
}
server {
# 监听 HTTP 协议默认的 [443] 端口。
listen 443;
# 绑定主机名 [www.example.com]。
server_name www.example.com;
# 服务器站点根目录 [/www.example.com/public]。
root /home/wwwroot/www.example.com/public;
index index.html index.htm index.php;
ssl_certificate /usr/local/nginx/ssl/fullchain.cer;
ssl_certificate_key /usr/local/nginx/ssl/example.com.key;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /usr/local/nginx/ssl/fullchain.cer;
resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;
resolver_timeout 2s;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";
# 添加几条有关安全的响应头;与 Google+ 的配置类似,详情参见文末。
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
# 指定字符集为 UTF-8
charset utf-8;
# Laravel 默认重写规则;删除将导致 Laravel 路由失效且 Nginx 响应 404。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 将 [404] 错误交给 [/index.php] 处理,表示由 Laravel 渲染美观的错误页面。
error_page 404 /index.php;
# URI 符合正则表达式 [\.php$] 的请求将进入此段配置
location ~ \.php$ {
# 配置 FastCGI 服务地址,可以为 IP:端口,也可以为 Unix socket。
fastcgi_pass unix:/tmp/php-cgi.sock;
# 配置 FastCGI 的主页为 index.php。
fastcgi_index index.php;
# 配置 FastCGI 参数 SCRIPT_FILENAME
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
#配置 FastCGI 参数 PHP_ADMIN_VALUE
fastcgi_param PHP_ADMIN_VALUE "open_basedir=NULL";
# 引用更多默认的 FastCGI 参数。
include fastcgi_params;
}
# 通俗地说,以上配置将所有 URI 以 .php 结尾的请求,全部交给 PHP-FPM 处理。
# 除符合正则表达式 [/\.(?!well-known).*] 之外的 URI,全部拒绝访问
# 也就是说,拒绝公开以 [.] 开头的目录,[.well-known] 除外
location ~ /\.(?!well-known).* {
deny all;
}
}
配置完成后,重启nginx
systemctl restart nginx.service
若没有其他报错,此时打开浏览器输入 https://www.example.com
可以正常访问前台;后台地址https://www.example.com/admin
默认管理账号/密码admin/admin
。
使用 Supervisor 守护进程
安装 Supervisor:
# CentOS系统
yum install supervisor -y
# Debian/Ubuntu系统
apt-get install supervisor -y
使用nano
或vim
编辑工具修改配置文件supervisord.conf
,路径默认为 /etc/supervisord.conf
nano /etc/supervisord.conf
在配置文件末尾追加以下内容:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/wwwroot/www.example.com/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www
numprocs=4
redirect_stderr=true
stdout_logfile=/home/wwwlogs/worker.log
注: user
需要与 nginx.conf
文件中的 user
保持一致;注意 command
使用自己网站根目录(绝对路径),如果 php
有版本之分可用 whereis
命令查找并使用对应版本的完整路径;numprocs
指令让 Supervisor 运行4个 queue:work
进程并监视它们,如果失败的话会自动重启,进程数量请根据CPU负载情况设定。
配置文件创建好了之后,可以使用如下命令更新Supervisor配置并开启进程:
supervisorctl reread
supervisorctl update
supervisorctl start laravel-worker:*
注: 通过改动.env
文件配置邮箱发信信息,则需要执行 supervisorctl reload
命令重启Supervisor进程才能使服务生效。
其他
网关接口对应配置表:
支付选项 | 商户id | 商户key | 商户密钥 |
---|---|---|---|
支付宝官方(当面付、PC、wap) | 支付宝开放平台应用appid | 支付宝公钥 | 商户私钥 |
payjs | payjs商户号(mchid) | 空 | payjs密钥 |
码支付 | 平台商户号 | 码支付请求网址 | 密钥 |
微信官方 | 公众号或小程序appid | 商户号 | 商户api密钥 |
麻瓜宝 | 商户密钥 | 空 | 任意字符串 |
paysapi | 商户号 | 空 | 密钥 |
易支付 | 易支付 | 易支付请求网址 | 密钥 |
V免签 | V免签通讯密钥 | 空 | V免签地址 |
关于支付网关对接的部分,喵斯基部落不考虑补充请自行谷歌。
相关推荐
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/3826.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。