我在使用Apache的Windows2003服务器上运行PHP5.3.3时遇到一个奇怪的问题。有时已启动的脚本完成了它们正在执行的工作,但进程并未关闭。这可能会留下大量孤立的php-cgi.exe进程在运行,但显然不会执行任何操作(不使用任何CPU时间)。一段时间后,这些累积起来并导致服务器出现性能问题。PHP脚本本身似乎没有问题,因为正常情况下它运行和关闭都很好,只是有些地方没有,而且似乎也没有任何明显的模式。此外,我们在从PHP4迁移到PHP5.3之前没有遇到这个问题。有什么想法吗?感觉好像我在Apache或PHP的某个地方出错了?我没有使用apachedll来运行PHP,这对我来
我被要求帮助解决某人的网站问题。它是用php编写的,在linux机器上,使用apache服务器和mysql,我以前从未使用过任何这些(除了学校的linux之外)。我解决了大部分问题(无论使用何种语言,大多数代码实际上是相同的)但是在处理大文件时仍然有一页超时。我相当确定问题是某处超时,但我不知道所有php超时会在哪里。我已经调整了php.ini中的max_execution_time、max_input_time、mysql.connect_timeout、default_socket_timeout和realpath_cache_ttl,但大约10分钟后仍然超时。我可以增加哪些其他设
我正在编写一个需要通过命令行(使用shell_exec())运行perl脚本的脚本。为了设置脚本,我需要在我这边生成一个GPGkey,并将他们的公钥导入我的GPGkey环。当我以ROOT用户身份运行时,perl脚本工作正常,但是当通过PHP运行时,它会抛出此错误消息:“尝试签署请求时发生错误”我认为这意味着我在我的根用户中设置的GPGkey无法访问PHP在(即apache)下运行其shell命令的用户。我应该如何解决这个问题?我不知道我是否需要以apache身份登录并导入key,或者是否有一个命令以root身份运行以允许将它们共享给apache用户...任何想法都很好:)
我在Apache下运行PHP,我想向页面发送缓慢的POST数据,该页面将在POST数据到达时将消息写入数据库。我使用WebRequest从.NET应用程序发送数据,并将SendChunked设置为true。不幸的是,看起来PHP脚本直到所有POST数据都到达后才开始执行。我查看了apache日志,发现请求立即开始,但是PHP脚本中的echostrftime(...)语句显示它直到所有POST数据之后才运行收到了。有什么方法可以让PHP立即启动?我尝试在PHP.ini文件中设置always_populate_raw_post_data=Off,但这没有任何区别。我的请求的内容类型为app
我的网站在/var/www/invent中。我在/var/www/invent/library中有zend-framework。基本上我想要的是当我访问http://localhost/invent时就像我在apacheconf文件中定义了一个虚拟主机“发明”一样工作(比如访问http://invent)。我怎样才能做到这一点?我在Windows下开发了我的项目,设置了虚拟主机,但我不想继续这样工作,因为我无法在不允许我创建虚拟主机的公共(public)虚拟主机服务上部署我的应用程序。更不用说如果我在LAN上部署应用程序,我还需要配置客户端的主机文件......请帮助,这是zend最烦
我刚刚从共享托管环境切换到专用服务,在测试我的代码时,我发现某些PHP函数不可用:Fatalerror:Calltoundefinedfunctionmb_strtoupper()我可以完全访问WHM,并且可以使用一系列选项重新编译PHP。作为新手,我觉得最好将我不熟悉的选项保留为默认设置。PHPINFO()声明我正在运行5.2.9版和APACHE2.2。我是否错过了配置APACHE的选项-是否需要打开某些选项才能获得对PHP功能的完全访问权限? 最佳答案 这个问题最好在serverfault.com上提出但是,关于您的版本,您很可
我有一个长时间运行的脚本无缘无故地消失了。它应该运行8个多小时,但在一两个小时后就消失了,没有错误,什么也没有。我尝试通过CLI和通过http运行它,没有区别。我设置了以下参数:set_time_limit(0);ini_set('memory_limit','1024M');我一直在监控内存使用情况,并没有超过200M还有什么我想念的吗?为什么会灭绝? 最佳答案 一种可能的解释是PHP垃圾收集器干扰了脚本。这可能就是您看到随机死亡的原因。当垃圾收集器打开时,只要根缓冲区满了,就会执行循环查找算法。PHPmanual状态:Thera
我已经为我的index.php创建了一个符号链接(symboliclink)(使用ln-sindex.php测试)来尝试获得一个没有.php扩展名的“更漂亮”的url。但是,当我访问https://myservername.com/test我得到的是原始php文件,而不是解释后的内容。如果可能的话,我想避免必须打开mod_rewrite,因为它只针对这一个文件(我使用的是CodeIgniter框架,它为其余文件执行url转换)。有没有办法让apache读取真正的目标文件而不是符号链接(symboliclink)来确定它是一个php脚本?有没有更好的方法来实现这一点?
嘿,我现在有一个神秘的问题......我的网站上有登录服务。我使用Doctrine作为ORM。当用户输入正确的用户名和密码组合时,我尝试将检索到的用户对象存储在我的session中以备后用。$user=newmodels\User;$user=$em->getRepository('models\User')->findOneBy(array('username'=>$this->input->post('username'),'password'=>hash("sha512",$this->input->post('password'))));if($user!=NULL){sess
我花了几个小时在谷歌上搜索,并搜索了Apache站点,但我找不到任何关于Apache如何处理文件上传的文档——尤其是大文件。我读过anecdotalreports在上传完成之前不涉及PHP,这是我所期望的。但至于Apache在上传过程中做了什么,我找不到任何东西。我热衷于文档的原因是Apache将上传内容完全存储在内存中,而不是将它们流式传输到磁盘。httpd将使用我正在使用的服务器上可用内存的每个字节,直到它崩溃。通常,消耗的物理内存量是正在上传的文件大小的3倍,并且增加了大约5MB/s(远不及我的上传速度)。我已经在我正在使用的另一个LAMP堆栈上测试了相同的请求,并且Apache