Total Pageviews

Sunday, 8 May 2016

从Debian7升级到Debian8

因为是Debian服务器系统,所以升级的过程非常的简单

首先停用网站的所有相关服务,包括apache/Mysql,将/etc/apache2/sites-enabled中所有配置文件的链接删除:
service apache2 stop
service mysql stop
然后进行一次软件更新,确保升级前所有软件均为最新版本:
apt-get update
apt-get upgrade
升级完成后,将/etc/apt/sources.list中的所有的wheezy替换成jessie

然后开始系统升级,首先更新非主要的jessie软件:
apt-get update
apt-get upgrade
这次更新会涉及到mysql更新,在显示更新内容时按q退出!在询问是否更新配置文件时选择默认不更新。

接着进行内核更新:
apt-get dist-upgrade
这次更新会花费较长的时间,并且会涉及apache和php以及各种系统核心软件的更新,会多次询问是否更新相关配置文件,选择默认不更新。如果安装有phpmyadmin组件还会询问数据库密码用于更新系统数据库。

当重新回到输入命令状态时,就完成了升级过程。

清除旧的依赖包,可以将新系统中不需要的包清除:
apt-get autoremove
apt-get clean

最后,通过以下命令查看系统版本:
cat /etc/debian_version或者
lsb_release -a
另外,由于安装时保留了旧的配置文件,在升级之后会出现各种各样的问题,特别是apache2.2升级到apache2.4,配置文件的变化非常大,所以还要一步一步的对配置文件进行更新和调整。详见从Debian7.9升级到Debian8.2后碰到的问题。

为了避免升级后由于PHP配置错误导致PHP内容明文显示的问题,在升级前先用a2dissite停用所有网站,然后再升级。待升级之后先开启默认网站000-default.conf,然后用一个测试PHP程序或PHP探针来测试PHP环境是否正常,再依次调试和上线生产环境,避免数据库密码和敏感信息泄露。

我升级成功。



在从Debian7.9升级到Debian8.2后,碰到了一些问题

Apache配置文件问题
在升级到Debian8.2之后,如果在安装时选择保留旧配置文件,会在启动Apache时报错,通常是下面几个错误

1.在apache2.2时需要读取conf.d文件夹中配置文件,但是在apache2.4中已经没有这个文件夹.
apache2: Syntax error on line 265 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/conf.d/: No such file or directory

2.apache2.2有一个LockFile的配置项,在apache2.4中已取消.
AH00526: Syntax error on line 89 of /etc/apache2/apache2.conf:
Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration

3.在apache2.2中ServerName支持通配符,在apache2.4中已禁用.
AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/a.your-domain.com:
Invalid ServerName "*" use ServerAlias to set multiple server names.
解决了以上问题之后,虽然能够正常启动apache,但是如果文件夹中有.htaccess,会导致500 Internal Server Error,通过对比新旧apache2.conf文件,发现是由于文件夹默认权限引起,用新配置文件中的相关内容进行替换,可以解决500内部错误。
(对apache的影响
apache2升级后,配置文件有改动,导致出现“403 forbidden”的情况。问题原因是apache2的部分配置参数取消了,需要用新的参数替代。修改/etc/apache2/sites-enabled/000-default(-ssl)文件:
 Order allow,deny
 allow from all
修改为:
require all granted)


.htaccess失效的问题
在替换和更新apache2配置文件之后,网站都可以访问了,但发现.htaccess文件都失效了。是因为apache2的新配置文件中有一条网站根目录的默认配置为禁止在子目录中运行.htaccess文件,需要更改为如下:
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
更改之后重启apache服务,网站就像升级系统之前一样了.
-------------------------------------

Debian6.x 升级到Debian8.x 的手记

注意一点:从6.x直接升级至8,会出错,只能先升级至7(wheezy)。

看步骤吧:

1、直接从163镜像下载sources.list

#cp /etc/apt/sources.list /etc/apt/squeeze_sources_list

#wget http://mirrors.163.com/.help/sources.list.wheezy -O /etc/apt/sources.list

2、apt-get update && apt-get -y upgrade

3、apt-get dist-upgrade

如果不出意外就能顺利升级到Debian7.9,但我需要的是目前最高的稳定版8.3(jessie),于是继续升级。当然也可以按照上面的方法再做一次,不过得把wheezy改成jessie。

1、改名现有sources.list名字,从163镜像下载文件

#cp /etc/apt/sources.list /etc/apt/wheezy_sources_list

#wget http://mirrors.163.com/.help/sources.list.jessie -O /etc/apt/sources.list

2、再来一次update、upgrade

#apt-get update -y && apt-get -y upgrade && apt-get dist-upgrade -y

值得留意的是,debian不将SSH作为默认选项,所以在升级过程中会弹窗询问是不是需要Root来作为登录,如果选了“Yes”而没增加新用户来登录,弹窗的选项要选否呀。如果需要只支持ROOT作为本地登录,可以在设置/etc/ssh/sshd_config文件,具体看 保护SSH、修改22端口,防止被暴力破解后保护Linux系统

#cat /proc/version
#cat /etc/debian_version


升级完毕之后,可以自行选择添加最快的镜像来作日后升级之用,安装netselect-apt:
apt-get install netselect-apt -y

#netselect-apt -s stable (可以带–help看各种选项,我只需要稳定版stable,因为要做WEB服务器之用)

OK,就写这么多了.