Articles of PHP

是什么造成了Apache 2.2每秒300个连接的限制?

我们有一个在CentOS 5.6上运行的Apache webserver(通过yum安装)。 今天我们有一个预期的新用户涌入 – 但是意外的是,我们似乎已经达到了每秒300次访问的限制 – 我有一个图表(Stack溢出不会让我上传),但它今天显示了三次(当我们的网站几乎停下来)“访问/秒”打300,并停留了一段时间。 当我input当前的数字是292.23,今天的最大值是300.41。 我们在apache进程中运行PHP,并且连接到一个MySQL服务器(不同的物理盒子)。 但是,我们很高兴,MySQL正在响应罚款。 我们已经在默认的256上调了httpd.conf中的限制,但是这对魔术300的数字并没有影响。 我们已经在php.ini和httpd.conf文件中search了300,并找不到它。 下面是我们现在使用的preforkconfiguration: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 400 MaxClients 400 MaxRequestsPerChild 4000 </IfModule> 如果任何人有任何线索是什么导致这个300限制,我将不胜感激。

为什么这个php_value指令不是htaccess?

在.htaccess我已经添加 php_value session.name "SID" 这似乎没有效果,但没有错误引发error_log。 其他重写规则在相同的.htaccess文件正在按预期工作。 为什么这个php_value指令不是htaccess? 有没有一种方法来testing,如果php_values或php_flags正在使用? PHP 5.3.8作为Apache 2.2.21模块运行,而不是CGI。 更新:将php_value session.name“SID”添加到default-server.conf按预期工作。 我仍然不确定如何在.htaccess中不起作用。 在default-server.conf中,我有“AllowOverride All”和“Options All”(用于testing)。

PHP的date.timezone警告

我不断收到这个错误: 消息:date()[function.date]:依靠系统的时区设置是不安全的。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。 我们select'America / New_York'代替'EST / -5.0 / no DST' 我编辑了我的php.ini,并添加到它的结尾:date.timezone =“America / New_York” 保存php.ini并重新启动Apache后,我仍然得到错误。 我也尝试重新启动整个服务器无济于事。 我在CentOS 5.6上运行cPanel / WHM,如果这有什么区别的话。 另外,PHP处理程序是suphp。 我不知道接下来要尝试什么…有什么指导?

我要下载什么来获得Apache 2.0.x + PHP 4.4.x环境?

我要下载什么(在一个窗口框中)以获得Apache 2.0.55 + PHP 4.4.7环境? 我对PHP和Apache的较新版本没有问题,但是如果我想在旧版SunOS服务器上模拟一个环境,而旧版本的Apache和PHP版本。 任何人都可以推荐我应该使用的下载和在哪里得到他们?

Windows上的PHP – ps_files_cleanup_dir错误

加载PHP页面时偶尔会出现以下错误: PHP Notice: session_start(): ps_files_cleanup_dir: opendir(C:\Windows\TEMP) failed: No error (0) in C:\server\default.php on line 299 C:\Windows\TEMP月份sess_文件仍然存在。 我在Windows 8.1上的IIS上运行PHP 5.6.5。 为什么PHP无法执行垃圾回收,我该如何解决?

为什么我的cron作业会创build一个带有尾随问号的日志?

我有以下cron作业: */5 8-20 * * * php /var/www/user/cron_email.php >> /var/www/log/log.txt 它创build以下文件: david@ubuntu:/var/www/log$ ls -l -rw-r–r– 1 root root 540 2011-05-30 17:10 log.txt? 为什么会创build一个尾随的问号? 我怎样才能阻止呢? (我正在login控制台,看到没有编辑器的结果,所以我知道“?”在那里。) 这是唯一一个尾随“?”的文件 所以我知道它不是一个编辑器问题。 我什至不使用任何编辑器,我只是查看控制台CRT屏幕。

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

我最近切换到PHP的FastCGI设置(Apache2-worker和mod_fcgid )。 但是,当一个PHP脚本非常繁忙时,似乎会阻止所有其他PHP请求。 我的configuration有什么问题? 我使用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" 我的Apacheconfiguration如下所示: <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 […]

PHP – 扩展 – no-debug-non-zts-xxxxxxxx

我正在编译php扩展(memcached和xdebug),当我运行make install时,它们一直被安装到/ usr / local / php / lib / php / extensions / no-debug-non-zts-20090626。 所以有几个问题: no-debug-non-zts-20090626甚至意味着什么,为什么它是默认的? 编辑php.ini文件并将extension_dir指令设置为上述目录是一种很好的做法吗? 还是应该用PREFIX = / usr / local / php / extensions来编译每个模块? 所以,当我做安装,他们被放到一个自定义的扩展目录,然后我可以添加扩展= / usr / local / php / extensions / memcached.so行到我的.ini文件。 在编译一个新的模块时是否有风险,它会进入与#1目录不同的目录?

nginx还有另外一个重写或内部redirect循环

还有另一个redirect周期,是的。 看了其他问题,但似乎无法得到它的工作。 server { listen 80; server_name localhost; charset utf-8; access_log /srv/http/localhost/log/access.log; error_log /srv/http/localhost/log/error.log; location / { root /srv/http/localhost/www; index index.html index.php; } # prevent access to hidden files location ~ /\. { access_log off; log_not_found off; deny all; } # do not log assets location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; […]

Nginx中不同的PHPconfiguration

我有一个networking服务器运行多个服务器(虚拟主机)使用nginx和fastcgi传递到unixsockets。 我想完成的是使用beta.example.com和live.example.com进行设置,其中活动站点已closureserror_reporting(但仍然logging到文件),并在beta站点error_reporting处于打开状态。 所以对于Apache我会做一些事情: <VirtualHost *:80> ServerName beta.example.com […] php_flag display_errors on php_flag display_startup_errors on php_value error_reporting -1 […] </VirtualHost> 当使用googling时,我还没有find任何可以使用fastcgi将这些parameter passing给PHP的地方。 有谁知道如何做到这一点? 现在的configuration是(简化): server { server_name beta.example.com; […] fastcgi_pass unix:/var/run/nginx/php-fastcgi.sock; fastcgi_index index.php; }