php-fpm

[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

PHP 7.1安装xhprof进行性能分析

送分小仙女□ 提交于 2020-08-04 16:38:31
PHP 7.1安装xhprof进行性能分析 安装扩展 该 xhprof扩展版本是从 https://github.com/longxinH/xhprof 获取的(第三方的一个库,官方版本不支持php7) 下载并编译xhprof扩展 在web的html目录下操作: git clone https://github.com/longxinH/xhprof 编译扩展 cd xhprof/extension/ phpize ./configure make make install 修改php.ini配置 [xhprof] extension=xhprof.so; xhprof.output_dir=/tmp/xhprof 其中 xhprof.output_dir 是 xhprof 的输出目录,每次执行 xhprof 的 save_run 方法时都会生成一个 run_id.project_name.xhprof 文件。这个目录在哪里并不重要。注意此路径的权限要可读写!!否则文件无法生成成功 重启 php-fpm sudo service php7.1-fpm restart 添加测试代码 <?php xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); // 要检查性能的代码 $xhprof_data = xhprof_disable

测试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镜像,拉取官方的就可以

实现docker应用的日志轮转服务

允我心安 提交于 2020-08-04 14:34:50
通常我们一个完整的应用镜像有两部分组成,一个是运行时环境,一个是应用程序。 我们以php应用为例,一个完整的php应用需要包含openresty + php两个服务来配置运行时环境,然后再加上php代码,来完成一整个php应用的发布。php代码产生的日志由程序自行控制,一般都会按天滚动,在日志量较大的情况下,也可能按小时滚动,或者按照单个日志文件的大小来实现滚动。而nginx和php服务的日志默认情况下并不支持这种滚动,所以默认情况下,一个openresty+php容器在其生命周期内,就只会写一个日志文件,如果该容器长时间运行,openresty与php服务的访问日志就会变的非常巨大,给我们日志清理造成了不便。 logrotate + crontab 虽然默认情况下,openresty和php等服务的访问日志并不会自动滚动,但我们却可以使用一些第三方工具来实现。在传统的应用部署中,我们使用logrotate + crontab来实现openresty 与php等服务的日志滚动。而事实上,这一方案在容器环境下仍然适用。我们的解决方案是,在每个服务的基础镜像中配置好logrotate和crontab,这样在容器运行起来后,就会自动根据配置好的轮转策略实现日志滚动。 配置详细说明 我们仍然以openresty+php为例,给出一个openresty

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

Linux/Mac 下为命令设置别名

ε祈祈猫儿з 提交于 2020-07-27 09:49:08
vim /etc/profile 加入 alias start-all='sh /Users/wangxinhua/Documents/startall.sh' 当命令执行start-all 时 去执行startall.sh 这个脚本 startall.sh 文件内容(启动nginx 启动php-fpm) #!/bin/sh sudo nginx sudo php-fpm --fpm-config /etc/php-fpm.conf --prefix /usr/local/var & exit; 保存后这时命令时不生效的需要执行 source /etc/profile 使配置生效 这时在执行start-all 即可 还需要注意的是 当关闭终端时或重启电脑时,start-all 命令 会报 not found 将 profile 中别名alias配置写在zshrc中,这样就解决了iTerm2重启或电脑重启后别名alias失效的问题 根据1: https://blog.csdn.net/JewaveOxford/article/details/102884544 2: https://www.cnblogs.com/liuwentaolaji/p/9822817.html 整理总结 来源: oschina 链接: https://my.oschina.net/u/3840669

php多版本:已存在php5场景下,编译安装php7,实现apache2.2--php-fpm7通信

[亡魂溺海] 提交于 2020-07-27 02:29:32
php多版本:已存在php5场景下,编译安装php7,实现apache2.2--php-fpm7通信 wget --no-check-certificate https://www.php.net/distributions/php-7.2.31.tar.gz tar xzvf php-7.2.31.tar.gz cd php-7.2.31 ./configure --prefix=/usr/local/php746 --with-config-file-path=/usr/local/php746/etc --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --disable-fileinfo # --disable-fileinfo 加入这行 否则有时候报错在make install的睡时候报错 make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 make make install #php命令地址 /usr/local/php746/bin/php 可以用/usr/local/php746/bin/php -v查看版本号 注意不要直接使用php,如果是多版本php的话php这个命令调用的是环境变量中的php

php 中php-fpm工作原理

寵の児 提交于 2020-07-24 02:16:16
1.CGI 是服务器与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理服务器转发过来的请求,动态地生成内容, 保证了传递过来的数据是标准格式的(规定了以什么样的格式传哪些数据(URL、查询字符串、POST数据、HTTP header等等)),方便了开发者。 2.fastCGI 首先,FastCGI会先启一个master进程,解析配置文件,初始化执行环境,然后再启动多个worker进程。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。 这样就避免了重复的劳动,效率自然是高。 而且当worker不够用时,master可以根据配置预先启动几个worker等着。 当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是FastCGI的对进程的管理。 3.php-fpm master进程只有一个,负责监听端口,接收来自服务器的请求,而worker进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个PHP解释器,是PHP代码真正执行的地方,下面是我本机上FPM的进程情况:1个master进程,2个worker进程。 从FPM接收到请求,到处理完毕,其具体的流程如下: 1).FPM的master进程接收到请求。 2).master进程根据配置指派特定的worker进程进行请求处理,如果没有可用进程,返回错误

LNMP开发环境搭建

我怕爱的太早我们不能终老 提交于 2020-07-23 20:29:15
Nginx安装 安装版本: 稳定版 1.8.0 1).确定是否安装pcre-devel编译所需要的兼容正则,nginx需要pcre这个包文件 没有的情况下,直接用 [root@moban ~]# yum -y install pcre-devel #安装时有的可能没有安装openssl库,直接用 yum -y install openssl*安装 2).执行nginx编译安装 [root@moban ~]# ./configure --prefix=/application/nginx1.8.0 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module [root@moban ~]# make && make install 不出意外的话,nginx就安装成功了...... Mysql安装 关于mysql,常用的有以下安装方式: 1.源码安装 2.二进制安装 3.RPM包安装,本次安装使用的是二进制包安装(不需要编译,直接解压即可) 安装步骤: 1)建立用户 [root@moban ~]# useradd -M -s /sbin/nologin mysql 2)解压tar包 [root@moban ~]# tar xf mysql-5.5.45-linux2.6-i686.tar

php.ini配置文件参数优化

可紊 提交于 2020-05-07 11:56:32
用于生产环境中的PHP需要对其进行优化,让PHP自身发挥更好的性能,除了写好PHP代码,还要配置好php-fpm以及php.ini调优。本文从内存、OPcache、上传、会话以及安全等方面讲解php.ini的配置调优。 内存优化 运行 PHP 时需要关心每个 PHP 进程要使用多少内存,php.ini 中的 memory_limit 设置用于设定单个 PHP 进程可以使用的系统内存最大值。 这个设置的默认值是 128M,这对于大多数中小型 PHP 应用来说或许合适,不过,如果运行的是微型 PHP 应用,可以降低这个值,以便节省系统资源,反之,如果运行的是内存集中型 PHP 应用,可以增加这个值。这个值的大小由可用的系统内存决定,确定给 PHP 分配多少值是一门艺术,决定给 PHP 分配多少内存,以及能负担起多少个 PHP-FPM 进程时,可以根据以下维度信息进行判断: 一共可以分配给 PHP 多少内存?以一个 2G 内存的 VPS 为例,这台设备中可能还运行了其他进程,如 MySQL、Nginx 等,那么留 512M 给 PHP 是合适的。 每个 PHP 进程平均耗费多少内存?这个要监控进程的内存使用量,可以使用命令行命令top,也可以在 PHP 脚本中调用 memory_get_peak_usage() 函数,不管使用哪种方式,都要多次运行同一个脚本,然后取内存消耗的平均值。