LAMP架构部署--yum安装方式

LAMP架构部署

web服务器工作流程

web服务器的资源分为两种,静态资源和动态资源

  • 静态资源就是指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。可以简单的理解为就是直接存储于文件系统中的资源
  • 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端

那么web服务器如何执行程序并将结果返回给客户端呢?下面通过一张图来说明一下web服务器如何处理客户端的请求

在这里插入图片描述

如上图所示

阶段①显示的是httpd服务器(即apache)和php服务器通过FastCGI协议进行通信,且php作为独立的服务进程运行

阶段②显示的是php程序和mysql数据库间通过mysql协议进行通信。php与mysql本没有什么联系,但是由Php语言写成的程序可以与mysql进行数据交互。同理perl和python写的程序也可以与mysql数据库进行交互

web工作流程

通过上面的图说明一下web的工作流程:

  • 客户端通过http协议请求web服务器资源
  • web服务器收到请求后判断客户端请求的资源是静态资源或是动态资源
    • 若是静态资源则直接从本地文件系统取之返回给客户端。
    • 否则若为动态资源则通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给httpd服务器,httpd服务器收到php的执行结果后将其封装为http响应报文响应给客户端。在执行程序获取动态资源时若需要获得数据库中的资源时,由Php服务器通过mysql协议与MySQL/MariaDB服务器交互,取之而后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。

L:Linux

A: apache

M: Mariadb/mysql

P: php

yum安装方式

可动态显示

#在最初始的环境下运行搭建
 
[root@zyq ~]# cd /etc/yum.repos.d/
[root@zyq yum.repos.d]# ls
CentOS-Stream-AppStream.repo  CentOS-Stream-Extras.repo            CentOS-Stream-NFV.repo         CentOS-Stream-ResilientStorage.repo
CentOS-Stream-BaseOS.repo     CentOS-Stream-HighAvailability.repo  CentOS-Stream-PowerTools.repo  CentOS-Stream-Sources.repo
CentOS-Stream-Debuginfo.repo  CentOS-Stream-Media.repo             CentOS-Stream-RealTime.repo
[root@zyq yum.repos.d]# mv * /opt/
[root@zyq yum.repos.d]# ls
[root@zyq yum.repos.d]# 
[root@zyq yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2495  100  2495    0     0  11550      0 --:--:-- --:--:-- --:--:-- 11497
[root@zyq yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@zyq yum.repos.d]# yum clean all
21 files removed
[root@zyq yum.repos.d]# yum makecache 
......


安装软件包

lamp平台软件安装次序:

​ httpd --> mysql --> php

[root@zyq ~]yum -y --allowerasing install httpd mariadb mariadb-server php*

配置apache

启用代理模块
[root@zyq ~]# ls /etc/httpd/conf.modules.d/
00-base.conf  00-dav.conf  00-lua.conf  00-mpm.conf  00-optional.conf  00-proxy.conf  00-systemd.conf  01-cgi.conf  10-h2.conf  10-proxy_h2.conf  15-php.conf  README  //查看已经打开了的代理模块
[root@zyq ~]# cat /etc/httpd/conf.modules.d/00-proxy.conf 
# This file configures all the proxy modules:
LoadModule proxy_module modules/mod_proxy.so   <-----查看
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so  <----查看
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

配置虚拟主机

[root@zyq ~]# cd /var/www/html/
[root@zyq html]# ls
[root@zyq html]# vi index.php
[root@zyq html]# cat index.php
<?php
    phpinfo();
?>
[root@zyq html]# cd /etc/httpd/conf.d/
[root@zyq conf.d]# find / -name *vhosts.conf
/usr/share/doc/httpd/httpd-vhosts.conf
[root@zyq conf.d]# cp /usr/share/doc/httpd/httpd-vhosts.conf vhosts.conf
[root@zyq conf.d]# ls
autoindex.conf  php.conf  README  userdir.conf  vhosts.conf  welcome.conf
[root@zyq conf.d]# vim vhosts.conf 
[root@zyq conf.d]# cat vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName www.zyq.com
    ErrorLog "/var/log/httpd/www.zyq.com-error_log"
    CustomLog "/var/log/httpd/www.zyq.com-access_log" common
ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1  
    <Directory "/var/www/html">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>


配置主配置文件
[root@zyq conf.d]# grep -A3 'application/x-gzip .gz' /etc/httpd/conf/httpd.conf 
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php 
    AddType application/x-httpd-php-source .phps
    #
[root@zyq conf.d]# grep -C1 'index.html' /etc/httpd/conf/httpd.conf 
<IfModule dir_module>
    DirectoryIndex index.php  index.html   //默认php
</IfModule>

在这里插入图片描述

在这里插入图片描述

启动服务

[root@zyq ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@zyq ~]# ss -antl
State               Recv-Q              Send-Q                           Local Address:Port                           Peer Address:Port             Process             
LISTEN              0                   128                                    0.0.0.0:22                                  0.0.0.0:*                                    
LISTEN              0                   128                                          *:80                                        *:*                                    
LISTEN              0                   128                                       [::]:22                                     [::]:*    

[root@zyq ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@zyq ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> quit
Bye

配置php

#添加9000端口号
[root@zyq etc]# cd /etc/php
php.d/     php-fpm.d/ 
[root@zyq etc]# cd /etc/php-fpm.d/
[root@zyq php-fpm.d]# ls
www.conf
[root@zyq php-fpm.d]# vi www.conf 
[root@zyq php-fpm.d]# grep '^listen' www.conf 
listen = 0.0.0.0:9000
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1
[root@zyq php-fpm.d]# systemctl restart php-fpm
[root@zyq php-fpm.d]# systemctl enable php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

#查看端口
[root@zyq ~]# ss -antl
State               Recv-Q              Send-Q                           Local Address:Port                           Peer Address:Port             Process             
LISTEN              0                   128                                    0.0.0.0:22                                  0.0.0.0:*                                    
LISTEN              0                   128                                    0.0.0.0:9000                                0.0.0.0:*                                    
LISTEN              0                   128                                          *:80                                        *:*                                    
LISTEN              0                   128                                       [::]:22                                     [::]:*                                    
LISTEN              0                   80                                           *:3306                                      *:*               
关闭防火墙
[root@zyq ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zyq ~]# setenforce 0
[root@zyq ~]# vi /etc/selinux/config 
[root@zyq ~]# grep 'SELINUX' /etc/selinux/config 
# SELINUX= can take one of these three values:
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
SELINUXTYPE=targeted

在这里插入图片描述

验证

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 08:32:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 08:32:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 08:32:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 08:32:04       20 阅读

热门阅读

  1. 55. 跳跃游戏

    2024-03-17 08:32:04       22 阅读
  2. 蓝桥杯刷题|01普及-真题

    2024-03-17 08:32:04       18 阅读
  3. P8780 [蓝桥杯 2022 省 B] 刷题统计 Python

    2024-03-17 08:32:04       23 阅读
  4. 跳出循环及数组部分方法

    2024-03-17 08:32:04       20 阅读
  5. Oracle常用DBA相关语句

    2024-03-17 08:32:04       20 阅读
  6. Jenkins: 配置自动化发布脚本

    2024-03-17 08:32:04       24 阅读
  7. ISP相关

    ISP相关

    2024-03-17 08:32:04      19 阅读
  8. 2024.3.13-408学习笔记-C-数据在内存中的存储

    2024-03-17 08:32:04       19 阅读
  9. 前端小白的学习之路(CSS3 二)

    2024-03-17 08:32:04       21 阅读