Mac安装PHP7.4及扩展

安装PHP7.4brew install php@7.4https://formulae.brew.sh/formula/php@7.4安装扩展$ pecl install mongodb $ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed

- 阅读全文 -

被动的创业者

当初刚开始做meedu想法很简单,我认为开源是可以一辈子去做的事情,如果认真的维护一个开源项目并一辈子去做这件事情,那么其实很简单+幸福。但是开源是理想,生活很现实。想要在杭州生活下去,必须得有收入。于是开始不断的丰富收费的功能,发展了第一批付费的用户。但是到这里,问题出现了,用户反馈界面不是很好看,我也发现这个问题。于是找到一位志同道合的设计师一起干。既然一起干那就要创造更多的收入,于是,客户越

- 阅读全文 -

Laravel日志文件按照日期每天生成一份而不是一个laravel.log文件

laravel默认的日志文件是存储在storage/logs/laravel.log这个文件,如果我们想要配置日志按照日期每天生成一个文件的话,可以修改 config/logging.php 文件中的: 'default' => env('LOG_CHANNEL', 'stack'),可以将这里的default的值改为 daily 或者在.env文件中添加一个配置:LOG_CHANNEL=d

- 阅读全文 -

执行composer命令报错:PHP Fatal error: Allowed memory

有的时候项目依赖比较多,在执行composer required 安装依赖的时候,会报错不足的错误:PHP Fatal error: Allowed memory出现这个情况的话,可以设置composer执行内存无限制,也就是这样:COMPOSER_MEMORY_LIMIT=-1 composer require xxx/xxx这样的话,内存使用就不会有限制了。当然这里有一个前提,那就是你的机器内

- 阅读全文 -

PHP多进程讲解(八):匿名管道通信之proc_open

上一篇文章中,我们讲解了利用popen函数进行匿名管道通信,不过有个问题,就是该函数只能实现单向通信,也就是同时只能打开读通道或者写通道。今天要介绍的函数 proc_open 则可以实现双向通信。在观看本文章之前,请先去了解下函数 proc_open 的基本用法,链接地址:proc_open首先,我们创建 pipe-process.php 文件,内容如下:<?php $pid = getm

- 阅读全文 -

PHP中的标准输入STDIN,标准输出STDOUT,标准错误STDERR

因为PHP是专注WEB开发的领域的,所以很大一部分都是CRUD的操作,对于标准输入流,输出流,错误流这一块并不是很熟悉。这也就是很多PHPer的基础不行的所在。如果想要深入的学习PHP的话,那么这肯定是必须要掌握的。首先,我们得先了解下,什么是标准输入流,输出流,错误流?它们是干什么的?有什么用?说一个比较容易理解的解释。如果我们要执行一个命令 command,如果我们需要给这个命令输入一些自定义

- 阅读全文 -

PHP多进程讲解(七):匿名管道通信之popen

好久没写技术文章了,最近一直在研究DEFI,做投资的话还是需要研究下的相关板块好确定自己的投资思路,题外话。回到正文,今天分享下PHP的匿名管道通信。在开始之前,我们先了解下什么是匿名管道:具体可以看这篇文章:linux进程间通信现在,假设你已经充分了解了管道及匿名管道。我们知道,匿名管道相比较有名管道有一个最大的区别就是只能用在具有血缘关系的进程之间。前面,我们对于子进程的创建及使用做了简单的介

- 阅读全文 -

为什么说 DEFI 的牛市才刚开始?

今年 DEFI 的发展得到了迅速的提升,自从3月12日之后,DEFI 的锁仓量已经翻了好几番,一些 DEFI 应用的代币也都翻了好多倍,像 Maker 的 MKR 代币的市值截止到本文书写的时间,市值达到 4.55 亿美元,而 Maker 的抵押已经达到了 6亿+美元,DEFI 市场总抵押已经突破30亿美元。DEFI 的基础设施 Link 的市值更是达到了25亿美元。现在市场的上的FOMO情绪不断

- 阅读全文 -

PHP多进程讲解(六):进程通信之信号量

信号量来看下百科的解释。信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore V

- 阅读全文 -

PHP多进程讲解(五):进程通信之共享内存通信

前面几篇文章,我们介绍了PHP的多进程创建及一些进程的特殊状态。今天这篇文章我们来讲解下进程间的通信。背景前面我们也提到过,在 fork 执行之后,父进程和子进程的内存空间是独立的了,所以它们是无法直接进行通信的。但是复杂的应用需求要求我们需要父进程与子进程可以相互通信,了解各自的状态好协调运行完成任务。通信的方式在 linux 中,进程间的通信主要有下面几种:管道消息队列共享内存信号量socke

- 阅读全文 -

PHP多进程讲解(四):信号注册与处理

信号是进程间通信的方式之一。比如子进程执行完成,则会发送 SIGCHLD 给父进程,告诉父进程,我执行完啦。在linxu系统中,我们可以执行下面的命令来看看系统有哪些进程间的信号:kill -l HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU

- 阅读全文 -

PHP多进程讲解(三):僵尸进程

Q:什么是僵尸进程? A:子进程在结束运行后,父进程未进行相应处理,就成为了僵尸进程。僵尸进程的产生有几下几种原因:父进程未 wait 子进程。子进程发送信号 SIGCHLD 给父进程,但是父进程没有理睬。其它原因总之,父进程不负责的情况下,就可能会产生僵尸进程。下面我们用代码来演示下:<?php $pid = pcntl_fork(); if ($pid === -1) { e

- 阅读全文 -