原文地址 Ubuntu 官方源上 nginx 和 php 更新速度很慢,很多人不得不自己编译 nginx 和 php ,非常麻烦。这里推荐来自捷克的 Ondřej Surý 大神的 PPA 源,可以方便的安装、升级最新版本的 nginx 和 php 。注意,以下操作是在 root 账号下进行的,非 root 账号需提升到 root 权限。

安装最新版 nginx

添加 nginx 源

首先安装依赖:

1
apt install software-properties-common -y

终端中输入以下命令添加 nginx 源:

1
add-apt-repository ppa:ondrej/nginx  #stable (稳定)版本

1
add-apt-repository ppa:ondrej/nginx-mainline  #mainline (主线)版本

以上两个版本二选一,这里选择稳定版。

安装 nginx

1
apt update && apt install nginx-extras -y

配置 nginx

按照官方建议,删除 /etc/nginx/sites-enabled 下的 default 配置文件:

1
rm /etc/nginx/sites-enabled/default

创建 default_server ,禁止 IP 及非配置域名 http 访问:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cat >> /etc/nginx/sites-available/default_server << EOF
server {
listen 80 default_server;
listen [::]:80 default_server;

server_name _;
return 500;

}

#server {
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; #替换为任一可用ssl证书
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; #替换为任一可用ssl证书私钥

# server_name _;
# return 500;

#}
EOF

如果服务器启用了 https ,需要将 https server 段的注释去掉,防止 ip 及非配置域名 https 访问。注意修改 ssl 证书的路径,替换为任一可用 ssl 证书及证书私钥即可。 启用 default_server 并重启 nginx

1
ln -s /etc/nginx/sites-available/default_server /etc/nginx/sites-enabled/default_server && systemctl restart nginx

安装 php7.1

添加 php 源

终端中输入以下命令添加 php 源:

1
add-apt-repository ppa:ondrej/php

安装 php7.1

终端中输入以下命令安装 php7.1 及常用扩展:

1
apt update && apt install php7.1-fpm php7.1-mysql php7.1-curl php7.1-gd php7.1-mbstring php7.1-mcrypt php7.1-xml php7.1-xmlrpc php7.1-zip php7.1-opcache php7.1-ldap -y

安装完成后,修改 /etc/php/7.1/fpm/php.ini ,防止跨站攻击。

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

重启 php7.1-fpm :

1
systemctl restart php7.1-fpm.service

安装 ionCube Loader 10

下载源码:

1
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip && unzip ioncube_loaders_lin_x86-64.zip

ioncube_loader 需与自己的 php 版本相对应,这里选择 php7.1 版本的 ioncube_loader ;php7.1 的扩展的目录在 /usr/lib/php/20160303 :

1
cp ioncube/ioncube_loader_lin_7.1.so /usr/lib/php/20160303

增加 ioncube_loader 模块配置文件:

1
2
3
cat >> /etc/php/7.1/mods-available/ioncube.ini << EOF
zend_extension = ioncube_loader_lin_7.1.so
EOF

将 ioncube_loader 模块接入 php-fpm 和 php-cli

1
2
ln -s /etc/php/7.1/mods-available/ioncube.ini /etc/php/7.1/fpm/conf.d/01-ioncube.ini
ln -s /etc/php/7.1/mods-available/ioncube.ini /etc/php/7.1/cli/conf.d/01-ioncube.ini

重启 php7.1-fpm 生效:

1
systemctl restart php7.1-fpm.service

检查一下 ioncube_loader 模块是否生效:

1
2
3
4
5
6
root@timelate:~# php -v
PHP 7.1.23-2+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 15 2018 11:37:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.5, Copyright (c) 2002-2018, by ionCube Ltd.
with Zend OPcache v7.1.23-2+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

看到 with the ionCube PHP Loader (enabled) 字样即说明 ionCube 模块已生效。 删除临时文件:

1
rm -rf ioncube ioncube_loaders_lin_x86-64.zip

安装 MySQL

通过以下命令安装最新版 MySQL :

1
2
apt install mysql-server -y
mysql_secure_installation #初始化 MySQL ,设置密码,按提示操作即可

更新 LNMP

通过以上步骤便可在 Ubuntu 16.04 上安装最新版(稳定版)的 nginx 、 php 及 MySQL 。后续如果有相应版本更新,直接通过以下命令更新即可:

1
apt update && apt upgrade -y

至此, LNMP 环境搭建完毕,本文结束。


本站由 @澄哥 使用 Stellar 主题创建。


本页点击量本站点击量次。
您是本站的第个小伙伴
蜀ICP备19037348号-2川公网安备51160202511796号
本站已稳定运行