【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(一)

简介: 【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)

本篇文章介绍LNMP架构部署项目,包括Nginx安装配置、PHP安装配置、数据库Mariadb安装配置、Nginx连通PHP、PHP连通MySQL、拆分数据库至独立服务器、拆分静态资源至服务器、扩展一个web服务器。


LNMP架构

Linux Nginx Mysql PHP

Nginx不能处理动态请求,如果是动态请求,就通过fastcgi协议转交给后端的PHP程序处理

 

Nginx安装配置

第一步:安装nginx

配置官网yum仓库

1. vim /etc/yum.repos.d/nginx.repo
2. 
3. [nginx-stable]
4. name=nginx stable repo
5. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
6. gpgcheck=1
7. enabled=1
8. gpgkey=https://nginx.org/keys/nginx_signing.key
9. module_hotfixes=true

第二步:创建虚拟用户

1. [root@Web01 ~]# groupadd -g 666 www
2. [root@Web01 ~]# useradd -u666 -g666 -M -s /sbin/nologin www

第三步:配置Nginx启动用户为www

1. [root@Web01 ~]# vim /etc/nginx/nginx.conf 
2. 
3. user  www;
4. worker_processes  auto;

第四步:启动Nginx加入开机自启动

1. [root@Web01 ~]# systemctl start nginx
2. [root@Web01 ~]# systemctl enable nginx
3. Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

PHP安装配置

第一步:配置PHP软件仓库并安装PHP

1. #配置PHP仓库
2. [root@Web01 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
3. [root@Web01 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
4. 
5. [root@Web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common
6. 
7. #配置第三方源
8. [root@Web01 ~]# vim /etc/yum.repos.d/php.repo
9. [php-webtatic]
10. name = PHP Repository
11. baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
12. gpgcheck = 0
13. 
14. #安装PHP
15. [root@Web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb --nogpgcheck

或者是使用rpm包,上传后解压。

yum -y localinstall *.rpm

第二步:修改PHP启动用户为www

1. [root@Web01 ~]#  sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf 
2. [root@Web01 ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf

第三步:启动服务并设置开机自启

1. [root@Web01 ~]# systemctl start php-fpm
2. [root@Web01 ~]# systemctl enable php-fpm
3. Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

第四步:查看状态

1. [root@Web01 ~]# netstat -tnulp
2. Active Internet connections (only servers)
3. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
4. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1272/sshd           
5. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1413/master         
6. tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4133/php-fpm: maste 
7. tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3989/nginx: master  
8. tcp6       0      0 :::22                   :::*                    LISTEN      1272/sshd           
9. tcp6       0      0 ::1:25                  :::*                    LISTEN      1413/master         
10. udp        0      0 127.0.0.1:323           0.0.0.0:*                           840/chronyd         
11. udp6       0      0 ::1:323                 :::*                                840/chronyd

安装数据库mariadb-server

第一步:安装数据库

[root@Web01 ~]# yum install mariadb-server -y

第二步:启动数据库、设置开机自启动、查看状态

1. [root@Web01 ~]# systemctl start mariadb
2. [root@Web01 ~]# systemctl enable mariadb
3. Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
4. [root@Web01 ~]# netstat -tnulp
5. Active Internet connections (only servers)
6. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
7. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1272/sshd           
8. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1413/master         
9. tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4133/php-fpm: maste 
10. tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      4480/mysqld         
11. tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3989/nginx: master  
12. tcp6       0      0 :::22                   :::*                    LISTEN      1272/sshd           
13. tcp6       0      0 ::1:25                  :::*                    LISTEN      1413/master         
14. udp        0      0 127.0.0.1:323           0.0.0.0:*                           840/chronyd         
15. udp6       0      0 ::1:323                 :::*                                840/chronyd

第三步:配置用户密码,默认是root

1. [root@Web01 ~]# mysqladmin password '666666' #设置密码为666666
2. [root@Web01 ~]# mysql -uroot -p666666 #登录数据库
3. Welcome to the MariaDB monitor.  Commands end with ; or \g.
4. Your MariaDB connection id is 3
5. Server version: 5.5.68-MariaDB MariaDB Server
6. 
7. Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
8. 
9. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
10. 
11. MariaDB [(none)]> show databases; #查看有哪些库
12. +--------------------+
13. | Database           |
14. +--------------------+
15. | information_schema |
16. | mysql              |
17. | performance_schema |
18. | test               |
19. +--------------------+
20. 4 rows in set (0.00 sec)
21. 
22. MariaDB [(none)]> create database hehe; #创建hehe库
23. Query OK, 1 row affected (0.00 sec)
24. 
25. MariaDB [(none)]> drop database hehe; #删除hehe库
26. Query OK, 0 rows affected (0.01 sec)
27. 
28. MariaDB [(none)]> quit #退出数据库
29. Bye
30. [root@Web01 ~]#

注意:配置数据库密码需要服务启动后才能配置

 

Nginx连通PHP

1. [root@Web01 /]# cat /etc/nginx/conf.d/default.conf 
2. server {
3.         listen 80;
4.         server_name php.koten.com;
5. 
6.         location / {
7.                 root /code;
8.                 index index.php index.html;
9.         }
10. 
11.         location ~ \.php$ {
12.                 root /code;
13.                 fastcgi_pass 127.0.0.1:9000;
14.                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
15.           include fastcgi_params;
16. }
17. }
18. [root@Web01 /]# systemctl restart nginx
19. [root@Web01 /]# vim /code/index.php 
20. <?php
21.         phpinfo();
22. ?>

windows本地hosts解析后,即可访问PHP有关信息

PHP连通MySQL

1. [root@Web01 /]# vim /code/mysql.php
2. <?php
3. $servername = "localhost";
4. $username = "root";
5. $password = "123";
6. 
7.     // 创建连接
8. $conn = mysqli_connect($servername, $username, $password);
9. 
10.     // 检测连接
11. if (!$conn) {
12.         die("Connection failed: " . mysqli_connect_error());
13.     }
14. echo "php可以连接MySQL...";
15. ?>

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
28天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
68 3
|
28天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
35 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
94 3
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
69 6
|
2月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
243 1
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
63 4
|
25天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
57 4
|
2月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
87 1

热门文章

最新文章