根据PHP官方手册所说,整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。64 位平台下的最大值通常是大约 9E18。PHP 不支持无符号整数。Integer 值的字长可以用常量 PHP_INT_SIZE来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量 PHP_INT_MAX 来表示。
Apache服务器处理: ini_set('display_errors', 'Off'); ini_set('memory_limit', -1); //-1 / 10240M ini_set("max_execution_time", 0); //ini_set('magic_quotes_gpc', 'On'); <IfModule mod_php5.c> php_value post_max_size 10M php_value upload_max_filesize 8M php_va
网友导入 Avada 模板的时候出现下图这个问题,之前很多网友都遇到过类似问题,好多人用的宝塔面板,在后台能找到修改的可视化界面,而如果是主机商提供的面板就没这个便利条件了,需要手动修改。
为什么需要谈论Generators,作为互联网应有,更快的速度意味着更好的用户体验,而Generators则是php中解决速度和内存的杀手锏
php.ini文件保存了php的一些重要属性,例如现在要说的文件上传的一些限制条件,关于php.ini,有一篇很好的介绍:php.ini文件详解,在Windows系统中编写php的时候,我们一定见过这个画面(来源百度):
PHP是网络上最流行的编程语言之一,许多被广泛使用的内容管理系统都使用它开发,如WordPress和Drupal,并为现代服务器端框架(如Laravel和Symfony)提供核心代码。
web使用的是nginx+php的架构,网站上线还没多久,所以优化方面基本只是做了些初始的配置。 查看php-fpm.log发现有警告,这些警告和网站的挂了个时间基本吻合。我就从这里开始入手。 先开始也是找了些文档,但是第二天还是出现问题。后来查看配置文件并翻译了下(百度),英文底子不好。pm模块类似apache的模块,是分静态和动态的。 网上说的很多调整都是基于动态居多,但是并没说么定义这个模块。所以大家用动态和静态还是要仔细看看配置文件
最近发现博客的内存老是隔三差五地被“吃掉”了,登录到后台后偶尔会出牛顿的情况,一开始怀疑是Swap不够导致的,于是给VPS主机增加了几个G的Swap,观察了一段时间后发现再大的Swap也被慢慢地“吃掉”了!
php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。
有时候确实需要上传一些比较大的文件,老高的服务器是nginx+php,二者都需要配置。
经常有网友在 php 环境中上传大容量文件,会遇到系统提示文件大小超过容量被限制上传,如果是老鸟自然会知道如何解决,对于新手来说这就好像学习 php 建站过程中的一个坑一样,为了帮助新手出坑,魏艾斯博客总结了市面上常见的 lnmp 环境和宝塔面板环境,分别说说在这两种环境中如何解决问题。
ThinkPHP是一款优秀的PHP开发框架,其提供了丰富的扩展功能,方便开发者快速完成各种需求。在开发过程中,文件上传是一个常见的需求。但是默认情况下,ThinkPHP上传文件大小是受到限制的。那么,如何修改上传文件大小呢?
Nginx 与 php-fpm 的结合 在 Linux 上,nginx 与 php-fpm 的通信有 tcp socket 和 unix socket 两种方式。 tcp socket 的优点是可以跨服务器,当 nginx 和 php-fpm 不在同一台机器上时,只能使用这种方式。 Unix socket 又叫 IPC (inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信,这种方式需要在 nginx 配置文件中填写 php-fpm 的 socket 文件位置。
为了避免因多站点使用同一个pool时因一个站点故障导致pool出问题,进而影响使用同一个pool的其他站点的正常运行,要对每个站点配置一个单独的pool。
很明显,PHP+Mysql+Apache是很流行的web技术,这个组合功能强大,可扩展性强,还是免费的。然而,PHP的默认设置对已经上线的网站不是那么适合。下面通过修改默认的配置文件加强PHP的安全策略!
502 和 php-fpm.conf 1.php-cgi进程数不够用。php执行时间长,导致没有空闲进程处理新请求。 2.php-cgi进程死掉。php-fpm超时时间短,当前进程执行超时关闭连接。 实例: 1.request_terminate_timeout引起的资源问题 request_terminate_timeout默认值为 0 秒,也就是说,PHP 脚本会一直执行下去。 php.ini 里面max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,request_term
常有网友在 php 环境中上传大容量文件,会遇到系统提示文件大小超过容量被限制上传,如果是老鸟自然会知道如何解决,对于新手来说这就好像学习 php 建站过程中的一个坑一样,为了帮助新手出坑,网站那些事总结了市面上常见的 lnmp 环境和宝塔面板环境,分别说说在这两种环境中如何解决问题。
设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了。
1.安装依赖软件库: yum install -y libxml2-devel libtool* curl-devel libjpeg-devel libpng-devel freetype-devel 2.下载php7源码包进行编译安装 [root@iZ2zef0e6br88incakir9rZ opt]# wget http://cn2.php.net/distributions/php-7.0.14.tar.gz [root@iZ2zef0e6br88incakir9rZ opt]#
php-fpm的pool Nginx可以配置多个虚拟主机,php-fpm同样也支持配置多个pool,每一个pool可以监听一个端口,也可以监听一个socket。 vim /usr/local/php/etc/php-fpm.conf 在[global]部分增加: include = etc/php-fpm.d/*.conf 创建php-fpm.d目录: mkdir /usr/local/php/etc/php-fpm.d 进入目录: cd /usr/local/php/etc/php-fp
通常部署完php环境后会进行一些安全设置,除了熟悉各种php漏洞外,还可以通过配置php.ini来加固PHP的运行环境,PHP官方也曾经多次修改php.ini的默认设置。 下面对php.ini中一些安全相关参数的配置进行说明 register_globals 当register_globals = ON时,PHP不知道变量从何而来,也容易出现一些变量覆盖的问题。因此从最佳实践的角度,强烈建议设置 register_globals = OFF,这也是PHP新版本中的默认设置。 open_basedirope
打开php.ini文件,修改完毕后重启服务器。测试下上传文件。。。。(嘻嘻,是不是传上了很大的文件?) 1、文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。 要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限 2、max_execution_time 变量max_execution_time设置了在强制终止脚本前PHP等待脚本执行完毕的时间
PHP 大文件上传占用大量资源,因此需要对上传的大小进行限制,以下为相关的三个参数:
就在安心养神的时候, 同事转给了我一条nginx 502的报警, 赶紧去线上一顿排查。
php日志中有一条超时的日志,但是我request_terminate_timeout中设置的是0,理论上应该没有超时时间才对。
PHP是一种服务器端脚本语言,被许多流行的CMS和博客平台使用,如WordPress和Drupal。它也是流行的LAMP和LEMP堆栈的一部分。在设置基于PHP的网站时,更新PHP配置设置是一项常见任务。找到确切的PHP配置文件可能并不容易。有多个PHP安装在服务器上正常运行,每个安装都有自己的配置文件。知道要编辑哪个文件以及当前设置是什么可能有点神秘。
一、php-fpm的pool: 有时候我们一个服务器可能会跑多个WEB,多个web就要对应多个pool,如果多个WEB SERVER对于一个php-fpm中的sock,一旦一台出现问题(资源耗尽502等)其它的server也会同样出现502! 1.1 配置文件详解: [root@zhdy-03 ~]# vim /usr/local/php-fpm/etc/php-fpm.conf 我们之前就配置了一个默认的www [www] listen = /tmp/php-fcgi.sock #listen = 127
Tips:一般在生产环境都是负载均衡,定时任务是单独在一个容器执行,故此是注释掉的,需要单独在定时任务容器中打开即可。
文件上传实际上就是在前段使用一个form表单提交本地文件到服务器,然后在服务器端将文件从临时目录转移到指定目录的过程。
php-fpm的pool目录概要 vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加 include = etc/php-fpm.d/*.conf mkdir /usr/local/php/etc/php-fpm.d/ cd /usr/local/php/etc/php-fpm.d/ vim www.conf //内容如下 [www] listen = /tmp/www.sock listen.mode=666 user = php-fpm group =
php.ini是php运行核心配置文件,下面是一些常用配置 extension_dir="" 设置PHP的扩展库路径 expose_php = Off 避免PHP信息暴露在http头中 display_errors = Off 避免暴露php调用mysql的错误信息 log_errors = On 在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置) zend_extension=opcache.so extension=mysqli.so
PHP在业界被调侃,是世界上最好的语言,PHP确实是Web开发里的利器,具体点说,就是一个用C语言实现包含大量组件模块的软件框架。是一个强大的UI框架。
pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
php-fpm的pool: php-fpm的pool是这个php-fpm服务的池子,php-fpm支持定义多个池子,能够监听多个不同的sock或者监听不同的ip。如果Nginx上跑了几个站点,每个站点
在实际的生产环境中遇到了实际需要解决的问题,需要把服务部署的方式梳理出来,在同一个服务器中部署多个PHP环境,架构图如下:
静态:直接开启指定数量的php-fpm进程,不再增加或者减少; 动态:开始的时候开启一定数量php-fpm进程,当请求变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲进程数到一个下限。
先来看一段日志(此日志来自于 var/log/php-fpm.log ): [13-Aug-2017 03:30:03] NOTICE: fpm is running, pid 28263 [13-Aug-2017 03:30:03] NOTICE: ready to handle connections [13-Aug-2017 10:11:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or p
首先明确可道云没有对上传下载做任何限制,速度快慢和网络环境有关。可道云是基于http上传,所以和其他http上传速度基本一致;可以对比其他web系统或网站说附件上传速度。同其他例如webdav、FTP、QQ传输等软件底层协议不一样;传输速度也会不一样。
目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。
第一步:启动php5.2 /usr/local/lnmp/php/sbin/php-fpm start 第二步:启动php5.5 约定几个目录 /usr/local/lnmp/php-5.5/sbin/php-fpm /usr/local/lnmp/php-5.5/etc/php-fpm.conf /usr/local/lnmp/php/etc/php.ini php-fpm的启动参数 #测试php-fpm配置 /usr/local/lnmp/php-5.5/sbin/php-fpm -t /usr/local/lnmp/php-5.5/sbin/php-fpm -c /usr/local/lnmp/php/etc/php.ini -y /usr/local/lnmp/php-5.5/etc/php-fpm.conf -t #启动php-fpm /usr/local/lnmp/php-5.5/sbin/php-fpm /usr/local/lnmp/php-5.5/sbin/php-fpm -c /usr/local/lnmp/php/etc/php.ini -y /usr/local/lnmp/php-5.5/etc/php-fpm.conf #关闭php-fpm kill -INT `cat /usr/local/lnmp/php-5.5/var/run/php-fpm.pid` #重启php-fpm kill -USR2 `cat /usr/local/lnmp/php-5.5/var/run/php-fpm.pid`
12.21 php-fpm的pool php-fpm的pool目录概要 vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加 include = etc/php-fpm.d/*.conf mkdir /usr/local/php/etc/php-fpm.d/ cd /usr/local/php/etc/php-fpm.d/ vim www.conf //内容如下 [www] listen = /tmp/www.sock listen.mode=666 user
php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。 为了后续的zabbix监控,我们需要先了解php-fpm状态页是怎么回事。 启用php-fpm状态功能及Nginx配置 cat /usr/local/php-5.5.10/etc/php-fpm.conf | grep status_path pm.status_path = /status 或者 /etc/php-fpm.d/www.conf 默认注释 删除即可 默认情况下为/status,
前几天魏艾斯博客在本地用 windows7 系统测试 wordpress 模板,先用phpstudy 搭建了本地 php 环境,然后去上传模板的时候,遇到了下面提示:The uploaded file exceeds the upload_max_filesize directive in php.ini,大概意思是上传文件的尺寸超过了 php.ini 里面的最大数值。我安装的是英文版 wordpress,如果你安装简体中文版 wordpress 提示应该是:上传的文件尺寸超过 php.ini 中定义的 u
之前有很多朋友问关于Nginx的upstream模块中max_fails及fail_timeout,这两个指令,分别是配置关于负载均衡过程中,对于上游(后端)服务器的失败尝试次数和不可用时间,很多人不是很理解这两个参数到底怎么用,以及具体的含义
对于PHP服务而言,nginx + php-fpm 是常用的服务配置,如何进行服务器性能调优是一个服务端开发的必备技能。
一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。有些站长是在刚刚转移到Nginx之后就出现了这个问题,所以经常会怀疑这是不是Nginx的问题,但事实上这是个误区。
最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时)。
php-fpm进程管理一共有三种模式:ondemand、static、dynamic,我们可以在同一个fpm的master配置三种模式,看下图1。php-fpm的工作模式和nginx类似,都是一个master,多个worker模型。每个worker都在accept本pool内的监听套接字(linux已不存在惊群现象)。
领取专属 10元无门槛券
手把手带您无忧上云