1 web服务器工作流程
2 在说lamp架构平台的搭建前,我们先来了解下什么是CGI,什么是FastCGI,什么是......
3 web服务器的资源分为两种,静态资源和动态资源
4 静态资源就是指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。可以简单的理解为就是直接存储于文件系统中的资源
5 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户。
6 httpd与php结合的方式
7 httpd与php结合的方式有以下三种:
8 modules:php将以httpd的扩展模块形式存在,需要加载动态资源时,httpd可以直接通过php模块来加工资源并返回给客户端
9 httpd prefork:libphp5.so(多进程模型的php)
10 httpd event or worker:libphp5-zts.so(线程模型的php)
11 CGI:httpd需要加载动态资源时,通过CGI与php解释器联系,获得php执行的结果,此时httpd负责与php连接的建立和断开等
12 FastCGI:利用php-fpm机制,启动为服务进程,php自行运行为一个服务,https通过socket与php通信
13 web工作流程
14 通过上面的图说明一下web的工作流程:客户端通过http协议请求web服务器资源web服务器收到请求后判断客户端请求的资源是静态资源或是动态资源若是静态资源则直接从本地文件系统取之返回给客户端。
15 否则若为动态资源则通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给httpd服务器,httpd服务器收到php的执行结果后将其封装为http响应报文响应给客户端。在执行程序获取动态资源时若需要获得数据库中的资源时,由Php服务器通过mysql协议与MySQL/MariaDB服务器交互,取之而后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。
16 安装httpd服务
17 安装http
18 [root@ming ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo更改网络源设置
19 [root@ming ~]# cd /etc/yum.repos.d/
20 [root@ming yum.repos.d]# vi CentOS-Base.repo
21 :%s/$releasever/8/g
22 [root@ming yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
23 [root@ming yum.repos.d]# sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
24 [root@ming yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
25 [root@ming yum.repos.d]# sed -i 's|$releasever|8|' /etc/yum.repos.d/epel* [root@localhost yum.repos.d]# yum clean all [root@ming yum.repos.d]# yum makeache
26 下载HTTP的依赖包
27 [root@ming ~]# yum -y install wget bzip2 gcc gcc-c++ make pcre-devel expat-devel libxml2-devel openssl-devel
28 [root@mingt ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.46.tar.bz2
29 [root@ming ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
30 [root@ming ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
31 [root@ming ~]# ls
32 all.sql apr-util-1.6.1.tar.gz
33 apr-1.7.0.tar.gz httpd-2.4.46.tar.bz2
34 编译安装依赖包apr
35 [root@ming ~]# tar xf apr-1.7.0.tar.gz
36 [root@ming ~]# cd apr-1.7.0
37 [root@ming apr-1.7.0]# vim configure
38 $RM "$cfgfile" #注释或删除这一行
39 [root@ming apr-1.7.0]# ./configure --prefix=/usr/local/apr
40 [root@ming apr-1.7.0]# make install
41 编译安装apr-util
42 [root@ming ~]# tar xf apr-util-1.6.1.tar.gz
43 [root@ming ~]# cd apr-util-1.6.1
44 [root@ming apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
45 [root@mingapr-util-1.6.1]# make install
46 编译安装httpd
47 [root@ming ~]# yum groups mark install "Development Tools"
48 已加载插件:fastestmirror
49 [root@ming ~]# useradd -r -M -s/sbin/nologin apache
50 [root@lming ~]# tar xf httpd-2.4.46.tar.bz2
51 [root@ming ~]# cd httpd-2.4.46
52 [root@ming httpd-2.4.46]# ./configure --prefix=/usr/local/apache \
53 --sysconfdir=/etc/httpd24 \
54 --enable-so \
55 --enable-ssl \
56 --enable-cgi \
57 --enable-rewrite \
58 --with-zlib \
59 --with-pcre \
60 --with-apr=/usr/local/apr \
61 --with-apr-util=/usr/local/apr-util/ \
62 --enable-modules=most \
63 --enable-mpms-shared=all \
64 --with-mpm=prefork
65 [root@minghttpd-2.4.46]# make install
66 设置环境变量
67 [root@ming httpd-2.4.46]# vi /etc/profile.d/httpd.sh
68 export PATH=/usr/local/apache/bin:$PATH
69 [root@ming httpd-2.4.46]# source /etc/profile.d/httpd.sh
70
71 //设置软链接
72 [root@minghttpd-2.4.46]# cd ~
73 [root@ming ~]# ln -s /usr/local/apache/include /usr/include/apache
74
75 //设置帮助文档
76 [root@ming ~]# vi /etc/man_db.conf
77
78 MANDATORY_MANPATH /usr/local/apache/man #加入这两行
79 MANDATORY_MANPATH /usr/local/apache/manual
80 HTTP的管理命令
81 [root@ming ~]# apachectl start
82 [root@ming ~]# apachectl stop
83 [root@ming ~]# apachectl restart
84 关闭警告命令
85 [root@ming ~]# vi /etc/httpd24/httpd.conf
86 ServerName www.example.com:80 #把这行注释取消
87 关闭防火墙
88 [root@ming ~]# systemctl stop firewalld
89 [root@ming ~]# setenforce 0
90 httpd安装完成
91 安装mysql数据库
92 [root@ming ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
93 [root@ming ~]# useradd -r -M -s /sbin/nologin mysql
94 [root@ming ~]# tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
95 [root@ming ]# ls
96 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
97 设置软连接
98 [root@ming ~]# ln -s /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
99 改变主和组
100 [root@ming ~]# chown -R mysql.mysql /usr/local/mysql*
101 设置环境变量
102 [root@ming ~]# vi /etc/profile.d/mysql.sh
103 export PATH=/usr/local/mysql/bin:$PATH
104 [root@ming ~]# source /etc/profile.d/mysql.sh
105 映射include
106 [root@ming ]]# ln -s /usr/local/mysql/include /usr/include/mysql
107 lrwxrwxrwx. 1 mysql mysql 46 12月 3 09:56 mysql -> /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64
108 drwxr-xr-x. 9 mysql mysql 129 6月 2 2020 mysql-5.7.31-linux-glibc2.12-x86_64
109 设置帮助文档
110 [root@ming mysql]# vi /etc/man_db.conf
111 MANDATORY_MANPATH /usr/local/mysql/man #加入命令
112 设置lib库
113 [root@ming ~]# vi /etc/ld.so.conf.d/mysql.conf
114 [root@ming ~]# vi /etc/ld.so.conf.d/mysql.conf
115 [root@ming ~]# ldconfig
116 创建数据存放目录
117 [root@ming ~]# mkdir /opt/data
118 [root@ming ~]# chown -R mysql:mysql /opt/data
119 初始化数据库
120 [root@ming ~]# mysqld --initialize --user=mysql --datadir=/opt/data
121 2020-12-03T02:05:17.530642Z 1 [Note] A temporary password is generated for root@localhost: q)x&/?d*s9.L
122 [root@ming ~]# echo 'q)x&/?d*s9.L' > ll
123 [root@ming ~]# cat ll
124 q)x&/?d*s9.L
125 配置文件
126 [root@ming ~]# vim /etc/my.cnf
127 [mysqld]
128 basedir = /usr/local/mysql
129 datadir = /opt/data
130 socket = /tmp/mysql.sock
131 port = 3306
132 pid-file = /opt/data/mysql.pid
133 user = mysql
134 skip-name-resolve
135 配置服务启动脚本
136 [root@ming ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
137 [root@ming ~]# ll /etc/init.d/mysqld
138 -rwxr-xr-x. 1 mysql mysql 10576 6月 2 2020 /etc/init.d/mysqld
139 [root@ming ~]# vi /etc/init.d/mysqld
140 basedir=/usr/local/mysql #加上路径
141 datadir=/opt/data
142 启动mysql
143 [root@ming ~]# cat ll
144 q)x&/?d*s9.L
145 [root@ming ~]# service mysqld start
146 Starting MySQL.Logging to '/opt/data/ming.err'.
147 . SUCCESS!
148 [root@ming ~]# mysql -uroot -p'q)x&/?d*s9.L'
149 mysql: [Warning] Using a password on the command line interface can be insecure.
150 设置开机自动启动
151 [root@ming ~]#chkconfig --add mysqld
152 [root@ming ~]# chkconfig mysqld on
153 [root@ming ~]# chkconfig --list
154 mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
155 安装php
156 [root@ming ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel
157 [root@ming ~]# yum -y install php*
158 [root@ming ~]# vim /etc/profile.d/php7.sh
159 [root@ming ~]# cat /etc/profile.d/php7.sh
160 export PATH=/usr/local/php7/bin:$PATH
161
162 [root@ming ~]# vi /etc/php-fpm.d/www.conf
163 listen = /run/php-fpm/www.sock #注释这一行
164 listen = 127.0.0.1:9000 #加入这一行
165
166 [root@ming ~]# php -v
167 配置php-fpm开机自启动
168 [root@ming ~]# systemctl status php-fpm
169 启用httpd的相关包
170 [root@ming ~]# sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf
171 [root@ming ~]# sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf
172
173 //创建虚拟主机目录并生成php测试页面
174 [root@ming ~]# mkdir /usr/local/apache/htdocs/csl.com
175 [root@ming ~]# cat > /usr/local/apache/htdocs/csl.com/index.php <<EOF
176 <?php
177 phpinfo();
178 ?>
179 EOF
180 [root@ming ~]# chown -R apache.apache /usr/local/apache/htdocs/
181 [root@ming ~]# vim /etc/httpd24/httpd.conf
182 //在配置文件的最后加入以下内容
183 <VirtualHost *:80>
184 DocumentRoot "/usr/local/apache/htdocs/csl.com"
185 ServerName www.csl.com
186 ProxyRequests Off
187 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/csl.com/$1
188 <Directory "/usr/local/apache/htdocs/csl.com">
189 Options none
190 AllowOverride none
191 Require all granted
192 </Directory>
193 </VirtualHost>
194
195 [root@ming ~]# vi /etc/httpd24/httpd.conf
196 //搜索AddType,添加以下内容
197 AddType application/x-compress .Z
198 AddType application/x-gzip .gz .tgz
199 AddType application/x-httpd-php .php #添加此行
200 AddType application/x-httpd-php-source .phps #添加此行
201
202 [root@ming ~]]# sed -i '/ DirectoryIndex/s/index.html/index.php index.html/g' /etc/httpd24/httpd.conf
203
204 //重启apache服务
205 [root@ming ~]# apachectl stop
206 [root@ming ~]# apachectl start
207
208 最后验证
209
210
![]()
211
212
213
214
215
216
217