centos linux 部署 LNMP 详解

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: centos linux 部署 LNMP 详解

THREE DAY


案例1:部署LNMP环境


案例2:构建LNMP平台


案例3:地址重写


LNMP(linux nginx(接受用户请求) mariadb P:php(执行代码) python perl)


软件:


nginx


mariadb(管理数据) mariadb-devel(依赖包) mariadb-server(存数据)


php(用户看数据) php-fpm  php-mysql(连接数据库

一.安装软件

yum -y install gcc openssl-devel pcre-devel zlib-devel
useradd –s /sbin/nologin  nginx
cd nginx-1.8.0
./configure  --prefix=/usr/local/nginx  --user=nginx   --group=nginx  --with-http_ssl_module
make && make install
yum –y install   mariadb   mariadb-server   mariadb-devel
yum –y  install  php   php-mysql
tar  –xf  lnmp_soft-2017-03-28.tar.gz
cd  lnmp_soft
yum –y  localinstall php-fpm-5.4.16-36.el7_1.x86_64.rpm

二.启动服务

systemctl stop httpd
systemctl disable httpd                //关闭httpd的开机启动功能
/usr/local/nginx/sbin/nginx             //启动Nginx服务
 netstat -utnlp | grep :80
systemctl start mariadb
systemctl status mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl status php-fpm
systemctl enable php-fpm

三.构建LNMP平台

配置Fast-CGI支持PHP网页 
创建PHP测试页面,测试使用PHP连接数据库的效果 
Nginx结合FastCGI技术即可支持PHP页面架构,因此本案例,需要延续练习一的实验内容,通过修改Nginx及php-fpm配置文件实现对PHP页面的支持。
php-fpm需要修改的常见配置如下:
vim /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm = dynamic
listen = 127.0.0.1:9000                                     //PHP端口号
pm.max_children = 32                                      //最大进程数量
pm.start_servers = 15                                      //最小进程数量
pm.min_spare_servers = 5                                  //最少需要几个空闲着的进程
pm.max_spare_servers = 32 //最多允许几个进程处于空闲状态
systemctl restart php-fpm
systemctl status php-fpm
vim /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
upstream c{
    server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;
    server 192.168.2.200 weight=1 max_fails=2 fail_timeout=10;
    }
    server {
        listen       80;
        server_name  www.c.com;
        location / {
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  a.php;动态网站首页
           include        fastcgi.conf;加载另一部分配置文件
        }
    }
    server {
         listen       80;
         server_name  www.a.com;  
         auth_basic "your password:";
     auth_basic_user_file "/usr/local/nginx/apass";
     ssl_certificate      a.crt;
         ssl_certificate_key  a.key;
     ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
location / {
            root   ahtml;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  www.b.com;
     rewrite ^/(.*) http://www.tmooc.cn/$1;          #网站跳转(用于新旧域名连接)
       rewrite ^/  http://www.tmooc.cn/;               #网站跳转(访问旧站页面,重定向至新站下相同的页面
        ssl_certificate      b.crt;
        ssl_certificate_key  b.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        location / {
            root   bhtml;
            index  index.html index.htm;
            rewrite /b1.html /b2.html redirect;}      #网页跳转
            if ($http_user_agent ~* url) {                          //识别客户端curl浏览器
              rewrite ^(.*)$ /curl/$1 break;
              }
    }
}
vim /usr/local/nginx/html/test1.php  #测试普通页面
 <?php
 $i="This is a test Page";
 echo $i;
 ?>
 vim /usr/local/nginx/html/test2.php    #测试php页面,连接MariaDB数据库
 <?php
$links=mysql_connect("localhost","root","密码");        
 //注意:root为mysql账户名称,密码需要修改为实际mysql密码,无密码则留空即可
  if($links){
          echo "link db ok!!!";
  }
  else{
         echo "link db no!!!";
 }
 ?>
vim /usr/local/nginx/html/test3.php         #创建PHP测试页面,连接并查询MariaDB数据库
<?php
$mysqli = new mysqli('localhost','root','','mysql');
if (mysqli_connect_errno()){
      die('Unable to connect!'). mysqli_connect_error();
  }
  $sql = "select * from user";
  $result = $mysqli->query($sql);
  while($row = $result->fetch_array()){
      printf("Host:%s",$row[0]);
      printf("</br>");
      printf("Name:%s",$row[1]);
      printf("</br>");
  }
  ?>
echo "I am Normal page" > /usr/local/nginx/html/test.html
mkdir  -p  /usr/local/nginx/html/curl/
echo "I am is curl page" > /usr/local/nginx/bhtml/curl/test.html
cp /usr/share/backgrounds/gnome/Road.jpg > /usr/local/nginx/curl/test.jpg
/usr/local/nginx/sbin/nginx  -s  reload
firefox http://www.c.com/test1.php   #测试php
firefox http://www.c.com/test2.php   #测试php,连接mariadb库
firefox http://www.c.com/test3.php   #测试php,连接并查询mairadb库
firefox  http://www.b.com/b1.html   #测试跳转页面(地址重写)
firefox  http://www.b.com/ad

firefox  http://192.168.4.5/test.html   #针对于修改配置文件(访问192.168.4.5/下面子页面,重定向至www.tmooc.cn/下相同的页面的测试)


针对修改配置文件(实现curl和火狐访问相同连接返回的页面不同的测试:


curl     http://192.168.4.5/test.html  


curl   http://192.168.4.5/test.jsp  

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
84 1
Linux系统之部署轻量级Markdown文本编辑器
|
1月前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
76 41
Linux系统之部署homer静态主页
|
21天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
169 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
22天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
69 3
Linux系统之部署Linux管理面板1Panel
|
30天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
67 1
Linux系统之Centos7安装cockpit图形管理界面
|
1月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
62 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
1月前
|
Web App开发 资源调度 网络协议
Linux系统之部署IP工具箱MyIP
【10月更文挑战第5天】使用Docker部署Radicale日历和联系人应用Linux系统之部署IP工具箱MyIP
81 1
Linux系统之部署IP工具箱MyIP
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
29 3
|
21天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
38 2