Debian 8.x “jessie” 使用 Dotdeb 安装最新版本 LEMP / LNMP

Ubuntu 系统虽好,而且是商业公司 Canonical Ltd 维护,质量是绝对有保障的,但是有一点让我很不爽的地方,就是这系统太激进,出于个人爱好,我推荐使用 Debian 作为生产环境,毕竟 Ubuntu 也是 Debian 改的嘛。

Debian 由社区维护,没商业公司那么多杂七杂八的流程,Dotdeb 制作维护的 LEMP 仓库,便是其中一个佼佼者,基本上官方发布最新稳定版,这货就会跟上。

众所周知,Ubuntu 是基于 Debian 系的,所以使用上完全不成问题,下面我们进入安装步骤吧。

以下安装步骤都在 root 用户下完成,请自行使用 su 命令切换到 root 用户

1、增加 Backports 和 Dotdeb 源并更新系统

按照 Dotdeb 的安装说明,从 Nginx 1.10.2 开始已经修复并完全支持 HTTP/2 ,但是其中的 OpenSSL 升级需要使用 Debian 8.x Jessie 的 Backports 仓库

首先新建个源文件 /etc/apt/sources.list.d/dotdeb.list ,加入这几行

#Backports
deb http://ftp.debian.org/debian jessie-backports main

#Dotdeb
deb http://packages.dotdeb.org jessie all  
deb-src http://packages.dotdeb.org jessie all

deb http://packages.dotdeb.org jessie-nginx-http2 all  
deb-src http://packages.dotdeb.org jessie-nginx-http2 all  

然后导入 Dotdeb 的 GnuPG key

wget https://www.dotdeb.org/dotdeb.gpg  
apt-key add dotdeb.gpg  

接着更新一下系统并且安装一些必要的软件

apt-get update && apt-get upgrade  
apt-get install vim curl sudo wget  

2、升级 OpenSSL

Debian 8.x Jessie 目前的 OpenSSL 版本还是 1.0.1,不支持 ALPN 的最低要求 1.0.2,所以我们升级

apt-get -t jessie-backports install libssl1.0.0  
apt-get -t jessie-backports update && apt-get -t jessie-backports upgrade  

检查一下 OpenSSL 版本是否正确

root@debian ~ # openssl version  
OpenSSL 1.0.2k  26 Jan 2017  

3、安装 Nginx

apt-get install nginx-extras  

4、安装 PHP 7.0.x

apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc php7.0-zip  

修改 php.ini

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.0/fpm/php.ini  

重启 PHP

systemctl restart php7.0-fpm  

Nginx 参考配置文件

server {  
        listen 80;
        listen [::]:80;

# 指定网站目录,可根据自己情况更换,建议放在 /var/www 目录下
        root /var/www/example.com;
        index index.php index.html index.htm;

# 默认第一个域名,替换 example.com 为您的域名
        server_name example.com;

        location / {
            try_files $uri $uri/ =404;
        }

# 开启 PHP7.0-fpm 模式
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

5、安装 MySQL 5.7.x

《Ubuntu Server 16.04 安装 LEMP / LNMP 教程》一文一样,我们推荐使用 Percona Server 代替原生的 MySQL,这里就简单重复一下

导入 Percona Server 的源

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb  
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb  

记得检查一下 /etc/apt/sources.list.d/percona-release.list 是否正确

更新系统并安装 Percona Server 5.7

apt-get update  
apt-get install percona-server-server-5.7  

推荐做一次 MySQL 安全设置

mysql_secure_installation  

使用 MySQL root 用户登陆

mysql -u root -p  

创建数据库 example_database

CREATE DATABASE example_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  

创建用户名 example_user 并赋予权限

GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY '这里改成你要设置的强大的没人能猜出来的随机的密码';  

刷新 MySQL 权限

FLUSH PRIVILEGES;  

没问题以后就可以退出了

EXIT;  

好了,大功告成,其实除了增加 Dotdeb 的源,不需要对 Nginx 和 PHP 进行额外的源修改,其余步骤是和 Ubuntu 一毛一样的,所以很多步骤都进行了说明上的省略所见,如需更详细的说明,请访问《Ubuntu Server 16.04 安装 LEMP / LNMP 教程》

如需要帮助或建议,请前往 Telegram 群 @sbfans