<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qiuqiuLovecode的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qiuqiuLovecode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qiuqiuLovecode]]></copyright><item><title><![CDATA[手动执行命令不会报错，通过定时任务执行报错PHP Warning: PHP Startup: Unable to load dynamic library ‘oci8‘]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139505070</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139505070</guid><author>qiuqiuLovecode</author><pubDate>Thu, 06 Jun 2024 17:01:15 +0800</pubDate><description><![CDATA[当手动执行命令时没有报错，但通过定时任务执行时出现错误，可能是由于环境变量或执行上下文的差异引起的。通常情况下，PHP 错误日志位于指定的错误日志文件中，你可以在 php.ini 文件中找到配置项。：在定时任务中设置完整的环境变量，包括 PATH 和其他必要的环境变量。：确保在定时任务中指定命令的完整路径，包括 PHP 解释器和要执行的 PHP 脚本。：确保定时任务的执行上下文与手动执行命令时的上下文相同。：确保定时任务的用户具有执行脚本所需的所有权限，包括读取动态库的权限。来确定错误日志文件的位置。]]></description><category></category></item><item><title><![CDATA[thinkphp6 queue队列的maxTries自定义]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139347894</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139347894</guid><author>qiuqiuLovecode</author><pubDate>Fri, 31 May 2024 11:44:16 +0800</pubDate><description><![CDATA[为什么要重写类，自己要点Queue::push(),查看源码，因为我的项目通篇用的都是用的类名，最简单的是重写，当然你也可以自己在push的时候写对象，对象里面定义属性$tries=10;前景需求：在我们用队列的时候发现maxtries的个数时255次，这个太影响其他队列任务。CustomDataBase（我用的mysql数据库存放的队列）重写__make 和createPlainPayload方法。我目前使用的thinkphp版本是6.1。第二步修改queue.php文件的配置。第一部定义一个新的类。]]></description><category></category></item><item><title><![CDATA[thinkphp6 自定义的查询构造器类]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139325868</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/139325868</guid><author>qiuqiuLovecode</author><pubDate>Thu, 30 May 2024 15:36:22 +0800</pubDate><description><![CDATA[thinkphp6 自定义的查询构造器类]]></description><category></category></item><item><title><![CDATA[模型查询器在使用别名后不能使用tp6]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/138615873</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/138615873</guid><author>qiuqiuLovecode</author><pubDate>Thu, 09 May 2024 15:21:12 +0800</pubDate><description><![CDATA[在我们定义了模型的查询器时，再通过模型进行连表加别名的时候，使用查询器，查询器会没办法使用；以上两种方式都可以，个人建议使用__TABLE__，因为这个查询器可以通用。那我们可以将查询器前缀增加表名或者__TABLE__那为什么这样可以呢？（本人使用的是mysql）]]></description><category></category></item><item><title><![CDATA[php 编译安装oracel扩展]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/138132406</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/138132406</guid><author>qiuqiuLovecode</author><pubDate>Tue, 23 Apr 2024 17:10:22 +0800</pubDate><description><![CDATA[按提示，把 extension=oci8.so 添加到 /etc/php/8.2/fpm/php.ini 和 /etc/php/8.2/cli/php.ini 中，可通过 php -m 或 echo phpinfo() 查看。按提示输入：instantclient,/opt/oracle/instantclient_21_13//opt/oracle/instantclient_21_13/是我安装的oracle客户端的路径。本人文件所放的位置是（opt/oracle）1，需要下载基础包和sdk。]]></description><category></category></item><item><title><![CDATA[php 数组中的元素进行排列组合]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/135414711</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/135414711</guid><author>qiuqiuLovecode</author><pubDate>Fri, 05 Jan 2024 17:39:29 +0800</pubDate><description><![CDATA[取 2 个元素的排列组合数为 P(4, 2) = 4!/ (4 - 2)!取 3 个元素的排列组合数为 P(4, 3) = 4!/ (4 - 3)!取 4 个元素的排列组合数为 P(4, 4) = 4!/ (4 - 4)!取 1 个元素的排列组合数为 P(4, 1) = 4!/ (4 - 1)!需求背景：计算出数组['A','B','C','D']各种排列组合，希望得到的是数据如下图。// 排列组合了所有的数据后，一般情况下，我们都想着验证下个数是否正确，下面就需要另外一个函数。]]></description><category></category></item><item><title><![CDATA[2020教师资格证重点梳理]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/109112510</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/109112510</guid><author>qiuqiuLovecode</author><pubDate>Fri, 16 Oct 2020 11:03:15 +0800</pubDate><description><![CDATA[教师资格证考试重点大全







更多内容请加微信autumn030-orange
]]></description><category></category></item><item><title><![CDATA[portainer文档]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/108579651</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/108579651</guid><author>qiuqiuLovecode</author><pubDate>Mon, 14 Sep 2020 15:12:21 +0800</pubDate><description><![CDATA[portainer文档收集
https://www.portainer.io/documentation/deploy-portainer-docker-swarm/
https://www.icode9.com/content-4-671296.html

]]></description><category></category></item><item><title><![CDATA[Dockerfile执行命令]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106428153</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106428153</guid><author>qiuqiuLovecode</author><pubDate>Fri, 29 May 2020 17:28:34 +0800</pubDate><description><![CDATA[RUN 和CMD 以及ENTRYPOINT

1，RUN :在Build构建时执行命令

2，ENTRYPOINT ：容器启动时执行命令

3，CMD： 容器启动后执行默认的命令或参数



《1》RUN --构建时运行


RUN yum install -y vim #Shell命令格式
RUN ["yum","install","-y","vim"] #Exec命令格式，推荐使用这种方式





《2》ENTRYPOINT --启动命令


ENTRYPOINT :用户在容器启动时执行的命令
Do.]]></description><category></category></item><item><title><![CDATA[DockerFile基础命令]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106427281</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106427281</guid><author>qiuqiuLovecode</author><pubDate>Fri, 29 May 2020 16:26:25 +0800</pubDate><description><![CDATA[1,FROM --基于基准镜像（建议使用官方的镜像），例如


FROM centos #制作基准镜像（基于centos:lastest）
FROM scrath #不依赖于任何基础镜像 base image


2，LABEL和MAINTAINER --说明信息


MAINTAINER mytest
LABEL version = "1.0"
LABEL description = "my-test"

3,WORKDIR --设置工作目录，没有则创建（尽量使用绝对路径）


例如：
WORKDIR /]]></description><category></category></item><item><title><![CDATA[yii2接口为何自动返回json格式和xml]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106281200</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106281200</guid><author>qiuqiuLovecode</author><pubDate>Fri, 22 May 2020 15:47:22 +0800</pubDate><description><![CDATA['components' =&gt; [
        'request' =&gt; [
            'class' =&gt; Request::class,
            'csrfParam' =&gt; "_csrf-{$moduleName}",
            'cookieValidationKey' =&gt; "{$moduleName}-{$cookieKey}",
            'parsers' =&gt; [
         ...]]></description><category></category></item><item><title><![CDATA[yii2-queue不写在bootstrap里面的方法]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106280569</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/106280569</guid><author>qiuqiuLovecode</author><pubDate>Fri, 22 May 2020 15:25:36 +0800</pubDate><description><![CDATA[console的配置文件中


return [
    'id' =&gt; 'app-console',
    'basePath' =&gt; dirname(__DIR__),
    'bootstrap' =&gt; ['log'],
    'controllerNamespace' =&gt; 'console\controllers',
    'controllerMap' =&gt; [
        'init-auth' =&gt; [
            'class' ]]></description><category></category></item><item><title><![CDATA[gitlab CI 自动发布代码]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/105580429</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/105580429</guid><author>qiuqiuLovecode</author><pubDate>Fri, 17 Apr 2020 16:04:04 +0800</pubDate><description><![CDATA[1，前置条件

有两个不同的服务器，一个是放gitlab（由于太穷买不起服务器，我用的官方的gitlab，https://gitlab.com/），一个用来放runner（还是因为太穷，我用本地电脑当runner的服务器）

1》gitlab创建远程仓库:php-test
2》安装runner（由于我用的本地电脑，所以安装的是windows版本的runner，安装链接：https://docs.g...]]></description><category></category></item><item><title><![CDATA[gitlab CI自动化部署代码文章集合]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/105557407</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/105557407</guid><author>qiuqiuLovecode</author><pubDate>Thu, 16 Apr 2020 14:31:40 +0800</pubDate><description><![CDATA[1，GitLab之gitlab-ci.yml配置文件详解

https://www.cnblogs.com/szk5043/articles/9854712.htmlhttps://www.jianshu.com/p/b69304279c5f
]]></description><category></category></item><item><title><![CDATA[laravel 用户登录自定义登录验证]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103902701</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103902701</guid><author>qiuqiuLovecode</author><pubDate>Thu, 09 Jan 2020 10:12:57 +0800</pubDate><description><![CDATA[laravel 的用户登录是在配置文件中的auth.php当中，

用户登录走的是


// web端用的
Auth::attempt()// 也就是对应的sessiongurad的attempt()方法
其中涉及到了UserProvider
// api用的
Auth::user()// 也就是对应的Tokengurad的user()方法
其中涉及到了UserProvider

web端api之...]]></description><category></category></item><item><title><![CDATA[laravel日志根据不同类型，进行不同文件存储]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103892238</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103892238</guid><author>qiuqiuLovecode</author><pubDate>Wed, 08 Jan 2020 15:31:23 +0800</pubDate><description><![CDATA[1，原因：因为涉及用到其他第三方的包，例如微信支付等，如果把日志还放在一起，很难查找

2，实现类


&lt;?php

namespace App\helpers;

use Illuminate\Foundation\Application;
use Monolog\Handler\RotatingFileHandler;
use Monolog\Logger;

/**
 * @metho...]]></description><category></category></item><item><title><![CDATA[进程管理之pm2]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103818613</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/103818613</guid><author>qiuqiuLovecode</author><pubDate>Fri, 03 Jan 2020 13:28:15 +0800</pubDate><description><![CDATA[pm2是一个进程管理工具,可以用它来管理你的node进程，并查看node进程的状态，当然也支持性能监控，进程守护，负载均衡等功能

pm2安装前提是先安装node.js

1、 pm2需要全局安装


$ npm install pm2@latest -g
# or
$ yarn global add pm2


2、进入项目根目录
2.1 启动进程/应用


 pm2 start app.js/...]]></description><category></category></item><item><title><![CDATA[gitlab使用钉钉接收仓库的推送消息]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/98478918</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/98478918</guid><author>qiuqiuLovecode</author><pubDate>Mon, 05 Aug 2019 10:05:09 +0800</pubDate><description><![CDATA[一，在钉钉中的操作

1，创建一个群组



点击群机器人，然后添加gitlab机器人



选择好后点击gitlab机器人设置复制webhook



此处钉钉的操作完成下面是gitlab上的操作

二，gitlab的操作

1，新建一个仓库‘my-test’（你必须是仓库的创建人才有权限操作webhook）



2，进入项目里面，my-test&gt;&gt;&gt;settings&gt;...]]></description><category></category></item><item><title><![CDATA[为什么tp5.1的middleware必须要有handle方法]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/90641763</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/90641763</guid><author>qiuqiuLovecode</author><pubDate>Tue, 28 May 2019 16:30:39 +0800</pubDate><description><![CDATA[1，在thinkphp\libary\think\Middleware中的add()方法有关


  /**
     * 注册中间件
     * @access public
     * @param  mixed  $middleware
     * @param  string $type  中间件类型
     */
    public function add($middlewa...]]></description><category></category></item><item><title><![CDATA[ssl证书部署指南]]></title><link>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/56003565</link><guid>https://blog.youkuaiyun.com/qiuqiuLovecode/article/details/56003565</guid><author>qiuqiuLovecode</author><pubDate>Tue, 28 May 2019 16:17:08 +0800</pubDate><description><![CDATA[1，首先检查是否监听443端口：netstat -tunlp | grep httpd

2，防火墙开起443端口（见Centos查看端口占用情况和开启端口命令）

3，将证书放到服务器上

4，配置ssl.conf（有的不叫ssl.conf），将文件路径放到相应的地方

打开下面的两行



5，查看配置虚拟主机中的端口是否有写



端口号一定要写上

6，重启apach

7，在浏览器中访问...]]></description><category></category></item></channel></rss>