在 VPS(CentOS)上,运行以下命令后,
[root@yukiko local]# pwd
/usr/local
[root@yukiko local]# ls
Zend apache bin etc games include lib lib64 libexec man mysql php sbin share src var
[root@yukiko local]# find / -iname httpd.conf
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/original/httpd.conf
[root@yukiko local]# find / -iname php
/usr/local/php
/usr/local/php/lib/php
/usr/local/php/include/php
/usr/local/php/bin/php
[root@yukiko local]# /usr/local/php/bin/php -v
PHP 5.2.9 (cli) (built: Mar 18 2009 01:02:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
[root@yukiko local]# yum list installed | grep php
[root@yukiko local]# yum list installed | grep apache
[root@yukiko local]# yum list installed | grep mysql
我怀疑 apache、mysql 和 php 没有使用 yum 安装。我不知道它们是如何安装的,但它们从租用 VPS 的第一天起就已经在那里了。现在我想知道如何将它们升级到较新的版本以免受安全漏洞的侵害。
目前,在phpmyadmin中,我已经发现有三个数据库(information_schema,mysql,webmail_horde)并且/home/httpd/html/htdocs/文件夹还包含此VPS管理网页界面的一些网页文件(允许启动,停止,重启... VPS等)。
由于它们不是使用 yum 安装的,因此我无法使用 yum update 来升级它们。
我也听说apache,mysql和php之间有些耦合,如何安全的升级呢?
非常感谢大家。
答案1
尝试这个:
rpm -qa | egrep '(http|php)'
如果您没有看到该输出中列出的软件包,那么您通常可以确信这些服务不是使用 RPM 安装的(yum 使用 RPM 软件包)。
好消息是或许可以使用 RPM 安装这些实用程序的 RPM 版本,它们不会与您当前安装的版本冲突,因为它们将安装在与您列出的目录不同的目录中(至少在 CentOS 上)——只需确保备份重要的配置文件和 init 脚本。然后,您可以并排编辑配置文件,以确保新版本的设置与旧版本相同。
坏消息是,apache 和 PHP 的 RPM 版本可能不支持手工编译软件的全部功能集。某些功能(如 XSLT)不是大多数 apache RPM 编译的一部分。此外,RPM 版本可能比您当前使用的版本更旧。例如,CentOS 仅附带 Apache 2.2.3 和 PHP 5.1.6。
答案2
如果它们不是通过 yum 安装的,您唯一的选择就是停止旧服务器,通过 yum 安装新服务器,复制内容和配置文件。