【云计算的1024种玩法】手把手学会配置安装 LNMP 建站环境

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本教程就介绍如何配置一个性能优异、灵活自由而且升级方便的进阶型 LNMP 环境,由 Ubuntu + OpenResty + MariaDB + PHP 组成,兼容 LNMP 的习惯但是更加灵活和可靠。

前言

在云计算普及之前的 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 端口

【云计算的1024种玩法】用好阿里云的安全组

安装

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 学习当中。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
5天前
|
存储 安全 网络安全
云端防御:云计算环境下的网络安全策略与实践
【5月更文挑战第23天】 在数字化转型的大潮中,云计算已经成为企业IT架构的核心组成部分。然而,随着云服务的广泛采用,数据安全和隐私保护问题日益凸显。本文将深入探讨云计算环境中的网络安全挑战,并分析现代企业在维护信息安全方面的策略和技术实践。通过综合运用加密技术、身份认证、访问控制以及入侵检测等手段,构建了一个多层次的安全防护体系,旨在为云服务用户提供一个更加安全可靠的计算环境。
|
1天前
|
Cloud Native 测试技术 持续交付
构建高效稳定的云原生应用部署策略云端防御:云计算环境中的网络安全与信息保护策略
【5月更文挑战第27天】 在快速迭代和持续交付成为企业软件开发新常态的今天,如何确保云原生应用的部署效率与稳定性是每个运维工程师面临的重要挑战。本文将探讨一种综合性部署策略,该策略结合了容器化技术、微服务架构、自动化测试以及持续集成/持续部署(CI/CD)流程,旨在为现代云原生应用提供一个可靠且高效的部署模式。通过分析传统部署模式的不足,并引入先进的技术和实践,我们的目标是降低部署风险,提高部署速度,同时确保产品质量和服务的稳定性。
|
1天前
|
运维 安全 Devops
云计算环境下的网络安全策略与挑战构建高效稳定的云基础设施:DevOps与自动化运维实践
【5月更文挑战第27天】 随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键基础设施。然而,数据存储和服务交付模式的转变也带来了新的安全风险和挑战。本文探讨了在云计算环境中实现网络和信息安全的策略,并分析了当前面临的主要安全威胁。通过深入剖析云服务模型、加密技术、身份认证机制及合规性要求,我们提出了一系列创新的安全框架和解决方案,旨在为组织提供全面的安全防护,同时促进云计算资源的高效利用。
|
1天前
|
机器学习/深度学习 人工智能 安全
构建未来:AI驱动的自适应网络安全防御系统云端守卫:云计算环境下的网络安全与信息保护策略
【5月更文挑战第27天】 在数字化时代,网络安全威胁持续进化,传统的安全措施逐渐显得力不从心。本文探讨了人工智能(AI)技术如何革新现代网络安全防御系统,提出一个基于AI的自适应网络安全模型。该模型结合实时数据分析、模式识别和自我学习机制,能够动态调整防御策略以应对未知攻击。文章不仅分析了此模型的核心组件,还讨论了实施过程中的挑战与潜在效益。通过引入AI,我们展望一个更加智能且具有弹性的网络安全环境,旨在为未来的网络防护提供一种创新思路。
|
1天前
|
监控 安全 云计算
云端防御战线:云计算环境下的网络安全策略构建高效稳定的Docker容器监控体系
【5月更文挑战第27天】 在数字化时代的浪潮中,云计算已成为企业与个人存储和处理数据的重要平台。然而,随着云服务使用率的飙升,网络威胁也愈发狡猾且复杂。本文将深入探讨在云计算环境中维护网络安全的挑战及策略,重点分析信息安全的关键组成部分,并提出多层次防御模型以增强云环境的数据保护能力。通过剖析最新的安全技术与实践,我们旨在为读者提供一套全面的网络安全解决方案蓝图。
|
1天前
|
监控 安全 网络安全
云端防御策略:保障云计算环境下的数据安全与完整性
【5月更文挑战第27天】 随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键平台。然而,云服务的广泛采用也带来了前所未有的网络安全挑战。本文深入探讨了云计算环境中面临的主要安全威胁,分析了云服务模型(IaaS, PaaS, SaaS)特有的风险点,并提出了一系列创新的安全策略和最佳实践,以增强数据安全性和确保信息完整性。我们重点讨论了多因素认证、加密技术、入侵检测系统、安全配置管理以及持续监控的重要性,旨在为组织在迁移和运营云基础设施时提供全面的安全指导。
|
1天前
|
存储 安全 网络安全
构筑防御堡垒:云计算环境下的网络安全策略
【5月更文挑战第27天】 随着企业逐渐将重心转向云服务,确保在云端的数据安全成为不可忽视的挑战。本文旨在探讨云计算环境中的网络安全问题,并提出一系列策略来加强信息安全。首先,分析了云计算服务模型与网络安全的关系,然后讨论了当前面临的主要安全威胁以及如何通过综合安全措施进行有效防护。最后,提出了一种多层次、多方面的安全框架,以帮助组织在享受云计算带来的便利的同时,保障其数据和资源的安全。
|
1天前
|
机器学习/深度学习 存储 安全
构筑防线:云计算环境下的网络安全策略与实践深度理解变分自编码器:理论与应用
【5月更文挑战第27天】 随着企业和个人日益依赖云计算提供的便捷服务,云平台已成为数据存储、处理和交换的关键枢纽。然而,这种集中化的数据管理方式也带来了前所未有的安全挑战。本文将深入探讨在动态且复杂的云计算环境中,如何通过一系列创新策略和最佳实践来强化网络和信息安全。我们将分析当前云服务中的安全隐患,并提出相应的解决方案,以保障用户和企业的资产安全。 【5月更文挑战第27天】 在深度学习的丰富研究领域中,生成模型因其能够学习数据分布并生成新样本而备受关注。变分自编码器(Variational Autoencoders, VAEs)作为一类生成模型,不仅在无监督学习任务中表现出色,而且在半监督
|
1天前
|
存储 监控 安全
云端防御线:云计算环境下的网络安全策略
【5月更文挑战第27天】 在数字化时代,企业和个人日益依赖于云服务来存储、处理和交换数据。然而,随着云计算的普及,网络安全威胁也随之增加。本文将探讨云计算环境中面临的主要安全挑战,并提出一系列针对性的安全策略。从数据加密到身份验证,再到入侵检测系统,我们剖析了如何构建一个多层次的防御体系以保护云资源。此外,文章还讨论了合规性的重要性,以及如何通过持续监控和响应机制来强化安全态势。
|
1天前
|
监控 安全 网络安全
构筑安全堡垒:云计算环境下的网络安全策略与实践
【5月更文挑战第27天】 随着企业数字化转型加速,云计算服务成为支撑业务发展的关键基础设施。然而,云服务的广泛采用也带来了新的安全挑战。本文将探讨在复杂多变的云计算环境中,如何构建有效的网络安全防御体系,确保数据完整性、保密性与可用性。我们将重点分析云服务模型中的安全风险,并提出相应的安全策略和最佳实践,以帮助企业在享受云计算带来的便利的同时,有效防范潜在的网络威胁。