我对整个服务器管理的事情还很陌生。
我目前正在运行具有以下 lamp-stack 版本的 CentOS 7 服务器:
- Apache(httpd)-2.4.6(CentOS)
- php——7.1.12(IUS)
- MariaDB - 5.5.56(CentOS)
- phpMyAdmin - 4.7.5 (zip 手册)
我想要升级到以下版本:
- Apache(httpd)-2.4.29(CodeIt,撰写本文时最新版本)
- php - 7.2.x (可能是 remi)
- MariaDB - 10.2.12(mariadb.org,截至撰写本文时的最新稳定版本)
- phpMyAdmin - 4.7.7 (zip 手册)
现在我的问题是:
我是否可以在不丢失配置的情况下进行这些升级,或者我是否需要备份特定文件以免丢失它们?
如果我确实需要备份,最好有人能指点我。
服务器的附加信息:
- 该服务器正在运行 5 个网站,所有网站均采用 SSL
- 服务器正在运行使用 Postfix、Dovecot、OpenDKIM 和用户帐户数据库的邮件服务器
- 该服务器正在运行基于 Web 的云(Owncloud)
- 该服务器正在运行 3 个游戏服务器 (Minecraft)
- 我是唯一一个有 SSH 访问权限的人
- 我不一定会认为它是一个生产服务器
答案1
php - 7.2.x(由于我不喜欢 remi 将文件放置在 /etc/opt/remi/ 中的方式,因此 IUS 会尽快将其准备好作为 RPM)
仅当您选择“多个版本”(SCL)时,文件才会位于 /opt 中
如果选择“单一版本”,文件将位于标准路径中
继向导说明
简而言之:
yum-config-manager --enable remi-php72
yum update
答案2
因此,经过相当长一段时间的测试,结果表明大多数东西都可以安全升级,但是 mariadb 并不容易配合。
如果有人碰巧想做同样的事情,那么这些事情对我有用:
以下服务能够在保留配置文件的同时顺利升级:
- 阿帕奇(httpd)- 作为参考资料,我使用了这个教程。
- 简而言之:
cd /etc/yum.repos.d && wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo
- 之后就可以正常
yum update
工作并用新的包替换包
- 简而言之:
- phpMyAdmin- 作为参考,我只是复制了预装的 phpMyAdmin 的布局
- 从官方下载最新版本网站
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip
- 解压文件然后将其移动到
/usr/share/phpMyAdmin/
- 更改
CONFIG_DIR
变量/usr/share/phpMyAdmin/libraries/vendor_config.php
以便/etc/phpMyAdmin/
它可以读取 config.inc.php
- 从官方下载最新版本网站
- php- 作为参考,我遵循了 Remi 的配置向导指示
- 在 @Remi Collet 纠正我安装单个 php 版本之后,安装本身就完美无缺了(安装说明请参见他的回答)
- 由于这个事实OwnCloud不支持 php7.2,我不得不同时安装多个版本的 php7.1,幸好 php-fpm 让它在网络服务器上运行并不困难。
以下服务在升级过程中出现问题
- 玛拉雅数据库- 作为参考,我遵循了这一点教程
- 一开始我尝试使用
yum update
它,找到了要替换的软件包,但最终导致与 mysql 相关的一切都崩溃了。所以我重新安装了 /etc/postfix
Postfix 依赖于 MariaDB,因此建议备份- 由于我尝试仅使用更新,因此我必须
kill [ProcessId]
对 mysql 守护进程运行的所有进程进行更新,否则它将无法启动并显示类似以下内容的消息:[ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
[NOTE] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
- 所有数据库均保留
- 一开始我尝试使用
概括:
Lamp 堆栈可以升级,同时保留大多数配置文件。只有在安装 mariadb 时,才可能需要备份依赖服务(例如 postfix)的配置(尽管系统也会自动完成此操作)