Tag: PHP的

高负载下的502网关错误(nginx / php-fpm)

我在一个相当繁忙的互联网站点工作,这个站点经常会遇到非常大的stream量高峰。 在这些峰值期间,每秒钟会有数百页的请求,并产生随机的502网关错误。 现在我们在带有16个核心CPU和24GB DDR3 RAM的4个SAS 15k驱动器(raid10)的机器上运行Nginx(1.0.10)和PHP-FPM。 我们也使用最新的Xcache版本。 数据库位于另一台机器上,但是这台机器的负载很低,没有问题。 在正常的负载下,一切运行良好,系统负载低于1,并且PHP-FPM状态报告一次不会真正显示超过10个活动进程。 总是有大约10GB的内存仍然可用。 在正常的负载下,机器每秒处理大约100个综合浏览量。 当出现巨大的stream量峰值时,就会出现这个问题,并且要求机器每秒钟处理数百页的视图。 我注意到,FPM的状态报告显示了多达50个活动进程,但仍低于我们configuration的300个最大连接数。 在这些峰值期间,Nginx状态报告多达5000个活动连接,而不是正常的平均值1000。 OS信息:CentOS 5.7版(最终版) CPU:Intel(R)Xeon(R)CPU E5620 @ 2.40GH(16核心) PHP-fpm.conf daemonize = yes listen = /tmp/fpm.sock pm = static pm.max_children = 300 pm.max_requests = 1000 我还没有设置rlimit_files,因为据我所知它应该使用系统默认,如果你不这样做。 fastcgi_params (只添加标准文件的值) fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors […]

通过虚拟主机configuration设置Application_ENV并在PHP中读取

我喜欢这在Zend Framework中如何工作。 我可以通过在我的控制器中检查APPLICATION_ENV常量来知道我当前正在使用哪个环境。 <VirtualHost *:80> #ServerName #DocumentRoot SetEnv APPLICATION_ENV "development" # Directory </VirtualHost> 但不幸的是我不能在我目前的项目中使用ZF。 我如何检查我的PHP代码中的这个环境variables?

我如何让XDebug在CLI中使用PHPUnit运行?

我试过运行下面的CLI命令: phpunit -d xdebug.profiler_enable=on XYZTestCase.php 但它正常运行。 任何人都可以指出我在正确的方向? 谢谢! 这是XDebug设置: xdebug xdebug support => enabled Version => 2.1.2 Supported protocols => Revision DBGp – Common DeBuGger Protocol => $Revision: 1.145 $ Directive => Local Value => Master Value xdebug.auto_trace => Off => Off xdebug.collect_assignments => Off => Off xdebug.collect_includes => On => On xdebug.collect_params => 0 […]

有没有PDFparsing器的PHP?

嗨,我知道几个PDF 生成器的PHP(FPD,DOMOMD等)我想知道的是关于一个parsing器。 由于我无法控制的原因,我需要的某些信息只能在pdf中的表格中,我需要提取该表格并将其转换为数组。 有什么build议么?

curl错误18 – 传输closures,剩余未完成的读取数据

当使用curl从URL中检索数据时,我有时(在80%的情况下)得到 错误18:传输closures,剩余未完成的读取数据 然后部分返回的数据丢失。 奇怪的是,当CURLOPT_RETURNTRANSFER设置为false时,这绝不会发生,即curl_exec函数不会返回数据,而是直接显示内容。 可能是什么问题呢? 我可以设置一些选项来避免这种行为吗? 非常感谢您的build议!

如何判断会话是否处于活动状态?

根据请求,可以通过几种不同的方法来判断会话是否已经启动,例如: $isSessionActive = (session_id() != ""); 要么: $isSessionActive = defined('SID'); 但是,如果你开始一个会话,这些都会失败,然后closures它; session_id()将返回先前会话的ID,而SID将被定义。 同样,如果您已经有一个会话激活,那么在这个时候调用session_start()将会生成一个E_NOTICE 。 有没有一个理智的方法来检查一个会话当前是否处于活动状态,而不必诉诸于输出缓冲,closures操作符( @session_start() )或其他同样的操作? 编辑:我写了一个补丁,试图得到这个function包括在PHP中: http : //bugs.php.net/bug.php?id=52982 编辑8/29/2011:新function添加到PHP 5.4来解决这个问题: “通过新function,session_status公开会话状态” // as of 8/29/2011 $isSessionActive = (session_status() == PHP_SESSION_ACTIVE); 编辑12/5/11:在PHP手册上的session_status() 。

有没有办法将json转换为PHP中的xml?

有什么方法可以在PHP中将json转换为xml吗? 我知道XML到JSON是非常可能的。

由于谷歌的图片代理,Gmail中的图片链接被中断

gmail中的图片链接因为Google的Image代理( news1 , news2 )而中断 。 我无法加载我的网站的图像在Gmail中。 实际的图像path是: http : //sampleimageurl.comhttp://img.dovov.comlogo.jpg 但是我在gmail里得到了像这样的图像path: https://ci3.googleusercontent.com/proxy/CUiMBo2ELdin8h5R_jKaarbsjQOZUXM3765smBK1PB4BsKq9EsVziwcOYFqjZqCkRDyu1jzoityEA_PJ=s0-d-e1-ft#http://sampleimageurl.comhttp://img.dovov.comlogo.jpg 有谁知道如何解决这个问题?

在Android上运行AMP(apache mysql php)

我目前正在开源电子商务平台(www.oscmax.com)上工作,我正在尝试解决是否可以部署可以在平板电脑上运行的离线版本。 我曾经希望使用iPad,但事实certificate这很困难(不可能)? a)有谁知道将在平板电脑上运行的AMP(apache mysql php)版本 – 例如。 Android的? 这个想法是有一个在线商店的本地版本,销售代表可以在销售给批发客户时使用,这些客户将在本地存储订单,直到他们发现WiFi或3G信号,然后将新logging合并到networking服务器。 如果我可以让Apache,MySQL和PHP在本地运行(就像使用WAMP,MAMP,LAMP等一样),这将是非常好的,因为应用程序可以在没有互联网连接的情况下使用。 问候,

我怎么能把一个string内的双引号在PHP的ajax JSON响应?

我在服务器的Ajax请求中收到一个JSON响应。 这样它的工作原理: {“a”:“1”,“b”:“hello'kitty'”} 但是我没有成功地在小猫身上加双引号。 当我在Ajax响应中将其转换为\ x22时,它仍被解释为“通过JavaScript,我无法parsingJSON。 我是否也可以在以后逃脱(和可能)? 这个怎么做? 编辑:我不知道,如果我expression得很好:我想这个string里面的“B”parsing后: 凯蒂猫” 如果有必要,我也可以在parsing后添加一个额外的步骤来转换“b”,但我想这是没有必要的,有一个更优雅的方式,所以这种情况自动发生? Edit2: ajax页面是由php生成的。 我现在尝试了几件事情来创buildb的值,所有的结果在页面上的JSONparsing错误: $b = 'hello "kitty"'; // no 1: //$b = str_replace('"',"\x22",$b); // or no 2: // $b = addslashes($b); // or no 3: $b = str_replace('"','\"',$b); echo '{ "a" : "1", "b" : "' . $b . '"}'; 编辑3:这个解决scheme终于奏效: $b = 'hello […]