Articles of PHP

禁用DNScachingPHP

我需要在脚本中获取DNS的最新Alogging。 脚本正在做一些监视操作。 DNSlogging的默认TTL为5分钟,但监控脚本每分钟运行一次。 我正在使用PHP的函数dns_get_record来获得Alogging,但我想知道是否有一种方法,我可以忽略TTLcaching,并从DNS服务器获取logging,而不是caching。 当然,任何强制这样的方式,以便没有networking级别的caching是适用的,每次我运行脚本,它实际上命中DNS服务器? 感谢Sparsh Gupta

Zend Server中“重启PHP”是什么意思?

多年来,我一直在使用Apache的Apache,既作为独立安装(Windows和Linux),也作为Windows上的WAMP堆栈的一部分。 今天,我决定尝试Zend Server CE ,并感到惊讶的是,它提供了两件事情: 最初的Apache服务监视器,它允许我重新启动Apache Zend Controller应用程序,它有一个“重新启动PHP”button 我从来没有想过“重新启动PHP”,因为我习惯将PHP看作是Apache模块。 AFAIK,没有办法“重新启动PHP”,但是通过重新启动Apache来应用新的PHP设置。 “重启PHP”只是在幕后重启Apache,还是在做别的事情?

Amazon AWS微型实例性能 – Apache2和PHP

我已经开始为在Ubuntu上运行Apache2和PHP的队友做一些工作,并且CPU正在发挥作用。 我真正关心的是使用Micro实例是否适合面向生产/公众的网站。 我的直觉是没有,使用标准或高级实例将是一个更好的主意,但我只是开始在AWS中玩,我只是想看看别人做了什么。 现在他确实运行了一些Load Balanced,但他不得不closures实例,我将着手设置Cloudwatch为他自动执行此操作,直到能够更好地处理他的应用程序引擎盖。 我知道这是一个非常模糊的问题,我没有提供很多关于设置的细节,但是我仍然在加快他的网站。

通过基于脚本path的open_basedir保护PHP

我有几个用户在服务器上运行PHP脚本,我想locking它,使他们的脚本只能访问他们的www目录中的文件(它不使用Linux用户帐户,所以没有主目录) 。 open_basedir似乎是一个明显的select,但我怎么能根据脚本运行的位置来设置该参数? 很明显, open_basedir的值对于每个用户都是不同的。 我在Ubuntu 11.04上运行PHP5-FPM-PHP5作为nginx连接的FastCGI进程 任何帮助或build议表示赞赏!

从Linux传出的邮件没有被传送

我似乎无法通过我的php脚本或通过我的Centos 5.5 LAMP服务器上的Linux控制台发送邮件,当电子邮件地址转到由我的方框托pipe的域。 我认为这是与内部的电子邮件路由或DNS服务器使用的DNS服务器不报告正确的MXlogging有关。 基本上我的箱子不托pipe任何邮件,它都托pipe在谷歌应用程序。 我的名字服务器由第三方供应商托pipe,我正在使用webmin。 Webmin无法识别第三方提供商的设置。 我不确定如何解决这个问题。 以前,当我在cPanel服务器上遇到这个问题时,我会编辑remotedomains和localdomains文件,将域从一个文件移到另一个文件,这样可以解决问题。 我需要提供什么信息给任何人以解决问题是什么? 谢谢

PHP进程一次只运行一个,始终占用一个内核的100%

我们有七个使用IIS编写的运行在Windows 2008服务器上的PHP网站。 他们现在都很慢。 当我查看任务pipe理器时,我看到大约10个php-cgi.exe进程,他们都占用了CPU的0%,除了一个占25%。 这是一个四核服务器,所以它是100%的一个核心。 如果我观察几秒钟,25%的过程将会变为0%,另一个不同的php-cgi.exe过程将跳到25%。 所以所有的php-cgi.exe进程只是排队等待一个核心,每个进程使用100%的处理器。 这7个站点中的每一个都位于IIS的自己的应用程序池中,我们正在使用FastCGI。 PHP版本是5.3。 有任何想法吗? 谢谢! 编辑:这是我们的FastCGI设置: <fastCgi> <application fullPath="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" monitorChangesTo="C:\Program Files (x86)\PHP\v5.3\php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000"> <environmentVariables> <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <environmentVariable name="PHPRC" value="C:\Program Files (x86)\PHP\v5.3" /> </environmentVariables> </application> </fastCgi> 编辑#2:我们部分想出来。 由于权限问题,PHP从来没有垃圾收集会话,所以有数百万个会话文件。 但是我仍然想知道为什么它只使用一个核心。 现在网站要快得多,但我们还没有解决。 有人知道吗?

在Solaris 10 64位上configurationPHP

我们目前在Solaris 10服务器上运行PHP 5.2.13。 我需要启用一些额外的function,所以我去运行configuration脚本,但我得到一些错误。 我做了一个'export CFLAGS =“ – m64”'来确保在64位模式下编译GCC,但是看起来我没有64位版本的libiconv.so。 我试着用'–without-iconv'运行脚本,但没有骰子。 这是我的config.log的结尾: configure:20017: checking for strftime configure:20471: checking whether to enable LIBXML support configure:20519: checking libxml2 install dir configure:20548: checking for xml2-config path configure:20706: checking whether libxml build works configure:20733: gcc -o conftest -m64 -D_POSIX_PTHREAD_SEMANTICS -R/usr/ucblib -L/usr/ucblib -R/usr/local/lib/../lib/gcc/sparc-sun-solaris2.10/3.4.6 -L/usr/local/lib/../lib/gcc/sparc-sun-solaris2.10/3.4.6 -R/usr/local/lib -L/usr/local/lib conftest.c -lrt -lresolv -lm -lnsl […]

为什么有些Web客户端要求一个名为“caching”的页面?

我们在apache错误日志中看到这样的错误: [Thu May 17 14:32:35 2012] [error] [client 192.168.1.1] File does not exist: /home/www-data/mywebsite.com/r/cache, referer: http://www.mywebsite.com/r/1010 这很奇怪,因为: 代码/url中没有关于文件夹/文件“caching”的参考。 文件夹/文件“caching”不存在 客户端随机尝试访问网站上的任何地方的“caching”文件夹。 它总是试图访问该模式下的文件夹/文件“caching”: 模式: /level1/…/levelwhatever/filename (referer) /level1/…/levelwhatever/cache 我们运行一个LAMP(Debian stable:PHP 5.3.3-7 + squeeze9,我们也使用APC 3.1.3p1)。 我们使用Google Analytics和AdSense。 我们不知道如何重现这个问题。 注意:我将代码中的用户IPreplace为隐私。

如何禁止使用disable_functions?

我显然不是第一个有这个问题的人,但是我不能find这种情况的答案。 我想locking一点PHP,更具体地说是使用disable_functions。 环境是CentOS 6.2 / PHP 5.3.3 fcgid / Apache 2.2.15: 什么是正确的Apacheconfiguration(AllowOverride等)来禁用任何PHP设置通过.htaccess更改 ? 所有其他覆盖都可以(当前设置是AllowOverride All) 什么是正确的configuration禁止有效使用disable_functions除了主php.ini (如在禁止使用disable_functions在/ home / myvhost / etc / php5 / php.ini或任何目录内的该vhost public_html。另一种方式说这个:唯一有效的disable_functions来自主php.ini)? 如果#2是不可能的,至less是什么适当的configuration,以禁止虚拟主机有效地使用任何php.ini,但虚拟主主机 (/ 主机 / MyVhost / etc / php5 / php.ini )? 谢谢

Nginx错误日志不起作用

我已经尝试了很多东西,但不能够使错误日志工作,但访问日志工作正常。 这里提到的解决scheme不适合我: http://mailman.nginx.org/pipermail/nginx/2009-February/009567.html (试图把错误作为error_log婴儿车 – 没有运气) http://forum.nginx.org/read.php?2,58447,58447 (停止nginx后不要过时) 这里是虚拟主机信息: server { server_name .qa.domain.ca; root /var/www/qa.domain.ca; access_log /var/log/nginx/qa.domain.ca/access.log; error_log /var/log/nginx/qa.domain.ca/error.log; index index.html index.htm index.php; # redirect to non-www if ($host ~* ^www\.(.*)){ set $host_without_www $1; rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; } if (-d $request_filename){ rewrite ^/(.*[^/])$ /$1/ permanent; } location / { # First attempt to serve […]