Articles of PHP

在AWS Elastic Beanstalk上安装mongo

我在AW上运行弹性beanstalk。 使用64位unix php 5.3。 我想安装mongo驱动程序,所以PHP将与mongo交谈。 通常的命令是: sudo pecl install mongo 根据AWS的支持,这样做的方式是通过.ebextensions中的.config文件。 我似乎弄清楚了为了运行一个脚本来完成它所需要的格式。 我正在写的脚本是这样的: #!/bin/bash sudo pecl install mongo 和.config文件我看起来像: container_commands: command: command: bash .ebextensions/mongo.sh 我必须这样做是非常错误的,因为每次我尝试部署时,尝试运行命令时出现错误。 最终结果我希望它有使用.config方法安装mongo php扩展 谢谢你的帮助

PHP的FPM或Nginx的封顶?

我使用blitz.io基本上爆炸我的网站与stream量,看看我的“学习系统pipe理员”如何在负载下举行。 我意识到这与现实世界一样有效或与大锤相关,但当我改变设置时,我真的只想看到一个比较。 我的设置按通信顺序(全部在Amazon EC2上),亚马逊Linux AMI 1个亚马逊弹性负载均衡器 两个Nginx服务器,上游… 1个Php-fpm服务器(很快就是2个)。 连接到… 1个RDS mysql服务器 一切都落后于VPC 对于我的testing,我所服务的网站是使用W3 Total Cache的Wordpress安装。 本来我只有1x Nginx + 1x Php-fpm(暗含1x Rds),都是微服务器。 我相信我得到850 req / sec,然后才开始大量超时(times> 1000ms)。 在此期间,CPU在phpfpm和nginx上都达到了100%。 所以.. 然后我添加了第二个nginx服务器。 之后,我将两个nginx服务器都转换为“大”,同时将php-fpm转换为“大”。 我把我的php-fpm设置乘上了5倍,而令我惊愕的是testing几乎完全相同……这次唯一的区别是CPU和内存在所有3台服务器上都达到了5%左右。 这就像几乎没有任何资源被使用。 我查看了我的日志中的错误,并没有真正看到太多… 我已经看了很多次我的设置,我知道我错过了一些巨大的… WordPress的部分的网站内容可以完全可以…如果我更新任何东西,我会清除caching。 Theres下半部分我的网站,但它的所有静态内容,没有数据库查询。 我使用一个PHP的“加载器”脚本,从包含文件中加载各种内容,但是这是非常轻量级的。 我听说过有关ulimit或者更确切地说..可能是一个问题? 我正在尝试在1分钟内做6000个用户 我的configuration 服务器1:Nginx nginx.conf user www www; worker_processes auto; events { worker_connections 1024; } error_log /var/log/nginx/error.log warn; […]

无法在CentOS上安装php-intl

当我运行: yum install php-intl 我得到这个错误: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.as29550.net * epel: ftp.nluug.nl * extras: mirror.as29550.net * updates: mirror.for.me.uk Setting up Install Process Resolving Dependencies –> Running transaction check —> Package php-intl.x86_64 0:5.3.3-22.el6 will be installed –> Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 for package: php-intl-5.3.3-22.el6.x86_64 –> Finished Dependency […]

为什么当PHP与PHP代码不在同一台机器上时,PHP – > MSSQL非常慢

在尝试将我们的网站移动到Azure的过程中,我们发现我们的PHP代码与MSSQL交谈时出现问题。 在当前的专用主机上(托pipePHP和数据库),进入页面通常不到2秒。 我也运行通过SMS所需的查询,他们不到1秒。 查询返回的数据量非常小 – 10-20条logging,总共不到100kb。 通过Azure托pipe的网站(连接到Azure SQL数据库),同一页面需要大约40秒才能加载。 进一步的调查显示,这可能是由于数据库与PHP不在同一台机器上导致的 – 当原始网站指向远程数据库(另一台专用机器或Azure SQL实例)时,页面加载时间会上升到40秒的范围。 在Azure的情况下,网站和数据库位于同一地区(N欧洲)。 使用我们的机器进行testing时,都位于英国。 目前的虚拟主机运行PHP 5.4和Microsoft SQL Server Express Edition。 Azure网站运行在PHP 5.4上。 在这两种情况下,我们都使用3.0.1 Microsoft SQLSRV驱动程序 连接到远程SQL DB时,如何提高性能? 我交叉张贴在这里,以响应在stackoverflow相同的问题: https : //stackoverflow.com/questions/15835623/why-is-php-mssql-very-slow-when-the-db-is-not -酮的-相同-机-作为最PHP

Web服务器响应时间的可变性

我有Apache2 Web服务器和微小的PHP脚本 <?php echo '1' 刷新页面时,Google Developers Tools中的等待时间值可能在24-26毫秒到300-350之间变化,甚至超过1秒。 它依赖于什么? 如何将这个值控制在理想的范围内或者最小化?

什么可能导致一个PHP脚本作为一个cron作业运行到D状态?

我的服务器运行Ubuntu 12.04 LTS(精确),我有一个奇怪的问题。 服务器托pipe一个用于数据收集的大型网站。 该网站是在PHP中,并使用Zend框架。 数据在MySQL数据库中。 部分数据(来自调查)每小时(cron作业)被渲染成Excel文件(使用PHPExcel库)。 这个过程(一个PHP / Zend框架脚本)是为每个客户端完成的,每个客户端都有一个不同的数据集,有时会花费很多时间(30分钟以上)。 一旦达到30分钟,进程的状态就会从R变为D.奇怪的是,D状态的进程通常是“不可驱动的”,但是这个进程可以像任何其他进程一样被杀死。 以下是正常运行过程中的示例输出: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND www 16089 0.5 0.8 311640 31708 ? S 09:34 0:39 /usr/sbin/apache2 -k start www 17635 0.6 0.6 305020 23396 ? S 10:52 0:18 /usr/sbin/apache2 -k start www 18520 0.0 0.0 63104 1960 […]

如何确定在Apache的PHP内存使用情况?

对不起,如果我没有正确地说我的问题。 我使用php函数“memory_get_usage()”来查看在运行的脚本上分配给PHP的内存量。 在服务器AI获得2 MB左右。 (CentOS 6,Apache 2.2.15)服务器BI上的相同脚本大约有1 MB。 (Mac OSX,Apache 2.2.22) 我应该在哪里检查,或者我应该如何微调服务器A上的apache或php设置,以便在服务器B上有相似的内存占用空间? 例如,内存脚印是否受到加载的php扩展的影响?

Xcache已启用,但没有caching?

我在Debian 6服务器上安装了Xcache,但是尽pipe被激活了,但没有页面被caching。 Apache是​​通过repos安装的,但是PHP 5.4和xcache是​​从源代码编译的。 PHP作为Apache模块运行。 当我在pipe理部分查看诊断页面时,它说“启用PHP Cacher”状态是'Error',因为没有页面被caching,我应该将xcache.cacher设置为'On',而我已经有了。 PHP输出: # php -v PHP 5.4.10 (cli) (built: Feb 13 2013 16:50:20) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies with XCache v3.0.1, Copyright (c) 2005-2013, by mOo with XCache Cacher v3.0.1, Copyright (c) 2005-2013, by mOo 另外,phpinfo显示XCache Cacher模块已启用。 我的xcache设置: [xcache] xcache.shm_scheme […]

nginx / fpm和PHP_VALUE不工作

我想改变我的Web服务器的单个网站的一些php.ini值: fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/profile/external/header.php \n auto_append_file=/var/www/profile/external/footer.php"; 但FPM完全忽略了这个值。 我试图在vhostconfiguration之上或者位置〜* .php $ {指令下添加这行,但是没有任何作用 这是我在nginx下的虚拟主机configuration: server { listen 80; index index.php index.html; server_name myvisit; root /var/www/mv/head/myvisit/; access_log /var/log/nginx/myvisit-access.log; error_log /var/log/nginx/myvisit-error.log; fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/profile/external/header.php \n auto_append_file=/var/www/profile/external/footer.php"; # Use gzip compression # gzip_static on; # Uncomment if you compiled Nginx using –with-http_gzip_static_module gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; […]

PHP邮件function无法发送到att.net,MAIL FROM行不正确

当我的VPS上的Web应用程序使用PHP内置的mailfunction时,一些域名(如att.net)会将电子邮件退回。 /var/log/mail.log显示: 550 [PERMFAIL] att.net requires valid sender domain (in reply to RCPT TO command) 基本上MAIL FROM行应该是<[email protected]> ,就像<user@myhost> <[email protected]> ,所以AT&T的邮件服​​务器不喜欢它。 我不完全确定/etc/hostname文件是否需要myhost或myhost.com。 任何时候我尝试将其更改为myhost.com,重新启动后,它将恢复为myhost。 我在这里不知所措 编辑: 显然, /etc/hostname (根据Googlesearch)应该只是主机名,而不是FQDN。 如果我键入hostname –fqdn ,那么我得到的FQDN。