爱创新网络
我们一直在努力

Ubuntu 18.04 手动搭建 LNMP 环境

buntu 官方源上 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

设置 nginx log_format 格式:

vim /etc/nginx/conf.d/main-log-format.conf

复制以下内容粘贴并保存:

log_format main '"$http_x_forwarded_for" - $remote_addr - [$time_local] "$request" '
               '$status $upstream_response_time $request_time "$http_referer"'
               '"$http_user_agent" $body_bytes_sent ';

注意,设定的 log 格式需要在单独的 server 配置中声明,例如如下定义 log 的方式:

access_log  /var/log/nginx/www.timelate.com_access.log main;

按照官方建议,删除 /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 ,设置密码,按提示操作即可

注意,通过以上步骤虽然为 MySQL 的 root 用户设置了密码,但在运行 mysql -uroot -p 命令后回车却能直接进入控制台,设置的密码并未生效,解决方法如下:

mysql -uroot -p  #使用空密码进入控制台
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';  # your_password 修改为自己的密码

修改完成后退出控制台,再次运行 mysql -uroot -p ,发现设置的密码已生效,空密码或错误密码已不能登录。

更新 LNMP

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

apt update && apt upgrade -y

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

赞(4)
未经允许可以转载:爱创新网络 » Ubuntu 18.04 手动搭建 LNMP 环境

用技术驱动人生,让生活更便捷

登录

找回密码

注册