标签: php

如何将 php5+MySQL 扩展到 200 个请求/秒以上?

我正在调整我的主页以提高性能,目前它在 3.14.by 上处理大约 200 个请求/秒,它处理 6 个 SQL 查询,在 3.14.by/forum(phpBB 论坛)上处理 20 个请求/秒。

奇怪的是,某些 VPS 和专用 Atom 330 服务器上的数字大致相同。

服务器软件如下:Apache2+mod_php prefork 4 childs(这里尝试了不同的数字)、php5、APC、nginx、用于PHP会话存储的memcached。

MySQL 配置为占用大约 30% 的可用 RAM(VPS 上约为 150Mb,专用服务器上为 700Mb)

看起来某处存在瓶颈,不允许我走得更高,有什么建议吗?(即,我知道执行少于 6 个 SQL 会使其更快,但这看起来不是一个限制因素,因为 sqld 由于缓存查询而在顶部的消耗不超过百分之几)

有没有人测试过踢预分叉的 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.
Run Code Online (Sandbox Code Playgroud)

更新: 似乎瓶颈是 MySQL 在缓存数据上的性能。带有单个 SQL 的页面显示 354req/sec,有 6 个 SQL - 180 …

php performance nginx apache-2.2

16
推荐指数
1
解决办法
2万
查看次数

安装 APC 红帽

我正在尝试在 redhat 上安装 apc,所以我做了:

pecl install apc
Run Code Online (Sandbox Code Playgroud)

我说

Use apxs to set compile flags (if using APC with Apache)? [yes]:
Run Code Online (Sandbox Code Playgroud)

我明白了:

checking for re2c... no
configure: WARNING: You will need re2c 0.9.11 or later if you want to \
regenerate PHP parsers.
Run Code Online (Sandbox Code Playgroud)

checking whether apc needs to get compiler flags from apxs...

Sorry, I was not able to successfully run APXS.  Possible reasons:

1.  Perl is not installed;
2.  Apache was not compiled with DSO support (--enable-module=so); …
Run Code Online (Sandbox Code Playgroud)

php redhat

16
推荐指数
1
解决办法
966
查看次数

为什么 yum 在 CentOS 上安装过时的软件包?(特别是 PHP 5.1)如何修复?

我正在一个新的 CentOS 服务器上工作,我非常恼火地发现 yum 不像 Ubuntu 上的“apt-get install”那样顺利和出色地工作。

安装 LAMP 堆栈,我运行了以下命令:

$ yum install php
$ yum install mysql
Run Code Online (Sandbox Code Playgroud)

此外:

$ yum install mysql-server
$ yum install mysql-devel
$ yum install php-mysql
Run Code Online (Sandbox Code Playgroud)

现在运行:

$ rpm -qa | grep php
Run Code Online (Sandbox Code Playgroud)

...表明我安装了各种 php 5.1.6 包,我至少需要 5.2。此外,我看到它安装了 mysql 5.0.77,即使当前版本是 5.5.20。但希望 mysql 5.0 会工作。PHP 5.1 不会。

所以真正的问题是(是):

如何修复我的 PHP 以使其成为最新的稳定版本(根据 PHP.net 为 5.3.9)?如何让我的 CentOS 机器更像 Ubuntu,这样我就不必再处理这个问题了?

非常感谢。

编辑:CentOS 5.7 上周由托管公司安装,所以我不知道他们为什么会安装旧版本的 CentOS,而不是最新版本。我至少需要 PHP 3.2,所以我很欣赏如何做到这一点的建议。我对软件包和存储库不是很熟悉,但似乎任何人都可以启动存储库,因此我担心从可能感染服务器的某个随机存储库安装东西。

mysql php debian centos yum

16
推荐指数
2
解决办法
2万
查看次数

如何通过命令行将 $_GET 变量传递给 PHP 脚本?

我正在尝试创建一个为 PHP 脚本提供服务的网络服务器。目前,它的工作原理如下:

  1. 客户端请求 /index.php?test=value
  2. 服务器调用 php index.php
  3. 服务器将 HTTP 请求标头作为 STDIN 提供给 PHP 进程
  4. 服务器php从 STDOUT读取输出并将其返回给客户端

除了参数没有传递给 PHP 脚本之外,所有这些都有效,因为:

var_dump($_GET);
Run Code Online (Sandbox Code Playgroud)

返回:

数组(0){}

$_GET调用时如何将参数传递给 PHP 二进制文件?

php http cgi

15
推荐指数
1
解决办法
3万
查看次数

在 Ubuntu 中,我对 php.ini 进行了更改,但没有任何反应

嗨,Apache 和 php 运行良好,但我在 php.ini 中所做的任何更改都没有效果,我什至删除了文件的所有内容,然后重新启动 Apache,并运行 phpinfo(),令人惊讶的是一切都继续正常运行。

我正在编辑的文件是出现在 phpinfo() 中的文件,如“加载的配置文件”。(/etc/php5/apache2/php.ini)

PS 我正在运行 Ubuntu 9.04 和 PHP 5.2

更多细节:

我用 sudo /etc/init.d/apache2 restart 重新启动,我也试过 sudo /etc/init.d/apache2 stop,然后启动,在重新启动时我得到:

  • 重新启动 web 服务器 apache2 apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1 作为 ServerName ...等待 apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1 作为 ServerName [OK]

“which php”没有产生任何结果。

我的 PHP 安装是使用 Synaptic Package Manager 完成的,选择“按任务标记包”,然后选择 LAMP 服务器。

我不知道该怎么做...

linux ubuntu php apache-2.2

14
推荐指数
3
解决办法
7万
查看次数

在 ubuntu 上安装 php 扩展

我有一个 Ubuntu 9.10 服务器。我已经使用 apt-get 命令安装了 apache2 和 php5。

如何安装php扩展?是否有像 apt-get 这样的命令来获取它们?或者我应该手动查找 php 网站上的文件并在 php.ini 中设置它们?

更具体地说,我需要 mcrypt、curl 和 gd。

谢谢

ubuntu php apache-2.2

14
推荐指数
1
解决办法
8万
查看次数

从 PHP 获取使用 mail() 发送的邮件日志(sendmail?)

在一些服务器更改之后,我们的 PHP 配置被破坏了,这导致客户端的大型邮件列表在大约 4,000 个或更多地址中部分超时。我们希望尽可能避免发送重复邮件,并且我们有原始邮件列表。

邮件是使用 PHP 的mail()函数发送的,该函数使用sendmail,表示它正在使用Exim. 我见过命令:

sendmail -bp
Run Code Online (Sandbox Code Playgroud)

这给了我一个显示已发送的邮件列表。这个列表不是很大,而且可能是准确的(意味着脚本在只发送了一百封左右的电子邮件后就超时了)

sendmail -bp获得此列表的最佳方式吗?

编辑:mail.log/var/log/mail.log或 via 中找不到任何文件locate mail.log,但 WHM 似乎对此有一些信息。

email linux php sendmail exim

14
推荐指数
3
解决办法
8万
查看次数

如何在 PHP 中检测它是否在 Apache、Nginx 或其他网络服务器上运行?

首先我知道这个变量: _SERVER["SERVER_SOFTWARE"]

在我的一个应用程序中,我想从 PHP 脚本中检查它正在运行的网络服务器。基本上它将是一个 wordpress 插件,它将帮助博主调整一些配置。

我为 Apache 和 Nginx 创建了单独的进程,并且还考虑将代码发布为 2 个不同的 wordpress 插件。

然后我很想知道 PHP 中是否有一种 FULLPROOF 方法可以完美地检测网络服务器。

请考虑所有情况 :: Apache、Nginx、Apache + Nginx、PHP 作为 Apache 模块、PHP 使用 fastcgi、php-fpm、lighttpd、IIS 等。

对于我的应用程序检测组合和代理是否存在也至关重要。

谢谢,

-拉胡尔

php nginx web-server apache-2.2

14
推荐指数
2
解决办法
3万
查看次数

在 Apache 中启用 gzip 压缩时未发送内容长度?

我真的很感激能帮助理解这种 Apache 行为。

我正在从应用程序/json 中的 iPhone Objective-C 应用程序与 PHP 通信。Gzip 压缩在服务器上启用,并由客户端请求。

从我的.htaccess:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/json
Run Code Online (Sandbox Code Playgroud)

对于小型请求,Apache 正在设置“Content-Length”标头。例如(这些值在 Objective-C 中从标头输出):

Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 185;     <-------------
"Content-Type" = "application/json";
Date = "Wed, 22 Sep 2010 12:20:27 GMT";
"Keep-Alive" = "timeout=3, max=149";
Server = Apache;
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.2.13";
"X-Uncompressed-Content-Length" = 217;
Run Code Online (Sandbox Code Playgroud)

X-Uncompressed-Content-Length是我添加的标头,设置为未压缩 JSON 字符串的大小。

如您所见,此请求非常小(217 字节)。

这是来自较大请求(282888 字节)的标头:

Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Type" = "application/json";
Date = "Wed, …
Run Code Online (Sandbox Code Playgroud)

php compression gzip apache-2.2

14
推荐指数
3
解决办法
4万
查看次数

将 Postfix 地址的默认值从 www-data 更改为其他内容

在 Ubuntu 服务器上设置 Postfix 和 Apache/PHP。邮件现在可以使用正确的域名发送出去,但本地部分显示名称始终为“www-data”,因为我假设 Postfix 默认使用用户名。

在 php.ini 文件中,我能够更改为sendmail_pathsendmail_path = "/usr/sbin/sendmail -t -i -f support@example.com"但电子邮件显示名称仍显示为 www-data 。我尝试以几种不同的方式指定显示名称,但这被忽略了,邮件仍然作为 www-data 发出。

我希望能够做的是默认情况下,将任何缺少 from、return-path 等的邮件作为 发送出去"Example Support" <support@example.com>,但我不确定这是否可能。

php postfix sendmail apache-2.2

14
推荐指数
3
解决办法
4万
查看次数

标签 统计

php ×10

apache-2.2 ×6

linux ×2

nginx ×2

sendmail ×2

ubuntu ×2

centos ×1

cgi ×1

compression ×1

debian ×1

email ×1

exim ×1

gzip ×1

http ×1

mysql ×1

performance ×1

postfix ×1

redhat ×1

web-server ×1

yum ×1