Articles of PHP

我们可以在php.ini中有2个'extension_dir'吗?

当我安装pdo-pgsql时,扩展名被安装到/usr/lib/php/extensions/no-debug-non-zts-20090626/ ,因此不会自动加载。 在php.ini ,我已经定义了extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626" 。 php.ini片段 ; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626" zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so" zend_extension = "/usr/local/Zend/lib/Guard-5.5.0/php-5.3.x/ZendGuardLoader.so" extension = "eaccelerator.so" extension = "pdo.so" extension = "pdo_pgsql.so" extension = "pdo_sqlite.so" extension = "sqlite.so" extension = "pdo_mysql.so" 修改工作 ; Directory in which the loadable extensions (modules) reside. extension_dir […]

在CentOS 5.4上升级PHP 5.1.6至5.2.x的build议方法

自从这类问题被问到这里已经有一段时间了。 也许推荐的解决scheme已经改变。 我有一个运行RoundCube webmail的CentOS 5.4邮件服务器。 默认情况下,RoundCube预计PHP版本5.2或以上。 CentOS 5停留在5.1.6修订版中,5.2中有一些function的后端。 我禁用了Roundcube的PHP检查,效果很好。 然而,我想要使用的插件之一使用PHP 5.2中引入的方法。 由于PHP和Postgres / MySQL绑定在这种情况下,PHP版本从5.1.6升级到5.2.x的最佳方式是什么? 我已经看到第三方回购,CentOStesting,Fedora …或者我可以从源代码编译。 我想保持这个系统处于稳定状态,以便在下一轮更新期间不会分裂。 任何build议?

如何启用curl,安装Ubuntu LAMP堆栈?

我已经安装了ubuntu Lamp stack.But没有启用,我也不能find在INI文件中列出的扩展名,我手动添加,但它没有工作太。 那么应该如何启用Curl?

我应该租用哪种服务器来同时在线支持10,000个人?

我用php做了一个信息站点,我需要我的服务器可以同时在线支持上万人。 我应该租用哪种服务器? (硬件,操作系统,networking等) 列表项:每页平均执行MYSQL查询6-7次。 列表项:PHP生成html页面。 谢谢。

我如何杀死一个失控的cronjob

我有一个被设置为不断运行的cronjob。 这是一个从twitter发送数据的php文件。 然而,twitter每隔一段时间就会closures,或者我们失去连接,所以我有cron检查每分钟来尝试运行该文件。 php脚本检查一个locking文件,以确保多个副本不运行。 事情是这个脚本将运行几个小时,我想能够杀死它。 不过,我似乎无法使用类似的命令find它 ps ux cronjob是从我的用户开始的,我曾经看过在root下看到它。 我似乎无法find运行的进程。 我在用 /usr/bin/php /var/www/twitter/stream.php 在我的cron文件中执行,我知道它正在运行,因为它每分钟写一个文件到一个目录。 我可以停止cron,但这个过程继续下去,我只需要杀死它。 不知道这是否属于这里或堆栈溢出。

PHP为空白页面提供的用户less于1%

我们最近将我们的网站迁移到了清漆后面的负载均衡的apache集群。 从那时起,一小部分用户报告他们不能查看任何页面。 我已经把这个问题缩小了很多。 这个问题在搬迁前并没有出现,旧的基础设施是一个大箱子。 我们在Rackspace Cloud上运行8个使用Rackspace Cloud负载平衡器(Zeus)负载平衡的varnish 3.0后面的apache2实例,以及总共10台服务器(全部为linux)的2个mysql实例。 用户可以查看静态html文件。 用户可以查看静态资产,如图像。 用户不能查看任何php文件,即使是只包含phpinfo()的简单文件。 当负载平衡器被取出图片时,用户不能查看任何php文件。 apache日志显示没有任何的注意,除了在访问日志。 PHP的错误报告被设置为日志,而不是显示,虽然我把它设置为短时间显示,并且用户仍然没有错误的空白页面。 Apache / Varnish / PHP错误日志显示没有任何说明。 服务器是: Ubuntu Maverick 10.10 Apache 2.2.16-1ubuntu3.1(mpm-worker) PHP 5.3.3-1ubuntu9.5(用于fcgi) PHP APC正在使用中 应用程序在代码点火器上 清漆是2.1.3,现在是3.0.0 – 两个版本都有问题 MySQL是主 – 主设置中的数据库后端,但是由于仅包含phpinfo()的文件的客户端访问问题; 我相信数据库不是问题。 一些configuration的快照: PHP FCGI – http://pastebin.com/6cepWbxp Apache虚拟主机 – http://pastebin.com/FfxhYwSD Varnish VCL – http://pastebin.com/tAcuyfLR 所有运行的apache模块列表 – http://pastebin.com/absHpXm5 我可以提供任何/所有需要进一步debugging的日志,但没有任何关于这个问题的用户注意到,从Apache的典型访问,从PHP没有错误。 我有一种感觉,它可能会涉及到PHP会话存储,虽然我不能确认这一点。 任何深入了解这个问题,非常感谢。 […]

在较低优先级或限制CPU下运行php脚本

我有一个运行一组PHP脚本的bash脚本。 运行时,需要花费一个小时,并将CPU固定在95-99%。 这导致我们的灯栈(主要是Apache进程)的问题,我们的网站在同一台服务器上开始吐出超时或500错误。 我怎么能: 以低优先级运行bash脚本和所有相关任务(也称为PostgreSQL数据库的php脚本),因此web服务器的apache,php和db任务总是被优先化,或者 限制脚本和相关任务的CPU使用率,例如25%的CPU 我不确定哪个是更好的解决scheme。

在freebsd上安装多个php版本和扩展

我目前正在学习如何使用freebsd。 最近我一直在尝试运行多个PHP版本以及各自的软件包。 但是,我似乎在安装时遇到问题。 我的php安装的默认位置是/usr/local/etc/ ,但是我希望能够在/usr/local/etc/php52安装php5.2 , php5.3和/usr/local/etc/php52 , /usr/local/etc/php53和/usr/local/etc/php54 。 使用端口我简单地通过执行cd /usr/ports/lang/php5x && make PREFIX="/usr/local/etc/php5x" install clean 。 现在的问题是:我如何做相同的扩展所有我的PHP versions ? 当我尝试安装php扩展如下: cd /usr/ports/lang/php5x-extension && make PREFIX="/usr/local/etc/php5x/lib/php" install clean ,我得到这个错误 … ===> PHPizing for php53-bcmath-5.3.17 env: /usr/local/bin/phpize: No such file or directory *** Error code 127 Stop in /usr/ports/math/php53-bcmath. *** Error code 1 Stop in […]

使用iptables阻止PHP邮件程序垃圾邮件

我主持一个运行Debian Wheezy的公共Web服务器,以及最新版本的Postfix,Apache,PHP,Spamassassin,ClamAV,rootkit猎手。 Apacheconfiguration了一些虚拟主机,每个绑定到一个用户和SuExec和Suhosin安全。 这些网站运行Wordpress和ModX,按照平均法则,在这台服务器上安装的数量至less有20%的网站在任何时候都会有一些漏洞,无论是来自CMS本身还是来自最新的插件。 我有优秀的MX工具箱网站的通知,监控IP地址对100多个黑名单。 当我听到我的IP地址又被添加到给定的黑名单时 ,我马上ssh,暂停Postfix postfix stop 等待几秒钟,查看邮件队列 mailq 从这里我可以立即告诉源用户/虚拟主机的垃圾邮件,因为所有的邮件来自“[email protected]”,其中“mywebsite.com”是托pipe在虚拟主机,导致问题的域。 然后,我运行一个手动的恶意软件检测扫描使用优秀maldet,问题消失。 如果我在网站上修补所有已知的插件和软件,问题就会消失六个月。 如果我不这样,它会在一周之内回来。 出于testing的目的,我已经让Postfix停留了好几个月,但是一些木马显然绕过了邮件服务器并直接发送邮件。 (我从服务器资源监控,黑名单手表,以及反弹的垃圾邮件回到我的域名,更不用说Postfix mailq填满了65,000个未发送的邮件)。 由于我关心邮件的真实性,而不是通过托pipe网站发送邮件的能力,所以我采取了一些步骤,即确保每个域的SPFlogging不会将自己的服务器识别为该域的权威邮件源。 至less这意味着我的域名不会被自动列入黑名单。 我的问题。 有没有一种聪明的方法来简单地阻止所有使用IPTABLES的传出电子邮件? 我不是说阻止使用电子邮件服务器Postfix发送的邮件,而是所有可能以我的服务器被列入黑名单的stream量? 直到我find解决这个问题的其他方法,我不介意禁止网站发送任何邮件。 这并不理想,因为我使用一些来创造自己的业务,但同时我可以find其他解决scheme。

我如何检查服务器令牌是否closures?

我们从我们的pentest报告中得到反馈,说我们应该closures服务器令牌。 这是阻止人们能够看到我们正在使用哪个版本的PHP,并限制他们针对特定PHP版本的能力。 我已经添加了下面的nginx.conf,http块: server_tokens off; 但是,我可以使用什么工具来检查此更改是否已经生效?