分类 PHP 下的文章

之前关于Docker的文章
《使用Docker部署LNMP环境 —— 镜像,容器与网络》
《使用Docker部署LNMP环境 —— Dockerfile》
《使用Docker部署LNMP环境 —— Docker-compose》
通过 命令 -> Dockerfile -> docker-compose 这样一个流程来讲解如何更简便地通过Docker搭建项目环境。

但是实际项目中使用Docker,像PHP等软件可能会在构建镜像时,RUN有一大堆更新apt、安装扩展等命令要跑。
而这些命令和操作可能会受网络波动导致各种问题,增加不确定性。

DockerHub

地址: https://hub.docker.com
Docker官方有像gitlab一样提供仓库空间上传自己构建的镜像。
先在本地构建好镜像,然后再上传到DockerHub仓库。
使用时在Dockerfile或docker-compose.yml中指定自己的仓库,然后运行容器即可。

- 阅读剩余部分 -

简介

JWT全程Jason Web Token,主要用在移动端登录与权限验证的一种方案。
由于移动端无法使用传统Web的Session会话技术,一般会使用JWT或者其他类似方案。

使用

客户端提供账户密码等信息,后端验证成功后返回token,后续调用Api时需要将token放在请求头上(视为已登录状态)s。 token具有时效性,可以在失效前使用旧token换取新token。

- 阅读剩余部分 -

接上篇,本片安装Nginx,最后顺便说下yum安装MariaDB(MySQL)和PHP调用MySQL时注意事项。

准备

假设开始目录是/home

更新yum

yum update -y

安装所需依赖

yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel gd-devel    

如果已经按照上一篇安装过php的,只需安装以下所需依赖

yum -y install gcc gcc-c++ automake pcre pcre-devel 

- 阅读剩余部分 -

前期准备

假设开始目录在/home

更新下yum

yum update -y 

安装依赖

yum install -y \
bzip2 bzip2-devel \
libcurl-devel \
gd gd-devel \
gmp gmp-devel \
libmcrypt libmcrypt-devel \
libxml2 libxml2-devel \
xmlrpc-c xmlrpc-c-devel \
openssl openssl-devel \
readline readline-devel \
libxml2 libxml2-devel \
libxslt libxslt-devel \
zlib zlib-devel \
libevent libevent-devel \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel

- 阅读剩余部分 -

需求

用户每日点击签到,获得x积分;用户连续签到y天后额外获得z积分。
x,y,z分别由后台配置。
需要记录用户今天是否已签到当前连续签到数本月签到列表数据供前端展示

表结构

CREATE TABLE `sign_in_logs` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
      `year` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '年',
      `month` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月',
      `date_list` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '签到日期列表(按位储存)',
      `count` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '累计连续签到的天数,到一定数量后清零',
      `last_date` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '上一次签到的日期',
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `sign_in_logs_user_id_index` (`user_id`),
      KEY `sign_in_logs_year_month_index` (`year`,`month`),
      KEY `sign_in_logs_date_list_index` (`date_list`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

- 阅读剩余部分 -