标签: php

如何在 CentOS 上使用 yum 将 PHP 5.1 升级到 PHP 5.3

使用 Yum/CentOS。

问题是 php 5.1 已经安装并运行,所以

百胜更新php

不工作!

我环顾网络寻找解决方案,但他们说要执行上述操作=/

php centos yum

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

禁用 DNS 缓存 PHP

我需要在脚本中获取 DNS 的最新 A 记录。该脚本正在执行一些监视操作。DNS 记录的默认 TTL 为 5 分钟,但监控脚本每分钟运行一次。我正在使用 PHP 的函数 dns_get_record 来获取 A 记录,但我想知道是否有一种方法可以忽略 TTL 缓存并从 DNS 服务器中获取记录而不是缓存。

当然,有什么方法可以强制执行此操作,以便不适用网络级缓存,并且每次运行脚本时,它实际上都会命中 DNS 服务器?

感谢斯帕什·古普塔

domain-name-system php cache reverse-dns php5

6
推荐指数
1
解决办法
6780
查看次数

单个 php-fastcgi 进程会阻止所有其他 PHP 请求

我最近切换到 PHP(Apache2-worker 和mod_fcgid)的 FastCGI 设置。但是,当单个 PHP 脚本非常繁忙时,它似乎会阻止所有其他 PHP 请求。我的配置会有什么问题?

我使用的主要原因mod_fcgid是为了控制 PHP 内存使用。使用mod_php,所有单独的 Apache 分支在为 PHP 提供服务后都会在内存中增长。

我还切换到 apache2-worker 模型,因为所有线程不安全的 PHP 代码都存在于 Apache 之外。

我的 FastCGI 脚本如下所示:

#!/bin/sh
#export PHPRC=/etc/php/fastcgi/
export PHP_FCGI_CHILDREN=5
export PHP_FCGI_MAX_REQUESTS=5000

global_root=/srv/www/vhosts.d/
exec /usr/bin/php-cgi5 \
-d open_basedir=$global_root:/tmp:/usr/share/php5:/var/lib/php5 \
-d disable_functions="exec,shell_exec,system"
Run Code Online (Sandbox Code Playgroud)

我的 Apache 配置如下所示:

<IfModule fcgid_module>
  FcgidIPCDir /var/lib/apache2/fcgid/
  FcgidProcessTableFile /var/lib/apache2/fcgid/shm
  FcgidMaxProcessesPerClass 1
  FcgidInitialEnv RAILS_ENV production
  FcgidIOTimeout 600
  AddHandler fcgid-script .fcgi

  FcgidConnectTimeout 20
  MaxRequestLen 16777216

  <FilesMatch "\.php$">
    AddHandler fcgid-script .php
    Options +ExecCGI
    FcgidWrapper /srv/www/cgi-bin/php5-wrapper.sh …
Run Code Online (Sandbox Code Playgroud)

linux php fastcgi mod-fcgid apache-2.2

6
推荐指数
1
解决办法
5448
查看次数

寻找有关 PHP 会话垃圾收集如何工作的细节

PHP 有几个会话设置来控制垃圾收集(即删除过期会话)发生的可能性。

我的问题是:这个概率是否适用于任何给定 Apache 服务器上所有虚拟主机上的所有运行 Apache 线程?

例如:

  • 如果概率设置为 1/100,是否意味着任何运行 PHP 进程的 Apache 线程都会进入可能运行 gc 的进程池?
  • 或者,这是否仅适用于为任何给定 VirtualHost 运行的线程?或者其他类型的分区?
  • 最后,如果一个 PHP 进程触发了 gc,它是否对所有 PHP 会话执行 gc?还是只是那个 VirtualHost 的会话?或者其他类型的分区?

我正在尝试衡量是否需要调整给定 VirtualHost、整个服务器或其他内容的 gc_probability 设置。

php memcache apache-2.2

6
推荐指数
1
解决办法
1121
查看次数

在 Apache 中挂起进程?

我在专用服务器上运行带有 MPM prefork 的 Apache 2.2.21。更多细节:

Server Version: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/1.0.0-fips DAV/2 SVN/1.7.0 mod_python/3.3.1 Python/2.6.5 mod_bwlimited/1.4 PHP/5.3.6
Run Code Online (Sandbox Code Playgroud)

流量通常在 10-30 个请求/秒之间,有 12GB 的 RAM,我们相当保守地调整了 MaxClients (250)。由于各种原因,我们确实看到了使用高峰(在较旧的服务器上,在这些高峰期间,我们的 MaxClients 数次达到 100)。

无论如何,这是一个新服务器。运行一段时间后,我们的 Apache 状态开始看起来像这样:

GGG_._._RC_.G..C.G_G.C_G..C_.CG_._._G__W____..R.WCR_.W..G_......
Run Code Online (Sandbox Code Playgroud)

G(“优雅地完成”)被卡住了。如果我重新启动 Apache,它们只会消失。这肯定会导致我们在没有定期监控/修复的情况下达到我们的 MaxClients 限制。我在互联网上四处阅读,Apache 中似乎有一个与此类似的错误,但发生在不同的条件下。它显然也在 2.2.14 版中得到了修复。

我包含了一个挂起进程的堆栈跟踪供您检查。

#0  0x000000350c6f119e in __lll_lock_wait_private () from /lib64/libc.so.6
#1  0x000000350c67c138 in _L_lock_9164 () from /lib64/libc.so.6
#2  0x000000350c679a32 in malloc () from /lib64/libc.so.6
#3  0x000000350c66fcfb in __libc_message () from /lib64/libc.so.6
#4  0x000000350c675676 in malloc_printerr () from /lib64/libc.so.6
#5  0x000000350c675aa1 in malloc_consolidate …
Run Code Online (Sandbox Code Playgroud)

mysql php mpm-prefork apache-2.2

6
推荐指数
1
解决办法
5018
查看次数

2008r2 上的 IIS 7 显示空白页

我在 Windows Server 2008r2 上使用 IIS7。我最近安装了 php 和 IIS。我试图浏览到 index.php 但它返回一个空白页。它加载我的页面的图标和页眉。当我加载 info.php 文件时,它不是空白的。

如果我禁用匿名身份验证它相同的 index.php 返回IIS 7.5 详细错误 - 401.2 - 未经授权。

奇怪的是,我将这个确切的代码安装到我刚刚安装的另一个新的 IIS 上,并且加载正常。两者的目录权限相同。

windows php iis-7.5 windows-server-2008-r2

6
推荐指数
1
解决办法
7071
查看次数

Ubuntu 中 PHP 的 OpenSSL 扩展?

我不确定如何使用 OpenSSL重新编译PHP?我一直在寻找的OpenSSL的PHP页面和OpenSSL的教程左右,但我没有看到任何openssl.so或php-openssl.so在我的服务器?

apt-get频道上是否有一个简单的包,以便我可以从那里安装它?

我只需要使用 OpenSSL 重新编译 PHP,但我不知道如何执行此操作。

编辑:我运行一个专用服务器,它是 Ubuntu 11.10。

php openssl

6
推荐指数
1
解决办法
7万
查看次数

我可以进一步优化这些 APC 设置吗?

我想进一步优化 APC,但我不确定在哪里可以做些什么。首先是使用当前配置运行一周后的屏幕截图: APC仪表盘

我现在有以下几点我不确定:

  1. 我是否正确地看到碎片发生是因为缓存也用作用户缓存?
  2. 当我总共分配了 192MB 时,为什么碎片栏告诉我只有 5.8MB 的 100%?
  3. 这只是“内存使用”下的圆圈没有完全关闭的渲染问题吗?因为下面的 MB 值确实加起来了。(也就是说,这个圆圈在重启后看起来不错,当缓存越来越碎片化时它会变成这样。)
  4. 由于命中率非常好,我不确定碎片是否是一个大问题。你觉得我还能优化吗?

我最感兴趣的是回答这些问题。只有这样我才能更好地理解APC并自己做出调整。

一些详细信息:在此服务器上运行 Drupal 和 Magento。Drupal 也将其用作用户缓存。

我现在的问题是如何优化它。我可以分配更多的内存,但我不确定这是否真的有很大帮助。

更新:这是配置:

; The size of each shared memory segment in MB.
apc.shm_size = 192M

; Prevent files larger than this value from getting cached. Defaults to 1M. 
apc.max_file_size = 2M

; The number of seconds a cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.ttl = …
Run Code Online (Sandbox Code Playgroud)

php optimization alternative-php-cache

6
推荐指数
1
解决办法
4647
查看次数

PHP/APC 致命错误,apc_mmap: mmap failed

我看到一些间歇性 CPU 使用率飙升至 100%,这与这些日志条目有关:

[27-Feb-2012 13:29:29] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:30] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:31] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:31] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

phpinfo() 表示 APC 已设置,据我所知,此错误不会在实时站点上导致可见的 500 个错误,这是一个 WordPress 安装,每月观看次数约为 60 万次。到目前为止,谷歌一直没有帮助,我希望这里有人对导致这种情况的原因以及如何解决它有一些见解。奇怪的是,这个错误只显示在 /usr/local/apache2/logs/error_log 而不是 cpanel 配置站点的 error_log。

php apache-2.2 alternative-php-cache

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

内存缓存滞后

让我先说这是本主题的后续问题。

通过将 memcached 服务器从 Solaris (SmartOS) 切换到 Ubuntu 来“解决”这个问题。现在我们已经将负载增加了大约 5 倍,并且再次遇到问题。

我们正在运行一个大约每分钟处理 1000 个请求的站点,每个请求以大约 3 次读取和 1 次写入命中 Memcached。所以负载大约是每秒 65 个请求。缓存中的数据总量约为 37M,每个键包含的数据量非常小(JSON 编码的整数数组,小于 1K)。

我们在这些页面上设置了一个基准测试脚本,并将数据输入 StatsD 进行记录。问题在于,Memcached 需要很长时间才能响应的峰值。这些似乎与流量高峰无关。

来自 StatsD 的执行时间

什么可能导致这些尖峰?为什么 memcached 会占用一秒钟的时间来回复?我们刚刚启动了第二台服务器以放入池中,它在峰值的频率或严重性方面没有任何明显的差异。

这是服务器上 getStats() 的输出:

Array
(
    [-----------] => Array
        (
            [pid] => 1364
            [uptime] => 3715684
            [threads] => 4
            [time] => 1336596719
            [pointer_size] => 64
            [rusage_user_seconds] => 7924
            [rusage_user_microseconds] => 170000
            [rusage_system_seconds] => 187214
            [rusage_system_microseconds] => 190000
            [curr_items] => 12578
            [total_items] => 53516300
            [limit_maxbytes] => 943718400
            [curr_connections] => …
Run Code Online (Sandbox Code Playgroud)

ubuntu php scalability memcached memcache

6
推荐指数
1
解决办法
554
查看次数