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