我正在为我的网站使用 slicehost.com 256MB 托管。
不幸的是,它几乎一直在交换。当我在控制台中输入时,free我得到如下信息:
total used free shared buffers cached
Mem: 251140 228968 22172 0 596 17356
-/+ buffers/cache: 211016 40124
Swap: 524284 60944 463340
Run Code Online (Sandbox Code Playgroud)
如果我reboot是服务器,交换会停止一点,然后重新开始。
我怎样才能:
1)找出哪些进程/功能导致交换
2)如何解决问题
3) 弄清楚 256MB 是否太小,是升级而不是优化的时间
谢谢
// 使用 CakePHP/apache
我正在开发一个 PHP Web 应用程序,除其他外,它需要允许用户添加、编辑和删除 Apache 虚拟主机条目。(我在我的 Apache2.conf 中包含了一个 web 可写的配置文件)。让 Apache 重新启动或识别 vhost 文件中的这些更改的最佳方法是什么?我看到的唯一方法是以某种方式将 PHP 升级到 root 权限并在文件更新时调用“apachectl graceful”,有没有更好的方法?我希望更改立即生效,而不是等待 crontab 执行....
我注意到 apache2 会加载一个页面,比如说 info.php,即使指定的 url 没有像 mysite.com/info 这样的文件扩展名
我认为您需要执行某种形式的 mod_rewrite 才能获得该功能,但显然这是我系统中的默认功能。
有什么方法可以防止这种默认行为,以便只能指定具有文件扩展名的页面?
我已经重写了禁用的仅供参考。
同样可以通过网络服务器或脚本发送 HTTP 标头。我在 Nginx 上使用 PHP。通过 nginx 或 PHP 发送 HTTP 标头(例如 Cache-Control)有什么不同吗?
通过网络服务器发送标头是否更快?它对早期处理 HTTP 请求有影响吗?
是否可以在 Debian 上获取已安装的 php 扩展列表?有没有什么简单的方法可以找到 debian php 包中存在哪些扩展以及哪些必须手动编译(实际上三个列表会很有用:所有已启用的扩展、所有已安装的扩展、启用和未启用、所有扩展可作为 deb 包用于给定的 debian 版本)?
我在 hetzner 上运行 2 个盒子,想找出备份 - 应用程序 - 数据 - 实时环境的最佳方法
我知道对于应用程序和数据部分,它非常特定于我的 Web 服务,因此我不会在这里详细介绍。但真的很感谢假设像 Ubuntu 上的 LAMP 这样的基础知识的一般答案。
我目前正在做以下事情 -
我还应该考虑什么?
谢谢你。
问候我是 cron 的新手。是否可以每小时随机运行一次自动 cron 作业?
语法应该每天都不同,例如:
34,57,44,30,37,31,38,30,44,35,36,56,46,55,54,40,45,44,42,35,50,59,48,34,52,* * * * *
Run Code Online (Sandbox Code Playgroud)
据我所知,上面的代码将在 0:34、01:57、02:44.... 到 23:52 发送 cron 作业。我目前正在用 PHP 生成语法,但我不确定如何将它发送到 cron 命令或者它是否安全。请告知如何实现这一点。
我有一个网站正在运行。当我们雇用某人时,我想为新员工创建一个测试站点(实时站点的副本)以进行修补。我需要获取文件和数据库的新副本(基本上是快照)并允许他们访问这些复制的文件和数据库,以便他们可以编辑和上传它们以查看他们所做的更改,就好像它是实时站点一样
基本上,创建网站副本进行测试的最佳实践是什么?
服务器正在运行 Linux、PHP、mySQL
出于某种原因,pecl_http 扩展没有出现在我的 test.php 文件中,其中包含:
<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)
我刚刚安装了 pecl_http 使用:
pecl 安装 pecl_http
安装成功,我通过运行验证了它:
目录
Installed packages, channel pecl.php.net:
=========================================
Package Version State
mongo 1.2.10 stable
pecl_http 1.7.4 stable
Run Code Online (Sandbox Code Playgroud)
然后我使用以下命令找到了我的 php.ini 文件:
php -i | grep '配置文件'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Run Code Online (Sandbox Code Playgroud)
我在 vim 中编辑它并添加:
扩展名=http.so
最后我重新启动了 Nginx 和 PHP-FastCGI:
/etc/init.d/nginx restart
/etc/init.d/php-fastcgi stop
/etc/init.d/php-fastcgi start
Run Code Online (Sandbox Code Playgroud)
我的 PHP extension_dir 是:
/usr/lib/php5/20090626
我确认“http.so”位于该目录中。
任何想法为什么它没有加载?
我的机器在 Linode 上运行 Ubuntu 10.04 LTS 64 位配置文件。我安装的唯一其他扩展是 New Relic 和 …
我正在使用的 PHP 程序 ( LConf ) 使用sudo.
我已允许用户apache运行脚本并使用sudo -u apache /usr/local/LConf/lconf_deploy.sh.
我在lconf_deploy.sh拨打时被提示输入密码/usr/bin/sudo -u icinga /usr/local/LConf/LConfExport.pl -o /etc/icinga/lconf -v,但在此线路之前或之后拨打线路没有问题。
在阅读了很多(在 stackexchange 和互联网上的其他地方)关于在这种情况下该怎么做之后,我已经禁用requiretty并使用NOPASSWD了所有我能想到的会影响这种情况的东西。
# cat /etc/sudoers | grep -v "#"
Defaults always_set_home
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC …Run Code Online (Sandbox Code Playgroud)