我正在使用共享主机,但无法启用 APC。有一个关于该线程在这里,建议的唯一原因是为了安全(PHP,CGI VS mod_php的)。我询问了主机,他们说这是由于性能原因,特别是 I/O 会导致盒子关闭。我真的不明白 - 使用共享内存操作码缓存肯定会减少I/O?基本上,如果我正在建立一个共享托管公司(不是我可以!),我会认为使用缓存(如果安全性允许)来提高所有客户端的性能会很有意义。
任何人都可以为我解释一下吗?TIA
我想运行一个 cron 作业。安排它很容易并且有效。
我的问题是我不知道如何一次只运行一个版本。
有任何想法吗?
G-Man
所以我真的习惯了 LAMP 堆栈,并且在我的 Ubuntu 服务器上安装了 Apache 和 PHP,大约有 30 个 PHP 站点。我想在基于 Ruby on Rails 的站点上抛出一个新项目。是否可以继续使用 Apache 并将 RoR 项目放在 /var/www/ 中的所有其他项目旁边?
另外,在默认的 Ubuntu 服务器安装上安装 RoR 的最佳方法是什么?
谢谢!
php 似乎将垃圾字符添加到它在朋友网站上返回的所有内容的末尾。我不是服务器管理员,但我想提出知情投诉以解决此问题。
该网站是http://daytoncodebreakers.org。您可以在网站的每个页面的末尾看到一些垃圾(中间是问号,中间有其他东西)。我最初认为这是一个 wordpress 问题,但请查看http://daytoncodebreakers.org/whereisini.php(这只是对 phpinfo 的调用)和http://daytoncodebreakers.org/hello.php(这只是 '你好,世界')。
我不确定这是否是最合适的站点,但我认为这是服务器配置问题,所以我将其发布在这里(而不是 stackoverflow 或超级用户)。如果需要,请随意移动它。
更新:问题似乎已经解决了。
我一直在试图安装APD在Debian使用pecl install apd。但是,进入make阶段时命令失败:
make
/bin/sh /src/apd-1.0.1/libtool --mode=compile cc -I. -I/src/apd-1.0.1 -DPHP_ATOM_INC -I/src/apd-1.0.1/include -I/src/apd-1.0.1/main -I/src/apd-1.0.1 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /src/apd-1.0.1/php_apd.c -o php_apd.lo
mkdir .libs
cc -I. -I/src/apd-1.0.1 -DPHP_ATOM_INC -I/src/apd-1.0.1/include -I/src/apd-1.0.1/main -I/src/apd-1.0.1 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /src/apd-1.0.1/php_apd.c -fPIC -DPIC -o .libs/php_apd.o
/src/apd-1.0.1/php_apd.c: In function ‘zif_override_function’:
/src/apd-1.0.1/php_apd.c:615: warning: ‘zend_get_parameters_ex’ is deprecated (declared at /usr/include/php5/Zend/zend_API.h:222)
/src/apd-1.0.1/php_apd.c: In function ‘zif_rename_function’:
/src/apd-1.0.1/php_apd.c:669: warning: ‘zend_get_parameters_ex’ is deprecated (declared at /usr/include/php5/Zend/zend_API.h:222)
/src/apd-1.0.1/php_apd.c: …Run Code Online (Sandbox Code Playgroud) 我已经将 chgrp 用于“日志”和“缓存”目录,以及 chmod 770,因此分配到该站点的 linux 用户(用于从命令行执行脚本)和用户“apache”都可以读/写日志和缓存文件(因为两个用户都属于该站点的组)。
问题是当其中一个创建文件时,另一个无法写入或删除它。正在创建的文件归其创建者所有,但不属于该组。我认为在父目录中使用 chgrp 是解决方案。
有任何想法吗?
PS:我使用的是 Centos 5.5 和 PHP 5.3
我继承了一个 Apache 配置,其中有一个我不太了解的部分。目录路径有
/var/www/somedir.dev/
Run Code Online (Sandbox Code Playgroud)
如果你将浏览器指向
http://localhost/
Run Code Online (Sandbox Code Playgroud)
它实际上显示了来自 somedir.dev 目录而不是根目录的 index.php 文件。为什么会这样?是否有一些配置使默认设置为 /somedir.dev/ 目录?根下的任何东西都无法解决。如何让 root 下的东西再次被服务器识别?
谢谢,亚历克斯
===已解决===
这个问题解决了。事实证明,ImageMagick 在使用多个 CPU 时有问题。编译 ImageMagick 使用一个 CPU 解决了这个问题。
================
我添加了一个新的 Web 服务器作为升级,但它在几秒钟内就崩溃了。
旧盒子有 8 个 2.33GHz 的至强核心。新机拥有 16 个 2.40GHz 至强核心。新机内存为8G和32G。
另一个主要区别是从 32 位跃升至 64 位。
两者的操作系统都是 CentOS 5.6,Apache 也是 2.2.3-45。
PHP 是 5.2.10 并且是手工编译的。除了架构位之外,配置选项是相同的。
从所有这些信息中,你会认为新机器会尖叫,但当前的盒子处理负载并且偶尔会摔倒。新机器每次都在不到一分钟的时间内死亡。
内存很好,I/O 很好,但是 CPU 很卡。这是来自两者的 mpstat 的输出
旧盒子
09:14:18 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
09:14:20 PM all 31.34 0.00 2.62 9.68 0.12 1.00 0.00 55.24 11163.50
09:14:20 PM 0 53.00 0.00 5.50 16.00 0.50 6.50 0.00 18.50 10249.50 …Run Code Online (Sandbox Code Playgroud) Gentoo 上的 PHP 支持threadsUSE 标志。据我所知,PHP 不支持真正的线程;我只知道可以使用 pcntl_fork() 进行分叉,但此功能由pcntlUSE 标志提供。那么threads如果 PHP 不支持线程,USE 标志到底有什么意义呢?
tl;dr - threadsUSE 标志在 Gentoo 系统上为 PHP 服务的目的是什么?