Articles of PHP5

一些(但不是全部)cron作业停止运行。 重新启动cron修复它,但是造成了什么?

我正在运行一个每分钟运行一次crontab的Ubuntu Server 10.04,这个文件中有很多工作。 每个作业都是一个PHP脚本来执行。 今天早些时候,似乎有些(但不是全部)脚本没有成功执行。 我检查了一下,cron还在报告中,但脚本仍然没有做好工作(尽pipe其他人)。 运行: sudo service cron restart …解决了问题,他们都开始了,但我需要知道发生了什么,以及如何防止它再次发生。 几个星期前,类似的事情发生了,所以我需要深究造成这种情况的原因。 我已经检查了/ var / log / syslog,并且在我认为发生的时候我能看到的唯一的事情是这样的: Feb 25 11:39:01 myusername CRON[10514]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete) 据我所知,每小时运行一次,所以我不认为这是可能的嫌疑。 在整个日志中有一些munin条目,我不再使用,所以可以删除,如果这是一个嫌疑人。 唯一启用的自动更新是软件包列表 – 是否可能导致任何问题? 我的/etc/apt/apt.conf.d/10periodic文件如下所示: […]

使用ODBC到DB2的LAMP

我使用ODBC将openSUSE LAMP和Ubuntu LAMP服务器连接到DB2。 我们用于开发环境的openSUSE系统,最后部署在Ubuntu系统上。 在Ubuntu上,当SQL语句返回空值时,我们会得到段错误(请参阅相关错误报告的链接),但在openSUSE上不会发生这种情况。 这两台机器都运行64位,这里是两个盒子和他们的软件的版本: OS Version Kernel Apache PHP openSUSE 12.2 3.4.11-2.16-default 2.2.22 5.3.15 Ubuntu 11.04 2.6.38-11-server 2.2.17 5.3.22-1~dotdeb.0 (upgraded from 5.3.5-1ubuntu7) 链接: https://bugs.php.net/bug.php?id=59405 https://bugs.php.net/bug.php?id=54007 阅读php.net上的更新日志,看起来这个bug在5.3.11中得到修复,但升级仍然没有解决我们的问题。 最后,我逐行比较了两台服务器的phpinfo()输出,发现了一个看起来像红旗的部分,但不知道如何解决这个问题。 在ODBC部分中,ODBC_LFLAGS选项显示: openSUSE -L/usr/lib64 Ubuntu -L/usr/lib 这两个系统都是64位的,并且configuration为使用64位版本的iSeriesAccess和unixODBC。 由于IBM不支持Ubuntu,所以iSeriesAccess必须使用外来的RPM转换。 不幸的是升级Ubuntu或切换发行版不是我们的select。 如何切换Ubuntu使用ODBC_LFLAGS的/ usr / lib64? 还有我可能忽略的其他问题吗?

PHP 5.4.13“程序入口点不能位于dll php5ts.dll”

我在D盘上的Windows Server 2008 R2上手动安装了PHP 5.4.13。 今天我试图通过命令行直接使用php.exe运行脚本,但得到两个错误popup窗口: The procedure entry point php_set_error_handling could not be located in the dynamic link library php5ts.dll The procedure entry point php_checkuid could not be located in the dynamic link library php5ts.dll 然后,我意识到在C:\ Program Files中有一个旧的PHP 5.2,所以我删除了它。 然后,我在命令行上遇到错误: PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php5\ext\php_gd2.dll' – The specified module […]

pecl_http:Apache无法加载http.so

我在Mac OS 10.8.3上使用MAMP 2.1.3。 我刚刚用Mac Ports + PECL安装了pecl_http扩展。 http.so存在并位于(在php.ini中正确设置): /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/ 当我启动Apache时,这里是Apache错误的日志: [24-Apr-2013 20:15:38 Europe/Berlin] PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/http.so' – dlopen(/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/http.so, 9): Symbol not found: _output_globals Referenced from: /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/http.so Expected in: flat namespace 有任何想法吗 ? 谢谢 !

使用COM将网页转换为PDF所需的IIS服务器重新启动

我们的生产Web服务器有一个恼人的问题。 Windows 2008 R2 x64,完全修补,使用PHP 5.同时安装的是ABC PDF,PHP将调用COM对象将网页转换为PDF并呈现给用户。 2-8周或正常运行后,php不能再将页面转换为PDF,并抛出像这样的错误未捕获exception“com_exception”与消息“来源:ABCpdf 说明:无法呈现HTML。 无法创buildMSHTML文档。 COM错误80070008.没有足够的存储可用于处理此命令 下面是我尝试过的没有成功的修复: 1. IISRESET 2.重新安装并重新注册ABC PDF 3.closures服务器上所有其他非关键服务 4.已validation,我们在所有驱动器和RAM上都有足够的磁盘空间 5.修改ABC PDF以使用与之一起安装的Mozilla浏览器引擎,而不是依赖于安装在Web服务器上的IE9 6.将一个服务器从8GB升级到32GB RAM,这对于成功运行的行为或时间没有影响 我有一个MS NLB群集中的三个相同的Web服务器。 他们都将在24小时之内开始展示这种行为。 只有完整的服务器重新启动才能清除此问题,并允许继续创buildPDF。 build议或类似的经验?

php5-fpm pm ondemand仍然是内存问题

在从dynamic切换到ondemand我的内存使用情况在我的1GB VPS上减less了,但似乎在一些高负载情况下,服务器仍然卡住。 这是一个具有1GB真实RAM和4GB“假内存”(SSD Cache)的VMWare VPS。 我安装了newrelic服务器监控,并意识到这个问题似乎仍然是php5-fpm。 服务器负载达到150(2 cpu系统),所有php-fpm池产生最多10个孩子,吃了近2.5 GB的RAM,而系统的平均RAM使用量是300 MB。 如果我正确理解,所有的备用服务器设置是没有用的,产生的孩子应该在请求完成后死亡。 所以我唯一能做的就是进一步降低max_children ,但是因为我有30多个泳池,所以我觉得这样做对我来说都不会有任何帮助。 这是我的标准池configuration: [web2] listen = 127.0.0.1:9011 listen.allowed_clients = 127.0.0.1 user = web2 group = client1 pm = ondemand pm.max_children = 10 pm.process_idle_timeout = 10s; pm.max_requests = 0 有没有人有一个想法如何优化这个设置,以便服务器不会在高负载情况下挂起? ****** EDIT ******我试过process.max = 32但是我很不确定在使用ondemand时候甚至会改变什么。 服务器今天再次崩溃,我不知道是什么问题。 完全适中的交通。 如果我急于在页面上使用blitz.io,一切都会顺利进行。 他生成了所有10个孩子,并尽可能快地传递页面,同时提供500多个请求,而不会使服务器爆炸。

尝试使用phpize54在mac上编译phpredis

我使用mac端口安装了php 5.4。 然后我git克隆phpredis存储库( https://github.com/nicolasff/phpredis )。 然后,我执行这些命令: phpize54 ./configure make && make install 问题是巨大的图书馆得到编译与PHP 5.3并安装在这个目录中: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/ 我需要它被编译使用PHP 5.4并安装在这个目录中: /opt/local/lib/php54/extensions/no-debug-non-zts-20100525/ 任何人都知道我在做什么错了? 在此先感谢你们! 编辑: 此外,当我写make test ,我得到这个错误: PHP Warning: PHP Startup: redis: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20100525

PHP文件被未知的实体caching

我在我的服务器上遇到了一个奇怪的caching问题,我正在处理的项目此时没有启用任何caching,但是它自己安装了APC的服务器(默认情况下设置为caching所有内容,现在禁用)。 问题是,我的旧代码仍在运行,我不知道如何获得修改的代码来触发。 我试图完全删除文件,这使得我的项目错误与“丢失的文件”,因为它应该,但一旦我上传我的文件(新版本),它开始再次提供旧版本的文件。 我上传了一个带有apc_clear_cache();的唯一标签的文件apc_clear_cache(); 和apc_clear_cache( 'opcode' ); 但这似乎没有帮助。 我也已经注意到APC加载PHP,但它仍旧服务于旧文件,所以我想知道是否有潜在的东西导致这种积极的caching。 Apache2,PHP,APC等都是使用Debian Wheezy上的Aptitude加载的 PHP 5.4.4-14 + deb7u3(在mod_php下运行)Apache 2.2.22 在每个configuration更改和禁用APC之间,我做了一个完整的Apache重启。 我已经检查了apache2模块列表,没有caching模块加载,也没有服务,如清漆等运行。 更新 做了一些额外的testing,在输出<?php标签之前添加了一些html输出,所以php标签之外的内容似乎没有被caching。 include_once()包含未更新的文件,禁用APC似乎对正在被错误地服务的文件没有任何影响。 问题是尝试在表单提交后使用HTML2PDF生成.pdf文件 PHP Fatal error: Uncaught ERROR File : /lib/html2pdf/html2pdf.class.php Line : 1319, Impossible to load the image 'logo.png' thrown in /lib/html2pdf/html2pdf.class.php on line 1319 新版本的文件使用logo.jpg

由于ucf和文件acls,安装nagios失败

当安装Nagios给我这个错误,并因此在我的服务器上保留未configuration的包。 我寻求一些帮助,但他们没有告诉我确切的解决scheme。 有没有人有一个修复。 cp: preserving permissions for '/var/lib/ucf/hashfile.7': Operation not supported dpkg: error processing php5-common (–configure): subprocess installed post-installation script returned error exit status 1 Setting up nagios-plugins-basic (1.4.16-1ubuntu3) … 看起来像ucf的一些问题。

“无法分配内存”使用composer从laravel git使用fork安装composer

每当我尝试安装新的laravel项目,我收到以下错误: PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed – Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:990 有没有人有任何想法,为什么这个错误可能发生,我在nginx上运行服务器。 如果有任何其他细节可能需要,列出他们作为评论,我会愉快地编辑+更新post,谢谢。