CentOS系统。
总结:更改了 master 和本地 php.ini 中的 memory_limit,但特定虚拟主机的本地值没有变化。
为了提高性能,我在 /etc/php.ini 中将 memory_limit 设置为 1024M
phpinfo() 将服务器上其他虚拟主机的 Master 和 Local 值显示为 1024M。更改 /etc/php.ini 中的值会更改所有值,但一个除外。
一个站点的本地值为 256M。
我以为我发现了问题:该站点的根目录中有一个 php.ini 文件(我不知道),它有
memory_limit = 256M
Run Code Online (Sandbox Code Playgroud)
我把它改成了1024M。问题解决了?不。现在我不知道去哪里找。显然,我已经重新启动了 apache(/etc/init.d/httpd restart),这通常可以解决问题。
我还关闭了 APC 缓存,但我认为它不会缓存 ini 文件。
最后,我尝试将其添加到 httpd.conf 中的虚拟主机:
php_value memory_limit 536870912
Run Code Online (Sandbox Code Playgroud)
(是的,那将是 512MB)这没有任何影响。
还有什么问题?
谢谢。
我在互联网上四处搜索,但找不到在 CentOS 5.8 32 位和 apache 上安装最新版本的 PHP、MySQL 和 phpmyadmin 的可靠来源。我试过几次,没有运气。每次都损坏了我的服务器。
我厌倦了假设什么是正确的并搞砸了我的服务器/浪费时间。我想我会来这里得到一个真正有效的合法答案,直接来自知道他们实际在做什么的社区。
如果可以使用 YUM 来完成未来的自动更新,那也会很酷。
我有一个基于图像的网站,其中包含多个画廊。当用户单击其中一个图像时views,特定图像的属性会增加。但是,我注意到在使用 Firefox (14.0.0.1) 时它会增加两次视图,而不那么复杂的浏览器(例如 K-meleon)会增加一次属性 - 应该如此。
然后有人在 stackoverflow 上指出,这可能是由于现代浏览器中的预取导致 PHP 脚本从数据库中获取图像并增加要执行两次的视图。因此,检查我的 apache access.log 我注意到 Firefox 确实请求每个图像两次:
Firefox/14.0.1" ::1 - - [03/Aug/2012:16:41:37 +0100] "GET /imgsite/getImg.php?id=23 HTTP/1.1" 200 57362 " http://localhost /imgsite/index.php " "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1" ::1 - - [03/Aug/2012:16:41:37 +0100] " GET /imgsite/getImg.php?id=23 HTTP/1.1" 200 57362 "-" "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"
然后我阅读了 .htaccess 并尝试了几种阻止 Firefox(或 chrome)发送的预取标头的方法,但这些标头不应该出现在上面的代码段中吗?到目前为止,一切都没有奏效。这是我的 .htaccess 文件,它位于我网站的根 HTML 路径中:
RewriteEngine On
RewriteCond %{HTTP:X-moz} prefetch
RewriteRule . . [F,L]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述其他更广泛的变体,但仍然无济于事。我的 apache …
我已经为仙人掌创建了 php 脚本,它以如下格式输出数据:<variable>:<value>
我的脚本的输出:temperature:20 humidity:15
然后我创建了数据输入方法,其中输入字符串是:php <path_cacti>/scripts/getTempHumData.php <host>
脚本放置在仙人掌文件夹/脚本中。
输入字段是主机名 - 在脚本中我将它用作 $ARGV[0] 变量。
输出字段有两个 - 温度和湿度。
然后我将该脚本分配给设备,添加它需要的所有内容,关闭设备的 SNMP 使用。设备状态为“启动”。
然后我创建了图形模板和图形并将其分配给图形树。但是无法看到图形 - 它只是显示无法找到图像(浏览器中的小红色 x)。
我编辑了我的脚本以传递相同格式的常量值,我查看了 cacti/log/cacti.log 但我的主机 IP 没有条目。
此外,没有图形需要的 rrd 文件 - 在调试模式下它尝试创建,但没有创建 rrd 文件。同样在数据源路径中,指向的 rrd 文件也不存在。
我该如何解决这个错误?
先感谢您。
脚本代码:
<?php
/*$content = file_get_contents("http://".$ARGV[0]);
$air_temperature = null;
$air_humidity = null;
$xml = simplexml_load_string($content);
$air_temperature = $xml->Item[1]->Value;
$air_humidity = $xml->Item[2]->Value;
echo "temperature:".$air_temperature." humidity:".$air_humidity;*/
echo "temperature:20 humidity:15";
?>
Run Code Online (Sandbox Code Playgroud)
RRD 文件不是自动创建的,当然在运行我打开调试时给出的命令后,我得到了我的 rrd 文件。但是为每个需要的值显示 NaN 值。
我们正在使用 iuscommunity repo 运行 CentOS 6 节点,并且想要将之前安装的 php53u 升级到 php54。
但是,这会在 php53u 和 php54 之间引入依赖冲突。有没有人对这个问题有想法?
--> Running transaction check
---> Package php54-fpm.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php-common = 5.4.5-1.ius.el6 for package: php54-fpm-5.4.5-1.ius.el6.i686
---> Package php54-gd.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-mbstring.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-pecl-apc.i686 0:3.1.11-2.ius.el6 will be installed
--> Processing Dependency: php54 >= 5.3.5-1 for package: php54-pecl-apc-3.1.11-2.ius.el6.i686
--> Running transaction check
---> Package php54.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php54-cli …Run Code Online (Sandbox Code Playgroud) 我要下载什么(在 Windows 机器上)才能获得 Apache 2.0.55 + PHP 4.4.7 环境?我对较新版本的 PHP 和 Apache 没问题,但如果我想在具有较旧版本 Apache 和 PHP 的旧 SunOS 服务器上模拟环境。任何人都可以推荐我应该使用的下载以及从哪里获得它们?
我知道有四种不同的 PHP 处理程序(AFAIK)。
我需要知道这些处理程序的优缺点以及每个处理程序适合哪些环境?
例如,如果我正在运行共享托管服务器,上述哪个处理程序适合我?或者,如果我正在管理私人服务器?
我刚刚启动了一个新的 Rackspace 云服务器并运行了以下命令:
apt-get install php5 nginx php-fpm
Run Code Online (Sandbox Code Playgroud)
当我导航到 IP 地址时,我会看到默认的 Nginx 消息。然后我/etc/nginx/sites-available/default从另一个工作设置复制了我的文件:
server {
listen 80;
server_name localhost;
root /srv/www;
index index.php;
location / {
try_files $uri $uri/ /controllers$uri.php;
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建index.php的/srv/www,并开始nginx和php-fpm:
/etc/init.d/nginx start
/etc/init.d/php5-fpm start
Run Code Online (Sandbox Code Playgroud)
我收到 502 Bad Gateway 错误。难道我做错了什么?
在我的 Debian Wheezy 上,每半小时运行一次 cron 作业:
find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Run Code Online (Sandbox Code Playgroud)
这将删除旧的 PHP 状态/会话文件。我想完全放弃这个 cron 工作,或者至少降低它的频率。在以下哪个用例中是可能的?
我有一个 web 服务器运行多个服务器(虚拟主机),使用 nginx 和 fastcgi 传递给 unix-socket。
我想要完成的是使用 beta.example.com 和 live.example.com 进行设置,其中实时站点的 error_reporting 已关闭(但仍记录到文件),而 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>
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索时,我没有找到任何可以使用 fastcgi 将此类参数传递给 PHP 的地方。有谁知道如何做到这一点?
现在的配置是(简化):
server {
server_name beta.example.com;
[...]
fastcgi_pass unix:/var/run/nginx/php-fastcgi.sock;
fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud) php ×10
php-fpm ×3
centos ×2
nginx ×2
php.ini ×2
.htaccess ×1
apache-2.2 ×1
cacti ×1
centos5 ×1
cron ×1
fastcgi ×1
frequency ×1
http-headers ×1
httpd.conf ×1
maintenance ×1
memory ×1
mod-php ×1
mysql ×1
php-cgi ×1
scripting ×1
suphp ×1
virtualhost ×1
web-server ×1