nginx: [emerg] bind() to 0.0.0.0:443 failed(98:Address already in use)  

先查看端口占用 netstat -ntlp 杀死进程 fuser -k 80/tcp fuser -k 443/tcp 重启nginx service nginx restart

Posted:2020-02-05  By vilay

Centos 7 yum 安装php7.4  

1.安装源 yum install epel-release yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 2.安装yum管理工具 yum install yum-utils 3. 查看php yum search php73 yum search php74 4.安装php yum install php74-php-gd php74-php-pdo php74-php-mbstring php74-php

Posted:2020-02-04  By vilay

Centos 安装autoreconf  

yum -y install install autoconf automake libtool

Posted:2020-01-15  By vilay

Centos 查看udp端口是否开启  

安装nc工具 yum install -y nc 测试 nc -vuz 127.0.0.1 51038

Posted:2020-01-15  By vilay

RabbitMQ(五)- 远程过程调用(RPC)  

在之前教程中我们介绍了如何使用工作队列(work queue)在多个工作者(woker)中间分发耗时的任务。 可是如果我们需要将一个函数运行在远程计算机上并且等待从那儿获取结果时,该怎么办呢?这就是另外的故事了。这种模式通常被称为远程过程调用(Remote Procedure Call)或者RPC。 这篇教程中,我们会使用RabbitMQ来构建一个RPC系统:包含一个客户端和一个RPC服务器。现在的情况是,我们没有一个值得被分发的足够耗时的任务,所以接下来,我们会创建一个模拟RPC服务来返回斐波

Posted:2019-12-31  By vilay

RabbitMQ(五)- 主题交换机(Topics)  

在前面,我们改进了我们的日志系统。我们使用直连交换机替代了扇型交换机,从只能盲目的广播消息改进为有可能选择性的接收日志。 尽管直连交换机能够改善我们的系统,但是它也有它的限制 —— 没办法基于多个标准执行路由操作。 在我们的日志系统中,我们不只希望订阅基于严重程度的日志,同时还希望订阅基于发送来源的日志。Unix工具syslog就是同时基于严重程度-severity (info/warn/crit…) 和 设备-facility (auth/cron/kern…)来路

Posted:2019-12-31  By vilay

RabbitMQ(四)- 路由  

在前面,我们实现了一个简单的日志系统。可以把日志消息广播给多个接收者。 在这边,我们新增一个功能 —— 使得它能够只订阅消息的一个字集。例如,我们只需要把严重的错误日志信息写入日志文件(存储到磁盘),但同时仍然把所有的日志信息输出到控制台中。 绑定(Bindings) 在前面的示例中,我们已经创建绑定。 $channel->queue_bind($queue_name, 'logs'); 绑定(binding)是指交换机(exchange)和队列(queue)的关系。可以简单理解为:这个队

Posted:2019-12-31  By vilay

Docker 安装 ElasticSearch  

安装 拉取镜像 docker pull elasticsearch:7.5.1 启动 docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.5.1 指定名称为es,暴露端口 9200,9300到宿主机 修改跨域配置 docker exec -it es bash vi config/elasticsearch.yml 增加配置 http

Posted:2019-12-31  By vilay

PHP 通过反射获取类的方法以及参数  

比如一个PHP的扩展,你知道类名,但是不知道具体有哪些方法可以使用,可以使用反射试试。 示例: $reflection = new ReflectionClass ($class_name); $methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC + ReflectionMethod::IS_PROTECTED + ReflectionMethod::IS_PRIVATE); //遍历所有的方法 echo "

Posted:2019-12-31  By vilay

Git 子模块移除  

在vendor/包下有个包包含了子模块,一直无法提交。 我先进入目录把git相关的移除,但是还是无法提交。 再把缓存清除 git rm --cached vendor/package 重新提交就ok了。

Posted:2019-12-31  By vilay

RabbitMQ(三)- 发布/订阅  

在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker)。在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers)。这种模式被称为“发布/订阅”。 为了描述这种模式,我们将会构建一个简单的日志系统。它包括两个程序——第一个程序负责发送日志消息,第二个程序负责获取消息并输出内容。 在我们的这个日志系统中,所有正在运行的接收方程序都会接受消息。我们用其中一个接收者(receiver)把日志写入硬盘中,另外一个接受者(receiver)把日

Posted:2019-12-28  By vilay

RabbitMQ(二)- 工作队列  

工作队列 工作队列(又称:任务队列——Task Queues)是为了避免等待一些占用大量资源、时间的操作。当我们把任务(Task)当作消息发送到队列中,一个运行在后台的工作者(worker)进程就会取出任务然后处理。当你运行多个工作者(workers),任务就会在它们之间共享。 这个概念在网络应用中是非常有用的,它可以在短暂的HTTP请求中处理一些复杂的任务。 生产者 (task.php) <?php require_once __DIR__ . '/vendor/autoload.php

Posted:2019-12-28  By vilay

RabbitMQ(一)- 简单队列  

客户端 composer require php-amqplib/php-amqplib 生产者 send.php 代码 <?php require_once __DIR__ . '/vendor/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; require_once __DIR__ . '/config.php'; $connection

Posted:2019-12-28  By vilay

Docker 安装RabbitMQ  

1. 查找镜像 docker search rabbitmq 2. pull镜像 docker pull rabbitmq 如果需要控制台(方便查看数据) docker pull rabbitmq:management 3. 运行镜像 docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672 rabbitmq:management 如果都成功之后,可以通过地址http://localhost:15672/查看MQ的数据。账号:guest

Posted:2019-12-27  By vilay

Linux 查看文件权限  

命令 stat -c '%A %a %n' filename 结果 -rw-r--r-- 644 authorized_keys

Posted:2019-12-27  By vilay