前言
在云计算普及之前的 VPS 时代基本上网络环境环境都是靠 LNMP(Linux + Nginx + MySQL + PHP)支撑起来的,因为其配置方便而且相较于 LAMP(Linux + Apache Httpd + MySQL + PHP)在小配置机器上表现非常好。不过 LNMP 的的更新可远不止这些。
本教程就介绍如何配置一个性能优异、灵活自由而且升级方便的进阶型 LNMP 环境,由 Ubuntu + OpenResty + MariaDB + PHP 组成,兼容 LNMP 的习惯但是更加灵活和可靠。
准备
云翼计划
学生用户可以在阿里云官网上进行学生认证后购买一定配置的ECS,仅需9.9元每月,学生用户无需担心花费过多用在服务器的问题。
学生用户在经过学生认证过后就可以在相关网址进行购买,网址为:https://promotion.aliyun.com/ntms/campus2017.html,
买好了服务器就可以去刚刚注册好的账号管理里的管理控制台去查看服务器以及它的一些配置。
远程控制
【云计算的1024种玩法】使用 DMS 只要一个浏览器轻松搞定运维任务
【云计算的1024种玩法】ECS和轻量应用服务器的远程控制入门
设置安全组(重要)
如果不设置好安全组,究竟是无法访问还是编译失败会分不清的。
需要开放 : 80 和 443 端口
安装
OpenResty
为了更好的性能和灵活性,OpenResty 选择编译的方式。OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,拥有非常好的拓展性让服务器发挥更好性能。教程中将全部依赖 Linux 发行版组建中的依赖,而免除编译带来的后期维护成本。
详情: 【云计算的1024种玩法】手把手教你如何编译一个高性能 OpenResty
PHP
软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.2-fpm.sock
,比使用 TCP 以 localhost:9000
的方式性能更好。
安装软件源拓展
安装软件源拓展工具:
apt -y install software-properties-common
添加 Ondřej Surý 的 PHP PPA 源,需要按一次回车:
add-apt-repository ppa:ondrej/php
更新软件源缓存:
apt update
安装软件
安装 PHP7.2:
apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache -y
安装 PHP7.1:
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 -y
安装 PHP7.0:
apt 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 php7.0-opcache -y
安装 PHP5.6:
apt install php5.6-fpm php5.6-mysql php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-xml php5.6-xmlrpc php5.6-zip php5.6-opcache -y
设置 PHP
这里以 PHP7.2 为例,其他版本仅需将版本号改成自己所用的即可. 安装完成后,编辑 /etc/php/7.2/fpm/php.ini
替换换 ;cgi.fix_pathinfo=1
为 cgi.fix_pathinfo=0
快捷命令:
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini
管理 PHP
安装好了先重启一下! 更多操作:
systemctl restart php7.2-fpm #重启
systemctl start php7.2-fpm #启动
systemctl stop php7.2-fpm #关闭
systemctl status php7.2-fpm #检查状态
查看当前 PHP 版本:
php -v
MariaDB
这里我们用 MariaDB 代替 MySQL,MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可 MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。
安装 MariaDB 参考:【云计算的1024种玩法】安装 MariaDB 并通过 DMS 管理
可以实现通过阿里云的 DMS 产品高效且可视化的对 MariaDB 数据库进行管理,直观而且高效。
设置
仅仅只是安装好 OpenResty 、MariaDB 和 PHP 但不进行结合就是没有意义的。那么如何创建虚拟子主机呢,并让 OpenResty 加载 PHP-FPM呢?
默认主机安装探针和 phpMyAdmin
开启 PHP-FPM
将 /usr/local/openresty/nginx/conf/nginx.conf
中的这一段修改为,下面 PHP 的版本是 7.2,里面还加入了防跨站参数其他版本记得修改:
######################## default ############################
server {
##运行端口
listen 80;
##这条意味着非指定域名之外均使用这个设置
server_name _;
access_log /data/wwwlogs/access_nginx.log combined; #日志目录
root /data/wwwroot/default; #网站文件目录
index index.html index.htm index.php; #首页文件优先级
##PHP
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
}
##下面的都是缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /\.ht {
deny all;
}
}
下载探针
cd /data/wwwroot/default
wget http://www.yahei.net/tz/tz.zip
unzip tz.zip
访问:http://yourip/tz.php
就可以看到亲切的雅黑探针了。
下载 phpMyAdmin
cd /data/wwwroot/default
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.1/phpMyAdmin-4.7.1-all-languages.zip
unzip phpMyAdmin-4.7.1-all-languages.zip
mv phpMyAdmin-4.7.1-all-languages pma
访问:http://yourip/pma
就可以看到亲切的 phpMyAdmin 了。
虚拟子主机
单独为域名专门开辟虚拟子主机,首先创建储存内容的目录:
mkdir -p /data/wwwroot/主机目录名称
mkdir -p /usr/local/openresty/nginx/conf/vhost/
接下来,创建子主机配置文件,记得将 server_name yourdomian;
改成 server_name 你的域名
:
cat >> /usr/local/openresty/nginx/conf/vhost/yourdomian.conf << EOF
server {
##运行端口
listen 80;
##这里需要改成你的域名
server_name yourdomian;
access_log /data/wwwlogs/access_nginx.log combined; #日志目录
root /data/wwwroot/yourdir; #网站文件目录
index index.html index.htm index.php; #首页文件优先级
##PHP
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
}
##下面的都是缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /\.ht {
deny all;
}
}
EOF
然后重启 OpenResty,就可以访问你的 http://你的域名
看看网站的 403 了:
nginx -s reload
更新
很多教程比较流氓的就是针对安装了 LNMP 环境却不提供更新 OpenResty 、ariaDB 和 PHP 的方法,特别是一些编译方式的教程,升级就更是问题了,极大的提高了使用者的安全风险和学习成本。
不过我们的这个 LNMP 环境方便的就在于升级非常方便。
运行
apt update && apt upgrade
就可以实现 PHP、MariaDB 以及 Ubuntu 系统组件的更新和升级,非常的快捷方便。 OpenResty 的升级教程也将在后面写出来~
结语
学会安装 LNMP 环境后基本上除非一些非常老旧的版本。就能通吃所有的 PHP 程序的安装了,希望大家能够应用到自己的 Linux 学习当中。