搜索结果

  • Docker环境-部署lnmp环境1

    1 拉取镜像docker pull mysqldocker pull php:7.3-fpmdocker pull nginx2 创建容器# 1.启动MySQL容器:docker run -id --name=c_mysql --restart always -p 3306:3306 \-v /lnmp/mysql/conf:/etc/mysql/conf.d \-v /lnmp/mysql/logs:/logs \-v /lnmp/mysql/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 \mysql:latest# 2.启动PHP容器

  • 【Swoole系列2.3】TCP客户端2

    <?php// 连接TCP服务器$socket = stream_socket_client('tcp://120.79.16.128:9501', $errno, $errstr, 50);// 发送数据fwrite($socket, '我是一个php');// 接收数据$buffer = fread($socket, 9000);// 关闭连接fclose($socket);// 输出echo $buffer;注意:要在阿里云服务器的安全组配置中开放9501端口并且关闭防火墙。

  • 【Swoole系列2.2】TCP客户端1

    <?php// 构造方法$client = new Swoole\Client(SWOOLE_SOCK_TCP);// 连接到远程服务器if (!$client->connect('127.0.0.1', 9501, -1)) { exit("connect failed. Error: {$client->errCode}\n");}// 发送数据到远程服务器,必须在建立连接后,才可向对端发送数据$client->send("hello world\n");// 从服务器端接收数据echo $client->recv();// 关闭连接$client->c

  • 【Swoole系列2.1】TCP服务器

    <?php// 创建Server对象,监听全部地址。$server = new Swoole\Server('0.0.0.0', 9501);// 设置运行时的各项参数$server->set(array( 'worker_num' => 2, // 进程数 'max_request' => 50 // 每个进程最大接受请求数));// 监听连接进入事件。$server->on('Connect', function ($server, $fd) { echo "Client: Connect.\n";});// 监听数据接收事件。$server->on('

  • swoole process 单进程

    1 编写代码<?phpclass Process{ public $process = null; public function __construct() { /** * 实例化进程管理对象 * 参数一,callable $function 子进程创建成功后要执行的函数 * 参数二,是否将结果放入进程管道中 false为直接输出 */ $this->process = new Swoole\Process([$this, 'onProcess'], false); // 获取子进程id $pid = $this->getPid(); echo $pid; // 回收结束运

  • 【Composer基础】常用命令

    使用 composer 一切命令最好 cd 到(项目)根目录下# 查看某个命令的帮助composer 命令名称 --help# composer软件自身更新composer self-update# 查看所有命令composer list# 显示包信息composer show 包名# 生成自动加载文件,修改composer.json里的autoload参数后用它composer dumpautoload# 查询包composer search 包名# 显示全部的信息包括版本号composer -v# 全局安装插件包composer global require "fxp/composer-a

  • 【Composer基础】国内全量镜像大全

    1 阿里云 Composer 全量镜像镜像地址:https://mirrors.aliyun.com/composer/官方地址:https://mirrors.aliyun.com/composer/index.html2 腾讯云 Composer 全量镜像镜像地址:https://mirrors.cloud.tencent.com/composer/官方地址:https://mirrors.cloud.tencent.com/composer说明:若您使用腾讯云服务器,可以将源的域名从 mirrors.cloud.tencent.com 改为 mirrors.tencentyun.com,

  • 【Composer基础】设置Composer下载源

    先设置 Composer 的下载源,也是镜像地址,在命令行窗口或控制台 输入composer config -g repo.packagist composer [https://packagist.phpcomposer.com](https://packagist.phpcomposer.com)如果 phpcomposer 镜像有问题,可以换下面的composer config -g repo.packagist composer [https://packagist.laravel-china.org](https://packagist.laravel-china.org)

  • 【Composer基础】Composer安装

    安装步骤:第一步:用cmd进入php目录,如果是小皮面板,就是D:\phpstudy_pro\Extensions\php\php7.4.3nts第二步:执行命令,php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"第三步:执行命令,php composer-setup.php第四步:执行命令,php -r "unlink('composer-setup.php');"第五步:添加 path 环境变量,参数为 composer 路径第六步:进入php文件目录,新建文件:composer

  • git推送宝塔面板指南

    1 推送简介我们每次git提交代码的时候,服务器网站获取最新git代码,特别是如果你管理几十个网站代码,都需要登录服务器,手动拉取下代码,这样非常繁琐,如果我们用一套代码,不同服务器环境拉取的话,甚至需要手动改里面的比如数据库配置,所以我们需要用宝塔webhook来实现,推送代码的时候即可实现服务器自动拉取。2 宝塔安装webhook3 webhook添加脚本在webhook里面添加一个钩子执行脚本如下,有两处须要批改gitPath="/www/wwwroot/$1"(留神你的阿里云文件门路,如果不一样须要批改)gitHttp="https://gitee.com/yourname/$1.gi

  • 【Nginx基础】缓存服务proxy(3)

    1 fastcgi_cache简介说起fastcgi不得不提cgi,cgi全称是“通用网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序一般运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。摘自百度百科。那fastcgi意思就是比cgi执行速度要快速。主要快在从启动开始,就一直会有一个常驻的进程一直等待外部的请求,不用每次有请求就fork一个进程处理请求。当然,速度快了,占用的内存就会高了,因为不论有没有客人,总要有人在门口迎宾。2&nbs

  • 【Nginx基础】缓存服务proxy(2)

    1 设置不缓存url上一节虽说用nginx把很多url设置了缓存,但是,问题来了,一个服务不是每个url都需要缓存服务的,比如:用户的积分,用户的通知等,要满足这个场景,也可以设置不同的location来应对,不过Nginx也有相关的参数:proxy_no_cacheSyntax: proxy_no_cache string …;Default: —Context: http, server, location2 Nginx配置server{ #......其他配置 #表明用户访问login和search两个url的时候,变量$nocache 设置为1 if ($request_uri ~ ^

  • 【Nginx基础】缓存服务proxy(1)

    1 Nginx缓存服务简介nginx作为web服务器或者代理服务器,可以将应用的内容缓存到nginx服务器,第二次访问的时候,nginx不用再次分发请求给应用服务器,而是把自己缓存的内容直接返回给用户,这样提高了访问速度,也减轻了应用服务器的负担,当然,缓存服务的内容是相对静态的,或者说在一定时间内不会变化的。2 Nginx缓存服务配置upstream slbserver_cache { server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=2; server 127.0.0.1:8082 weight=1 max_fails=2 fa

  • 【Nginx基础】动静分离配置

    1 动静分离简介对于一些应用来说(比如网站),图片,css文件,js文件等静态资源不需要动态语言的支持,可以直接返回给客户端使用,如果这些静态资源跟着动态资源一样的流程,那就太浪费服务器资源了;所以,最好的办法是让他们分家,静态资源直接从nginx服务器返回,动态资源经过nginx转发给相应的服务执行后再返回客户端;动静分离的好处是可以为用户提供更好的使用体验,而不是一直等着服务器一次性将资源返回。2 动静分离配置(1) nginx 配置server { listen 8827; server_name localhost; root /opt/app/php72; #动态请求转发到php服务

  • 【Nginx基础】负载均衡服务器(2)

    1 案例描述使用一台虚拟机,使用端口模拟不同的服务,设置四个nginx配置文件,作用分别如下:端口作用配置文件8888负载均衡/etc/nginx/conf.d/slb.conf8081应用服务1,服务地址:/opt/app/slb1;/etc/nginx/conf.d/slb1.conf8082应用服务2,服务地址:/opt/app/slb2;/etc/nginx/conf.d/slb2.conf8083备份服务器/etc/nginx/conf.d/slb3.conf用户访问8888,可以转发到8081和8082上2 配置文件(1) 负载均衡服务nginx配置文件 slb.conf#设置负载

  • 【Nginx基础】负载均衡服务器(1)

    1 负载均衡简介负载均衡提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。2 负载均衡分类(1) 二层负载均衡(mac):根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应);(2) 三层负载均衡(ip):一般采用虚拟IP

  • 【Nginx基础】开启防盗链功能

    1 防盗链出现原因虽说互联网崇尚分享精神,但是网站资源若是被一些流量大的网站引用或者爬取(图片或其他静态文件),也会造成自己的服务器压力过大,甚至不能正常提供对外服务。所以,有必要防止其他网站盗用本网站的资源。2 防盗链的思路设置一个变量,valid_referers,也就是白名单,只允许以下网址访问,然后,判断这个变量是否存在,不存在则是非法盗链,甩一个默认广告图片给他显示吧!3 开启图片防盗链例子location ~* \.(gif|jpg|png|jpeg)$ { #设置过期时间 expires 30d; #允许本站下访问图片,也允许搜索引擎访问图片 valid_referers *.h

  • 【Nginx基础】设置允许跨站访问

    1 跨站访问的原因出于安全的原因,浏览器默认不允许跨站访问,因为跨站访问很容易造成跨站攻击(CSRF),也就是黑客利用A网站去访问用户曾经访问过的B网站;当然,不默认的话就可以跨站访问了,浏览器会根据服务端返回的头部信息(Access-Control-Allow-Origin)判断是否允许跨域访问,如果服务端都允许跨站访问,浏览器段也就没必要做跨域限制,也就是说,我们可以在服务器端的nginx设置Access-Control-Allow-Origin这个参数就可以实现跨站访问了。2 跨站访问配置例子location: / { #允许这个网站跨站访问。如果允许全部,那就设置为*,当然,这样很傻。

  • 【Nginx基础】静态资源服务相关配置

    Nginx可以作为静态资源服务使用,下面列举静态资源服务的相关配置1 常用配置(1) sendfile使用nginx作为静态资源服务时,通过配置sendfile可以有效提高文件读取效率,设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据;如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket;开启这个参数后可以让