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

安装最新版 nginx

添加 nginx 源

首先安装依赖:

apt install software-properties-common -y

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


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

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

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

安装 nginx

apt update && apt install nginx-extras -y

配置 nginx

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

rm /etc/nginx/sites-enabled/default

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

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

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

安装 php7.1

添加 php 源

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

add-apt-repository ppa:ondrej/php

安装 php7.1

终端中输入以下命令安装 php7.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 ,防止跨站攻击。

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

重启 php7.1-fpm :

systemctl restart php7.1-fpm.service

安装 ionCube Loader 10

下载源码:

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 :

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

增加 ioncube_loader 模块配置文件:

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

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 生效:

systemctl restart php7.1-fpm.service

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

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 模块已生效。

删除临时文件:

rm -rf ioncube ioncube_loaders_lin_x86-64.zip

安装 MySQL

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

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

更新 LNMP

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

apt update && apt upgrade -y

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

文章目录