fastcgi

[PHP] Swoole整合PHP性能分析

不羁岁月 提交于 2020-08-05 22:54:41
参考文章: Swoole整合PHP性能分析平台: Tideways+Xhgui 根据以上文章,作为修改和补充 本文章是这文章的补充和延伸: [Docker] 用PHP7.4+Swoole+sdebug打开PHP的二次元世界 安装tideways扩展 !!!FBI WARNING!!! git clone https://github.com/tideways/php-xhprof-extension.git cd php-xhprof-extension phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make && make install 编译完成后在php.ini中加入 extension=tideways_xhprof.so 查看是否安装成功 php --ri tideways_xhprof 成功会输出以下内容 安装mongodb扩展 其实非一定要依赖这个扩展的,但下面介绍的laynefyc/php-monitor扩展,会检测mongodb,所以也需要装上这个 wget https://pecl.php.net/get/mongodb-1.7.4.tgz tar -zxvf mongodb-1.7.4.tgz cd mongodb-1.7.4 phpize ./configure

PHP-FPM的相关知识的深度解释

眉间皱痕 提交于 2020-08-05 03:57:33
一、需要搞清楚几个名词概念 1. CGI (Common Gateway Interface,CGI)通用网关接口, 是 Web 服务器运行时外部程序的规范 ,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、Java、VB 和Delphi 等。 所以说CGI是一个协议,不是进程。 CGI的存在,可以使用户通过浏览器来访问执行在服务器上的动态程序;CGI是Web服务器与CGI程序间传输数据的标准; 服务器端 CGI 程序接收信息有三种途径:环境变量、命令行和标准输入。 命令行: <form>表单的Method=GET,向CGI 传递表单编码信息是通过命令方式来进行的。 标准输入: <form>表单的Method=POST,向CGI 传递表单编码信息是通过标准输入方式来进行的。 环境变量: 表单编码信息是通过环境变量QUERY_STRING 来传递。 浏览器传递数据方式: POST: 发送数据大小不受限制,环境变量CONTENT_LENGTH 存放这发送数据的长度,CGI程序检查环境变量REQUEST_METHOD

测试docker安装nginx+PHP部署小应用

試著忘記壹切 提交于 2020-08-04 19:13:48
背景:测试主机是在金山云公有云平台上申请的一台Centos7.6云主机,因为发现使用云主机来做测试相当方便,而且充分利用金山云云主机的优势--弹性计费、关机不收费(此处免费广告)。总之,个人觉得还是在公有云上测试确实比wokrstation要方便很多。 1、申请金山云云主机,这一步就直接跳过了,都是下一步下一步就可以,申请一台linux云主机只需要10s就可以了 (个人配置:2C4G100g,5M-EIP) 2、远程ssh登录云主机,建议修改为非标端口或使用密钥登录,增加安全性,毕竟是在公网上。。。。 3、配置yum源,公有云主机都是带有repo配置的,当然也可以根据自己需求来配置repo yum源(推荐使用国内,都懂的),此次实验使用aliyun repo: #curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 4、下面开始安装 #yum install -y docker ----安装docker #systemctl start docker ----启动docker #systemctl enable docker ----设置docker服务开机自启动 #systemctl status docker 5、拉取centos镜像,拉取官方的就可以

[PHP] 最新抢先编译安装PHP8.0.0 alph1以及FPM

爱⌒轻易说出口 提交于 2020-08-04 19:00:34
所有操作需要在root用户下 本机测试案例系统信息:ubuntu 安装路径:/usr/local/php8 解压缩: wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz tar -zxvf php-8.0.0alpha1.tar.gz cd php-8.0.0alpha1/ 编译: ./configure --prefix=/usr/local/php8 \ --with-config-file-path=/usr/local/php8 \ --enable-mbstring \ --enable-ftp \ --enable-gd \ --enable-gd-jis-conv \ --enable-mysqlnd \ --enable-pdo \ --enable-sockets \ --enable-fpm \ --enable-xml \ --enable-soap \ --enable-pcntl \ --enable-cli \ --with-openssl \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-pear \ --with-zlib \ --with-iconv \ --with-curl \ make && make

测试docker安装nginx+PHP部署小应用

陌路散爱 提交于 2020-08-04 15:07:53
背景:测试主机是在金山云公有云平台上申请的一台Centos7.6云主机,因为发现使用云主机来做测试相当方便,而且充分利用金山云云主机的优势--弹性计费、关机不收费(此处免费广告)。总之,个人觉得还是在公有云上测试确实比wokrstation要方便很多。 1、申请金山云云主机,这一步就直接跳过了,都是下一步下一步就可以,申请一台linux云主机只需要10s就可以了 (个人配置:2C4G100g,5M-EIP) 2、远程ssh登录云主机,建议修改为非标端口或使用密钥登录,增加安全性,毕竟是在公网上。。。。 3、配置yum源,公有云主机都是带有repo配置的,当然也可以根据自己需求来配置repo yum源(推荐使用国内,都懂的),此次实验使用aliyun repo: #curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 4、下面开始安装 #yum install -y docker ----安装docker #systemctl start docker ----启动docker #systemctl enable docker ----设置docker服务开机自启动 #systemctl status docker 5、拉取centos镜像,拉取官方的就可以

Nginx的location配置规则总结

百般思念 提交于 2020-08-04 12:24:52
Nginx几乎是当下绝大多数公司在用的web应用服务,熟悉Nginx的配置,对于我们日常的运维工作是至关重要的,下面就Nginx的location配置进行梳理: 1)location匹配的是nginx的哪个变量? $request_uri 2)location的匹配种类有哪些? 格式:location [ 空格 | = | ~ | ~* | !~ | !~* | @ ] /uri/ {} 解释: = 表示精确匹配,如果找到,立即停止搜索并立即处理此请求。 ~ 表示执行一个正则匹配,区分大小写匹配 ~* 表示执行一个正则匹配,不区分大小写匹配 !~ 区分大小写不匹配 !~* 不区分大小写不匹配 ^~ 即表示只匹配普通字符(空格)。使用前缀匹配,^表示“非”,即不查询正则表达式。如果匹配成功,则不再匹配其他location。 @ 指定一个命名的location,一般只用于内部重定向请求。例如 error_page, try_files / 表示通用匹配,任何请求都会匹配到 ------------------------------------------------------------------------ 对应示例说明: 1)= server { server_name wangshibo.com; location = /abcd { […] } } 匹配情况: http:

thinkphp-nginx.conf

陌路散爱 提交于 2020-07-28 18:44:57
server{ listen 80; server_name test.cn; index index.php; root /data/wwwroot/test_tp5/public; include thinkphp.conf; location ~ [^/]\.php(/|$) { # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; #include pathinfo.conf; } if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web s pider|MSNBot|ia_archiver|Tomato Bot") { return 403; }

捅开web应用的那层纱

限于喜欢 提交于 2020-07-28 18:07:22
疑问 这篇也是 Django连接池试验 引发来得,考虑到整个web请求流程的复杂和独立性,新起一篇单独讲解 前置 之前搞php,java时,经常提到CGI,FastCGI, 且当时听说FastCGI性能更高,但当时未求深入,不知细节原因。以及一个web请求所经历的生命历程,也是算明白,但不是很深入,此篇会细致讲解“网关接口(协议)”的发展历程,以及web流程的生命周期。 HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从 万维网服务器传输超文本到本地浏览器 的传送协议。 HTTP协议 基于TCP/IP 通信协议来传递数据(文本,图片,json串等)。但这里要注意,他不涉及传输包,只是定义客户端和服务器端的通信格式。 HTTP请求方法 HTTP/0.9 GET HTTP/1.0 GET、POST、HEAD HTTP/1.1 GET、POST、HEAD、PUT、PATCH、HEAD、OPTIONS、DELETE HTTP请求报文 请求报文由以下四部分组成: 请求行:由 请求方法,请求URL(不包括域名),HTTP协议版本 组成 请求头(Request Header):由 key/vaue的形式组成 空行:请求头之下是一个空行,通知服务器不再有请求头(有请求体时才有) 请求体:一般post才有

LAMP宿主机安装-php环境

徘徊边缘 提交于 2020-07-28 04:16:56
1. httpd 安装 rpm包 yum install httpd systemctl start httpd httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Apr 2 2020 13:13:23 2. mysql 安装rpm包 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yum -y install mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 此中含有依赖( mysql-community-libs mysql-community-devel ),有此两个 libs和devel,php configure时mysql目录编译可不指定 mysql --version mysql Ver 14.14 Distrib 5.6.48, for Linux (x86_64) using EditLine wrapper 此中, /usr/bin/ apxs 安装包 yum install -y httpd-devel 3. PHP安装 wget http://cn2.php.net/distributions

【nginx&php】后台权限认证方式

依然范特西╮ 提交于 2020-07-27 09:44:25
一、最常用的方法(代码中限制) 1、如何限制IP function get_new_ip(){ if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')) { $onlineip = getenv('REMOTE_ADDR'); } else { $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; } return $onlineip; } $onlineip = get_new_ip(); $wip = ['127.0.0.1']; if(!in_array($onlineip, $wip)){ header("HTTP/1.1 404 Not Found"); header("Status: 404 Not Found"); exit; } 2、进行密码验证 ///////////////// Password protect ///////////////////////////////////////////////////