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 教程》