Articles of PHP

如何在Ubuntu上安装/启用PHP的GMP(math函数)?

当调用像gmp_mod这样的gmpmath函数时,我得到: Fatal error: Call to undefined function gmp_mod() 我已经安装了php5-gmp软件包并重新启动了networking服务器,该function仍然未定义。 服务器运行的是Ubuntu 10.04,PHP作为Apache模块运行。 所有软件都是从官方软件包安装的。 如何在PHP中启用GMPmath函数? 我正在寻找一个使用官方软件包的解决scheme,而不是从源代码编译。

如何自动和临时阻止IP地址在很短的时间内在服务器上造成太多的命中?

我的一个LAMP服务器最近被某种脚本机器人用来寻找漏洞。 从外观上来看,它每秒钟发出如此多的请求,使得服务器上的RAM过载,并把整个网站停下来一个小时。 这个“attacK”全部来自一个IP地址。 那么如何在短时间内自动暂时阻止IP地址在我的LAMP服务器上点击太多呢? 什么是最好的工具,我应该在操作系统级别还是通过PHP来解决这个问题?

如何通过terminal实时观看日志?

这是一个基本的问题 – 在电影“社交networking”中,有几个场景,当年轻的Facebook员工正在观看PHP / Apache服务器实时login到他们的TERMINAL中。 我熟悉如何在Ruby / RoR环境中执行此操作 – 但是使用标准LAMP Apache / PHP环境,如何实时主动监视服务器的操作? 我猜在Terminal里有一个简单的方法。

我应该通过FastCGI模拟PHP吗?

我正在通过FastCGI将最新版本的PHP安装到IIS 7.5上,并且所有的说明都指出FastCGI应该通过设置来模拟调用客户端 fastcgi.impersonate = 1 如果我的网站将有这个configuration 专用应用程序池 ApplicationPoolIdentity的应用程序池标识 仅限匿名身份validation(如IUSR) 我为什么要模仿? 我来自ASP.NET背景,IUSR获得只读权限,应用程序池标识获得任何写入权限。 给予IUSR写入权限通常会打开WebDAV漏洞的大门。 所以我不愿意让PHP像IUSR一样运行。 我找不到很多人问这个问题( 1 | 2 ),所以我觉得我必须要失去一些东西。 有人能为我澄清这个吗?

如何在200个以上的请求/秒中扩展php5 + MySQL?

我正在调整我的主页的性能,目前它处理大约200个请求/秒3.14.by其中的3个SQL查询,并在3.14.by /论坛这是phpBB论坛20个请求/秒。 奇怪的是,在一些VPS和专用的Atom 330服务器上,数字大致相同。 服务器软件如下:Apache2 + mod_php prefork 4个孩子(在这里尝试了不同的数字),php5,APC,nginx,memcached用于PHP会话存储。 MySQL被configuration为可用RAM的大约30%(VPS上约150Mb,专用服务器上约700Mb) 这看起来像是有一个瓶颈,不允许我走高,有什么build议吗? (即,我知道less于6个SQL会使速度更快,但这看起来不是一个限制因素,因为由于caching查询,sqld最多不超过百分之几) 有没有人testing踢预先apache2和离开只是nginx + PHP是更快? 一些更多的基准 Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新:看起来瓶颈是MySQLcaching数据的性能。 具有单个SQL的页面显示为354req /秒,具有6个SQL – 180 req / sec。 你觉得我可以在这里调整什么? (我可以为MySQL分出100-200Mb) [client] port = 3306 socket […]

如何将指令添加到AWS Elastic Beanstalk上的php.ini?

我想将这些PHP设置添加到我的Elastic Beanstalk环境中: upload_max_filesize = 64M post_max_size = 64M 这些选项不能使用.ebextensions option_settings进行设置: Namespace | Extend ———————————————|——- aws:elasticbeanstalk:application:environment | Yes aws:elasticbeanstalk:container:php:phpini | No 如何将自定义设置添加到Elastic Beanstalk容器中的php.ini中?

如何安装旧版本的pecl软件包

我有这个代码 $passengerId = new \MongoId(oPassenger->getId()); return $this->createQueryBuilder('Device') ->update() ->multiple(true) ->field('activated')->set(false) ->field('passenger')->unsetField()->equals($passengerId) ->field('_id')->notEqual($deviceId) ->getQuery() ->execute(); 在我的开发服务器上工作得很好,但在本地机器上崩溃。 在dev返回运行pecl list APC 3.1.13 beta amqp 1.2.0 stable intl 3.0.0 stable mongo 1.3.7 stable 和当地的回报: mongo 1.5.6 stable xdebug 2.2.5 stable 我的机器上的崩溃消息是 "name":"MongoException","message":"Invalid object ID"},"code":500} 我尝试降级我的本地版本的mongo,但我不能用pecl的糟糕文档来弄清楚。 例如,我试过这个: sudo pecl upgrade -f -c channel://pecl.php.net/mongo-1.3.7 但我一直在获取channel does not exist我所有的渠道排列。 也运行mongod –version在本地返回数据库版本v2.6.0 ,在dev上返回数据库版本v2.4.3 […]

我需要什么样的服务器来处理一天的一千万个请求和MySQL查询?

我是服务器pipe理的新手,我正在寻找一个强大的托pipe服务来托pipe我的新网站。 这个网站基本上是一个移动在线游戏的后端,它将: 每天处理多达1000万的HTTPS请求和MySQL查询 在硬盘上存储高达2000GB的文件 每月大概有5000 GB的数据传入和传出 它运行在PHP和MySQL上 在mySQL数据库中有1000万条logging,每个logging有5-10个字段,每个字节大约100个字节 我真的不知道我需要什么样的服务器来处理这些需求,我的问题是: 我需要专用服务器或VPS的CPU / RAM? 哪些托pipe公司能够提供这种专用服务器或VPS? 云计算呢? 我研究过亚马逊EC2,但对我来说似乎很复杂。 我已经联系了Rackspace,但奇怪的是他们说Cloudsites不适合我的要求。 我不知道是否有其他云托pipe公司。 任何其他的替代方法?

Apache2代理超时

我有Apache2与PHP + PHP-FPMconfiguration根据: http://wiki.apache.org/httpd/PHP-FPM 我正在编写一个需要很长时间才能在内部虚拟主机上执行的脚本,但是如果脚本在30秒内执行,所有内容都将保持超时。 我的apache日志告诉我: [Wed Apr 17 21:57:23.075175 2013] [proxy_fcgi:error] [pid 9263:tid 140530454267648] (70007)The timeout specified has expired: [client 58.169.202.172:49017] AH01075: Error dispatching request to :, referer: 当试图运行脚本时,我会在执行完30秒后收到503 Service Unavailable 。 从逻辑上讲,这意味着我有超时指令或设置为30秒,但我有这些在我的Vhost的configuration: Timeout 600 <IfModule proxy_module> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/home/pyrokinetiq/scripts/$1 timeout=600 ProxyTimeout 600 </IfModule> (php-fpm在我的端口9001上运行) 我也试着把httpd.conf的Timeout和ProxyTimeout没有区别。 似乎有另一个超时设置的某个特定于mod_proxy_fcgi ,但我找不到它。 我从官方tarball安装了Apache2的httpd,没有一个mods似乎有任何configuration文件。 如果任何人都可以指出我正确的方向,将不胜感激。

在Ubuntu上同时使用多个php版本

我希望能够在运行Ubuntu 12.04的开发框中运行多个php版本。 我想要完成的是,当我使用localhost作为域默认使用(让我们说php 5.3.17)。 当我使用域名为php 5.4.7时使用547.localhost。 我见过一些教程,使用fastcgi这个工作,但直到现在我还没有能够得到它的工作。 我看过这些教程: http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/ http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/ 就我所知,我已经做了所需要的一切。 问题是,PHP根本不运行。 当我去http://localhost/somephpfile.php它只是输出的PHP文件的来源。 对于http://547.localhost/somephpfile.php 。 我会分解我所采取的步骤,希望有人能够发现我错过了什么。 首先,我使用sudo apt-get install lamp-server^ phpmyadmin安装了一个默认灯pipe栈。 在此之后,我有一个运行PHP版本的工作的开发服务器。 然后我用phpfarm创build两个php安装,一个用于5.3.17,一个用于5.4.7。 phpfarm的地方是/etc/php/phpfarm ,所以可执行文件在/etc/php/phpfarm/inst/php-{version}/bin 然后,我启用suaxec和fastcgi的Apache和disabe mod_php与sudo a2enmod fastcgi actions suexec && sudo a2dismod php5 接下来,我编辑了/etc/apache2/mods-enabled/fastcgi.conf来读取: <IfModule mod_fastcgi.c> FastCgiIpcDir /var/lib/apache2/fastcgi FastCgiWrapper /usr/lib/apache2/suexec FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate ScriptAlias /php-fcgi/ /var/www/cgi-bin/ </IfModule> 然后在/var/www/我创build了一个文件夹cgi-bin,并在这个文件夹中有两个文件,每个php版本如下(我只显示了5.3.17 […]