欢迎光临
我们一直在努力

独角数卡发卡系统 基于LNMP环境部署安装教程

独角数卡.jpg

说明: 独角数卡是一个功能较为完善且强大的开源发卡系统,框架来自 laravel/framework 后端采用 laravel-admin 前端UI使用的是 layui。支付接口已集成:支付宝当面付、支付宝 PC 支付、支付宝手机支付、 payjs 微信扫码、 Paysapi 支付宝微信支付宝/微信、码支付 支付宝微信QQ/支付宝/微信、微信企业扫码支付、 Paypal 支付 默认美元默认美元和全网易支付支持 针对彩虹版针对彩虹版,我们可以使用独角数卡搭建我们自己的发卡平台!

界面截图

独角数卡截图-1.jpg
独角数卡截图-2.jpg
独角数卡截图-3.jpg

环境准备

注: 本教程基于军哥LNMP一键包进行安装部署,默认终端支持php-cli 且默认已安装fileinfo扩展,redis可以使用LNMP包内自带的addons.sh 进行一键安装。而关于开启相关函数需要查找php.ini 文件中找到disable_functions移除禁用函数列表中的 putenvproc_openpcntl_signalpcntl_alarmprocgetstatus

## 基本环境要求
- (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

安装部署

建议直接在项目的 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

使用nanovim编辑工具修改配置文件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免签地址

关于支付网关对接的部分,喵斯基部落不考虑补充请自行谷歌。

赞(0) 打赏
未经允许不得转载:老赵部落 » 独角数卡发卡系统 基于LNMP环境部署安装教程
data-ad-format="auto" data-full-width-responsive="true">