票务系统微信小程序后端(一)
本后端 git 地址:gitee.com/jin_mg/peng.git
基础准备工作:
1. 通过微信公众号注册一个小程序,复用公众号认证信息(省 300 元认证费)。
进入小程序的后台拿到小程序的 AppID 和 AppSecret 备用。
2. 购买一台 ubuntu20.04 的云服务器,安全接口中先全部放通端口,sh 命令安装完 laravel 需要的服务环境,包含 nginx、php、mysql 或 mariadb
可下载下面这个 shell 脚本,把里面的 php7.2 改成 php8.0 或更高版本执行 shell 文件就好了。
github.com/JellyBool/laravel-serve...
比如,我们在 ubuntu 上 vim 新建个 service.sh 把内容粘贴上然后执行下面的命令安装:
sh service.sh
3. 数据库
我安装了 mariadb,用下面的三行命令创建个数据库备用
create database 数据库名 charset utf8mb4;
create user 用户名@'%' identified by '密码';
grant all privileges on 数据库名.* to 用户名@"%";
4. 安装 laravel
我用的苹果,在本机按照文档部署一个 laravel 的站点,我之前装了 valet,可参考文档安装上 Valet 集成环境《Laravel 9 中文文档》
composer create-project laravel/laravel peng
改下 config 目录下 app.php 里的
'timezone' => 'Asia/Shanghai',
'locale' => 'zh-CN',
编辑.env 文件配置好数据库信息,里面的 APP_DEBUG=false 在云服务上一定设置为 false 否则后端就像光着腚一样。
我在浏览器中通过 peng.test 就能访问本机站点了。
5. 创建一个 git 库,把代码 pull 到库里,然后在 ubuntu 上克隆下来部署好
命令行到站点目录下,创建 git
git init
git add .
git commit -m "first commit"
git remote add origin 你创建的库地址
git push -u origin "master"
6. 注册个域名或者用自己备案过的二级域名解析到 ubuntu 云服务器的公网 ip,申请一个 ssl 免费证书部署到 nginx 的配置文件中,然后重启 nginx 就可以访问云服务器的 API 接口提供给小程序前端使用了。
我们的 nginx 配置文件路径:/etc/nginx/sites-available/default
这里只放一个 nginx 的配置文件实例吧:
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/peng/ssl秘钥存放文件.pem;
ssl_certificate_key /etc/letsencrypt/live/peng/ssl秘钥存放文件.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 114.114.114.114 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
client_max_body_size 50M;
root /var/www/peng/public;
index index.php index.html index.htm;
server_name 你的域名;
location / {
try_files $uri $uri/ /index.php?$query_string;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
}
通过 sudo service nginx restart 命令重启下 nginx 服务
将站点目录下的 bootstrap、storage 两个文件夹 777 权限
sudo chmod -R 777 bootstrap
sudo chmod -R 777 storage
通过域名就可以访问站点了。
7. 接下来就展开后端接口的开发
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: