Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)

最近要迁移老系统(非常非常非常老版本配置的web系统)到新的服务器上(Debian9),因为版本兼容问题好一阵折腾。写下这篇博客梳理一下学习探索的过程和成果,希望可以让面临相似问题的同学们少走点弯路。

只想看LAMP安装的请直接下滑到2、Debian9安装LAMP

1、明确新老环境配置

做系统迁移之前一定要首先明确

1)老服务器的操作系统版本,要迁移的web系统在该OS上涉及到的所有环境、软件的版本(web系统的话主要就是看LAMP)

2)要迁往的新服务器的操作系统版本,该操作系统默认安装(apt-get)的LAMP都是什么版本。

3)在新操作系统默认安装的LAMP环境下老系统是否会出现兼容问题(PHP与thinkphp其它开源框架的兼容)。

接下来给出一组查看环境的linux命令

查看服务器linux版本

lsb_release –a   

查看当前系统的发行版信息(prints certain LSB (Linux Standard Base) and Distribution information.)。有了这个命令就可以清楚的知道到底是RedHat的、Debian的、还是别的发行版,还有具体的版本号,比如3.4还是8.6等等。

这里给出博主新老Debian系统版本的查询示例,一个8.6,一个9.1。

想要查看更详细的操作系统信息(包括发行版本,系统内核之类的)可以使用命令

uname -a

uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)_第1张图片

两种命令的区别和更多参数使用方法可以参考

http://c.biancheng.net/view/1087.html

查看环境配置

讲查看命令之前让我们先看一下什么是LAMP

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。因此想要运行动态网站,必须有合适版本的LAMP。

查看Apche版本

apachectl -v

查看Mysql版本

mysql -V

注意这里是大写V

查看PHP版本

php -v

此外博主的网站使用的是thinkphp框架,因此这里还有一个查看thinkphp版本,防止PHP版本与thinkphp版本不兼容

在/var/www/html/ThinkPHP/Common/的defines.php中,可以看到有一句话define了thinkphp的版本

define('THINK_VERSION', '2.1');

其它版本的thinkphp版本查看路径自行百度。

版本兼容问题排查

在 Debian Stretch 中,系统自带的 PHP 版本已经默认为 PHP 7.0。默认MySQL变为MariaDB。

更多Debian9的变化参考https://www.oschina.net/news/85942/debian-9-stretch

让我们先来看看MariaDB是什么:

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品

OK,看到这句话,我们就不必担心数据库版本兼容问题了,直接安装Debian9的默认MariaDB就完全可以了。两者兼容性比较参见https://blog.csdn.net/keith_lover/article/details/47186865?utm_source=blogkpcl0

那么PHP7呢?

博主稍稍搜索就在网上看到了一大堆“解决Thinkphp3.1不支持PHP7”的文章,看起来解决相当麻烦具体可以参见https://www.jianshu.com/p/a39f0af8f093

tp3.1都不支持php7了,那博主的tp2.1.。。。。。。不敢想不敢想,决定老老实实装PHP5.6

好了,可能涉及到的兼容性问题都罗列在此了。博主接下来会以Debian9下安装LAMP(Apache2+MariaDB+PHP5.6)为例,给出LAMP的安装、配置、验证过程。

2、Debian9安装LAMP(Apache2+MariaDB+PHP5.6)

注意以下都在root权限下操作

在正式安装之前,有必要说一下源的问题,博主开始的nameserver和souces.list其实并不好用,找不到需要安装的软件包。经过一番查找,添加了nameserver和源。

添加源

nameserver就是DNS域名解析服务器,将域名转换为网络可以识别的IP地址。

echo nameserver 8.8.8.8 > /etc/resolv.conf  

echo nameserver 8.8.4.4 > /etc/resolv.conf 

 

可以添加两个google的DNS服务器到你的配置文件中。

这几个服务器也是可以参考的

nameserver 202.112.23.161

nameserver 202.112.23.162

nameserver 10.0.2.3

还可以通过向/etc/apt/sources.list源文件添加更多的源增加找到安装包的机会。以下是博主给出的几个镜像源,仅供参考。

写入/etc/apt/sources.list即可。

deb http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib

deb http://security.debian.org/debian-security stretch/updates main contrib non$
deb-src http://security.debian.org/debian-security stretch/updates main contrib$

deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free cont$

# stretch-updates, previously known as 'volatile'
deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free

安装MariaDB和Apache2

因为我们在debian9下直接安装debian9自带的MariaDB和Apache,直接get非常简单。

先update一下源,再进行安装。

apt-get update
apt-get install apache2 mariadb-server mariadb-client mariadb-common 

安装完成后,先让我们确保所有的服务都在运行

systemctl is-active apache2 或 sudo systemctl status apache2
systemctl is-active mariadb

如果显示active则说明两者都在运行,如果没有运行的话执行以下启动服务

systemctl start {apache2,mariadb}

测试Apache2安装成功

apache2 -v
查看当前Apache版本

最佳方法是从Apache请求页面。可以通过访问默认的Apache登录页面,确认软件是否通过您的IP地址正常运行。如果不知道IP地址可以通过以下命令查看

hostname -I

 在浏览器中输入http://your_server_ip如果看到以下页面说明Apache安装成功。

Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)_第2张图片

测试MariaDB是否安装成功

直接键入命令

mysql -p -u root
//默认密码为空

Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)_第3张图片

说明数据库安装成功。

安装成功以后先不要着急往下,设置一下用户密码

mysql_secure_installation

以上命令可以设置数据库根帐户的密码,根据提示一步步设置即可,设置好以后能通过密码登录数据库即设置成功。

这里再为大家提供一个彻底卸载mysql的方法,是博主执着于装Mysql的时候装了卸,卸了装总结出来的经验。。。。

先用 purge 命令卸载:

apt-get --purge remove mysql-server
apt-get --purge remove mysql-client
apt-get --purge remove mysql-common

再清理残余:

apt-get autoremove
apt-get autoclean
rm /etc/mysql/ -R
rm /var/lib/mysql/ -R

查看系统上安装的所有和mysql相关的软件
dpkg --get-selections | grep mysql
如果还发现有未卸载的组件,直接删除即可

安装PHP5.6

重头戏来了!!!Debian9默认安装PHP7,因此如果直接apt-get php的话会自动安装php7,博主就是吃了这个亏所以先get了一套彻底删除PHP7的方法。(当然不删除的话也是安装5.6的)

sudo apt-get --purge remove libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-mysql 
//卸载php7及其组件

apt-get autoremove php7.*    //删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包。

apt-get --purge remove php7* //删除安装包,不保留配置文件

或者

sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
//查询已经安装的php,全部删除,注意如果你除了7还装了其他版本的php,也会一起被删除

关于各种卸载删除命令,可以参见以下总结

apt-get autoclean:

如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试apt-get clean,这会把你已安装的软件包的安装包也删除掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。


apt-get clean:

类似上面的命令,但它删除包缓存中的所有包。这是个很好的做法,因为多数情况下这些包没有用了。但如果你是拨号上网的话,就得重新考虑了。


apt-get autoremove:

删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包。


apt-get remove 软件包名称:

删除已安装的软件包(保留配置文件)。


apt-get --purge remove 软件包名称:

删除已安装包(不保留配置文件)。

正式开始PHP5.6的安装

首先,我们需要配置一个新的安装源,以便安装 php 5.6 的包,这里我们选择 deb.sury.org 

安装一些必要的软件包
apt-get install apt-transport-https lsb-release ca-certificates

下载安装对应的GPG key 文件
curl https://packages.sury.org/php/apt.gpg | apt-key add -

配置安装源
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php5.list

安装PHP5.6

apt-get update

apt-get install php5.6 php5.6-mysql php5.6-xml php5.6-zip php5.6-json php5.6-gd php5.6-bcmath

这里有一个依赖的安装需要单独拿出来说明一下,那就是apache的php模块,如果不安装的话apache无法解析php文件,访问服务器上的文件会显示php源码。千万不要忘记装!!!

apt-get install libapache2-mod-php5.6

至此php5.6也安装结束了

测试php是否安装成功

update-alternatives --config php可以查看当前服务器上配置的所有php

如果是多版本php并存的话会出现以下多选模式

----------------------------------------------------------
* 0            /usr/bin/php7.0   70        mode automatique
  1            /usr/bin/php5.6   56        mode manuel
  2            /usr/bin/php7.0   70        mode manuel

测试apache与php是否配置成功

在网站目录下新建一个php文件
/var/www/html/info.php


// 文件内容


在浏览器输入
http://your_server_ip/info.php

 

出现以下页面即说明apache与php配置成功

Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)-系统迁移(debian8->debian9)_第4张图片

使用php脚本测试数据库连接

在网站目录下新建一个php文件
/var/www/html/db_test.php

文件内容为


在浏览器输入http://your_server_ip/db_test.php
返回结果为
Resource id #3
即说明数据库连接成功,返回了一个记录集合

3、安装其他软件

如果你的网站还需要安装一些其他的软件,比如php5-curl(在php内实现类似post等的传输)、graphviz (根据模板生成相应的图形)等,可以先通过apt-cache search php | grep -i curl一类的命令搜索系统中是否有这个软件,如果有的话,可以进行安装

apt-get install php5-curl -y

至此,Debian9安装LAMP环境(Apache2+MariaDB+PHP5.6)就完成啦。将之前系统的代码copy到html目录下直接访问就可以了。

当然,如果你是首次接触在LAMP环境下搭建动态网站可能还需要配置更多的东西。可以参考

如何在Debian9上安装Apache Web服务器 https://www.howtoing.com/how-to-install-the-apache-web-server-on-debian-9

如何在Debian9上使用Apache安装和配置Drupal https://www.howtoing.com/how-to-install-and-configure-drupal-on-debian-9 

查看网站开发信息在浏览器输入 https://toolbar.netcraft.com/site_report?url=你要查询的网址

 

你可能感兴趣的:(linux,环境配置)