centos7编译安装基于fastcgi模式的LAMP架构

2023-11-14

在这里插入图片描述
工作过程:
1、当客户请求的是静态资源时,web服务器会直接把静态资源返回客户端;
2、当客户端请求的是动态资源时,httpd的php模块会进行相应的动态资源运算,
如果此时过程还需要数据库的数据作为运算参数时,php会连接mysql取得数据然后
进行运算,运算的结果转为静态资源由web服务器返回到客户端;

PHP官网:http://www.php.net
php各种版本官方支持时间:
https://www.php.net/supported-versions.php
php 的配置文件:/etc/php.ini, /etc/php.d/*.ini 配置文件在php解释器启动时被读取
对配置文件的修改生效方法
Modules:重启httpd服务
FastCGI:重启php-fpm服务
注释符:
以#开头,纯粹的注释信息
以 ; 开头,用于注释可启用的directive
php.ini 配置参考文档:
php.ini的核心配置选项文档: http://php.net/manual/zh/ini.core.php
php.ini配置选项列表:http://php.net/manual/zh/ini.list.php
php常见设置:

max_execution_time= 30 最长执行时间30s
memory_limit=128M 生产不够,可调大

display_errors=off 调试使用,不要打开,否则可能暴露重要信息
display_startup_errors=off 建议关闭

post_max_size=8M 最大上传数据大小,生产可能调大,比下面项大
upload_max_filesize =2M 最大上传文件,生产可能要调大
max_file_uploads = 20 同时上传最多文件数 date.timezone =Asia/Shanghai 指定时区 short_open_tag=on 开启短标签

二进制部署mysql数据库:

1、安装基础依赖包

 yum install vim gcc gcc-c++ wget autoconf  net-tools lrzsz iotop lsof iotop bash-completion  curl policycoreutils openssh-server opensshclients postfix libaio -y 

2、解压MySQL源码包,并创建软连接

[root@wufanecs src]# pwd
/usr/local/src
[root@wufanecs src]# tar xf 1mysql-5.6.46-linux-glibc2.12-x86_64.tar
[root@wufanecs src]# ls
mysql-5.6.46-linux-glibc2.12-x86_64.tar  mysql-5.6.46-linux-glibc2.12-x86_64
[root@wufanecs src]# ln -sv /usr/local/src/mysql-5.6.46-linux-glibc2.12-x86_64  /usr/local/mysql

‘/usr/local/mysql’ -> ‘mysql-5.6.46-linux-glibc2.12-x86_64’

3、创建mysql用户设置权限


[root@wufanecs src]# useradd mysql -s /sbin/nologin
[root@wufanecs src]# mkdir -pv /data/mysql /var/lib/mysql
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/mysql’
mkdir: created directory ‘/var/lib/mysql’
[root@wufanecs src]# chown -R mysql.mysql /data /var/lib/mysql/
[root@wufanecs mysql]# ./scripts//mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/

4、准备启动脚本

[root@wufanecs mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@wufanecs mysql]# chmod a+x /etc/init.d/mysqld

5、修改配置文件

[root@wufanecs mysql]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
innodb_file_per_table=1
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/tmp/mysql.sock

6、启动mysql创建数据库并授权

[root@wufanecs mysql]# /etc/init.d/mysqld start
Starting MySQL.                                            [  OK  ]

[root@wufanecs ~]# ln -sv /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
‘/var/lib/mysql/mysql.sock’ -> ‘/data/mysql/mysql.sock’
[root@wufanecs ~]#  /usr/local/mysql/bin/mysql
mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)

部署PHP:编译安装php7.4.3

1、安装基础依赖包

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibcdevel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel sqlite-devel

2、解压并编译安装

[root@wufanecs ~]# cd /usr/local/src/
[root@wufanecs src]# ls
mysql-5.6.46-linux-glibc2.12-x86_64  mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz  php-7.4.3.tar.gz
[root@wufanecs src]# tar xf php-7.4.3.tar.gz
[root@wufanecs src]# cd php-7.4.3/

[root@wufanecs php-7.4.3]# ./configure --prefix=/apps/php --enable-fpm --with-fpmuser=www --with-fpm-group=www --with-pear --with-curl --with-png-dir --with-freetype --with-iconv --with-mhash --with-zlib --with-xmlrpc --with-xsl --with-openssl --with-mysqli --with-pdo-mysql --disable-debug --enable-zip --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-exif --enable-wddx --enable-bcmath --enable-calendar --enable-shmop --enable-dba --enable-sysvsem --enable-sysvshm --enable-sysvmsg
[root@wufanecs php-7.4.3]# make -j 2
[root@wufanecs php-7.4.3]# echo $?
0
[root@wufanecs php-7.4.3]# make install

3、准备php配置文件:


[root@wufanecs php-7.4.3]# cd /apps/php/etc/php-fpm.d/
[root@wufanecs php-fpm.d]# cp www.conf.default www.conf
[root@wufanecs php-fpm.d]# cp /usr/local/src/php-7.4.3/p
pear/                php.ini-development  php.ini-production
[root@wufanecs php-fpm.d]# cp /usr/local/src/php-7.4.3/php.ini-production /apps/php/etc/php.ini

4、修改配置文件

[root@wufanecs php-fpm.d]# useradd  www -s /sbin/nologin  -u 1001

[root@wufanecs php-fpm.d]# vim www.conf
[root@wufanecs php-fpm.d]# grep -v ";" www.conf | grep -v "^$"
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 50
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 35
[root@wufanecs php-fpm.d]# mkdir /apps/php/log/
[root@wufanecs php-fpm.d]# cd /apps/php/etc/
[root@wufanecs etc]# cp php-fpm.conf.default php-fpm.conf

5、启动并验证php-fpm:
#检测语法并启动php-fpm

[root@wufanecs etc]# /apps/php/sbin/php-fpm -t
[20-Feb-2021 14:21:56] NOTICE: configuration file /apps/php/etc/php-fpm.conf test is successful

#验证php-fpm


[root@wufanecs etc]# /apps/php/sbin/php-fpm  -c /apps/php/etc/php.ini
[root@wufanecs etc]# ps -ef |grep php-fpm
root      9398     1  0 14:24 ?        00:00:00 php-fpm: master process (/apps/php/etc/php-fpm.conf)
www       9399  9398  0 14:24 ?        00:00:00 php-fpm: pool www
www       9400  9398  0 14:24 ?        00:00:00 php-fpm: pool www
www       9401  9398  0 14:24 ?        00:00:00 php-fpm: pool www

[root@wufanecs etc]# netstat -tanlp |grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      9398/php-fpm: maste

部署nginx:

1、安装nginx需要的依赖包

 yum install -y vim lrzsz tree screen psmisc lsof tcpdump wget ntpdate gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-develsystemd-devel net-tools iotop bc zip unzip zlib-devel bash-completion nfs-utils automake libxml2 libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embed

2、下载nginx源码包并解压

[root@wufanecs etc]# cd /usr/local/src/
[root@wufanecs src]# wget https://nginx.org/download/nginx-1.16.1.tar.gz
[root@wufanecs src]# tar xf nginx-1.16.1.tar.gz
[root@wufanecs src]# cd nginx-1.16.1/

3、编译nginx

[root@wufanecs nginx-1.16.1]# ./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

[root@wufanecs nginx-1.16.1]# make
[root@wufanecs nginx-1.16.1]# make install

4、创建nginx普通用户

[root@wufanecs nginx-1.16.1]# useradd nginx -s /sbin/nologin -u 2000
[root@wufanecs nginx-1.16.1]# chown nginx.nginx -R /apps/nginx/

5、验证版本及编译参数


[root@wufanecs nginx-1.16.1]# /apps/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

6、准备php测试页:

[root@wufanecs nginx-1.16.1]# mkdir /data/nginx/wordpress -p
[root@wufanecs nginx-1.16.1]# vim /data/nginx/wordpress/index.php
[root@wufanecs nginx-1.16.1]# cat /data/nginx/wordpress/index.php
<?php
  phpinfo();
?>

7、配置nginx:

[root@wufanecs nginx-1.16.1]# grep -v "#" /apps/nginx/conf/nginx.conf | grep -v "^$"
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /data/nginx/wordpress;
            index  index.php index.html index.htm;
        }
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           /data/nginx/wordpress;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name; 
            include        fastcgi_params;
        }
    }
}


[root@wufanecs nginx-1.16.1]# /apps/nginx/sbin/nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful

重启nginx并访问php状态页:

[root@wufanecs nginx-1.16.1]# /apps/nginx/sbin/nginx -s reload

在这里插入图片描述
隐藏nginx版本信息

vim /apps/nginx/conf/nginx.conf
server_tokens off;  #http 配置项

隐藏PHP版本:

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_hide_header X-Powered-By;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7编译安装基于fastcgi模式的LAMP架构 的相关文章

  • 海量记录的bulk_create最佳实践

    I use bulk create将 1 mio 记录插入到新表中 需要 80 秒 Django 只使用一个 CPU 核心 大约 25 CPU 但没有一个核心达到 100 我相信有改进的潜力 这是代码 class Stock models
  • Kubernetes - 一个 Ingress 中的多个配置

    我在同一个 Kubernetes 集群中运行不同的应用程序 我希望多个域能够访问我的 Kubernetes 集群 并根据域进行重定向 对于每个域 我想要不同的注释 配置 如果没有注释 我的入口部署如下 apiVersion networki
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 如何在 MySQL 中求和时间?

    正如您在图片中看到的 我有一份停机报告 显示了所选工厂在选定日期的停机时间 现在我想添加所有的值 Time Duration 列并将其显示在附近的单独显示中 TOTAL TIME DURATION 例如 在图像中 所选日期为 2015 年
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • covertJSONtoSQL 在 NiFi 中返回空值

    我正在设计一项工作 使用以下命令将数据从 MySQL 中的数据库转移到另一个数据库 MySQL 执行SQL处理器随后将Avro转换为Json then 将Json转换为SQL then PutSQL如下流程图所示 将JSON转换为SQL返回
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 如何使用 Nginx 将下划线替换为破折号

    我第一次使用Nginx 对它基本上一无所知 我需要将 100 多个 URL 中的 替换为 我想一定有一种简单的方法可以用 Nginx 来做到这一点 但在 Google 上找不到任何东西 Thanks Edit 我的网址例如 http www
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin

随机推荐

  • java 代理模式

    1 静态代理 1 1 代码实现 接口 interface Hello String sayHello String str 实现 class HelloImp implements Hello Override public String
  • 对象常用的方法

    思维导图 对象中常用的方法 Object prototype 1 hasOwnProperty 方法会返回一个布尔值 指示对象自身属性中是否具有指定的属性 也就是 是否有指定的键 检测是否为私有属性 即使属性的值是 null 或 undef
  • (五)redis常用命令之list

    概述 列表类型用来存储多个有序的字符串 列表中的每个字符串就是一个元素 一个列表最多可以存储2 32 1个元素 redis的列表结构操作起来非常灵活 应用场景非常广 lpush命令 从列表左边插入多个元素 格式 lpush key valu
  • 使用dockerfile发布go项目

    docker安装 下载docker yum install docker 设置docker随系统启动 chkconfig docker on 启动docker服务 service docker start 启动后查看docker状态 sys
  • pandas Cannot interpolate with all object-dtype columns

    pandas 不能使用所有的 object 类型的列进行插值 这意味着在使用 pandas 的插值函数 例如 interpolate 时 所有的列都必须是数值类型的 如果其中有一列是 object 类型的 则会抛出异常 要解决这个问题 你需
  • 单列模式--Singleton with Go

    package main import fmt sync Singleton 单例对象的类必须保证只有一个实例存在 全局有唯一接口访问 1 懒汉模式 指全局的单例实例在第一次被使用是构建 缺点 非线程安全 type singleton st
  • 软件测试必备的Linux知识(一)

    1 Linux 概述 1 1 测试人员为什么学习linux 对于软件测试人员来说 我们测试的任何产品都是基于操作系统 比如我们每天都在使用的QQ软件 它有windows ios Android Mac OS等版本 需要把QQ安装在各个平台上
  • 虚拟地址,虚拟地址空间, 交换分区

    1 虚拟内存是内存管理的一种方式 它在磁盘上划分出一块空间由操作系统管理 当物理内存耗尽是充当物理内存来使用 它将多个物理内存碎片和部分磁盘空间重定义为连续的地址空间 以此让程序认为自己拥有连续可用的内存 当物理内存不足时 操作系统会将处于
  • 从零开始的ESP8266探索(11)-定时任务调度器Ticker使用演示

    文章目录 目的 使用演示 基本使用1 基本使用2 动态设置和参数传递 停止和重启任务 注意事项 总结 目的 Arduino for esp8266属于无操作系统环境 对于开发多任务的复杂应用还是比较麻烦的 所以这里就提供了一个近似于操作系统
  • bugku No one knows regex better than me

    进入环境是一串php代码 代码审计 考的是正则
  • 感知器的数学表达和训练算法

    目录 一 感知器模型 二 两种训练法则 1 感知器训练法则 2 delta法则 三 小结 1 标准梯度下降算法与随机梯度下降算法的差异 2 有阈值的感知机算法和无阈值的感知机算法的差异 在人工神经网络简介一节中 图二中的ANN系统的每一个单
  • Numpy常用的数据结构

    numpy安装 pip install numpy numpy底层是使用C语言来实现运算的效果非常高 数据清洗的意义 现实生活中 数据并非完美 需要进行清洗才能进行后面的数据分析 数据清洗是整个数据分析项目最消耗时间的一步 数据的质量最终决
  • Java回调函数的理解

    2008 07 21 20 34 所谓回调 就是客户程序C调用服务程序S中的某个函数A 然后S又在某个时候反过来调用C中的某个函数B 对于C来说 这个B便叫做回调函数 例如Win32下的窗口过程函数就是一个典型的回调函数 一般说来 C不会自
  • DC/DC:闭环控制的升压(Boost)变换电路原理设计及实验仿真

    与降压 Buck 变换器类似 升压Boost变换电路也可以构建电压闭环反馈控制的闭环Boost变换器 Boost功率电路图如图所示 具体电路元器件参数计算可参考前期文章 直流电路中升压电路 Boost 的设计原理 参数计算及MATLAB仿真
  • Python实现FA萤火虫优化算法优化支持向量机分类模型(SVC算法)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 萤火虫算法 Fire fly algorithm FA 由剑桥大学Yang于2009年提出 作为最新的群智能
  • 爬虫需要知道的基础

    一 爬虫概述 1 爬虫必须知道的要素 爬虫要遵循网上的爬虫机器人协议 怎样查看 在网址后面加上 robots txt来查看 可以查到哪些是允许的 哪些是不允许的 爬虫的基本步骤 找到网址 发起请求 解析页面并获得原始数据 对数据进行处理 保
  • [深入研究4G/5G/6G专题-23]: 5G NR开机流程4.1 - 随机接入请求消息MSG1与PRACH首个上行信道的调度、时间提前量TA的检测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 前置条件 第1章 随机接入知识准备
  • Java 到底是值传递还是引用传递?

    在开始深入讲解之前 有必要纠正一下大家以前的那些错误看法了 如果你有以下想法 那么你有必要好好阅读本文 错误理解一 值传递和引用传递 区分的条件是传递的内容 如果是个值 就是值传递 如果是个引用 就是引用传递 错误理解二 Java是引用传递
  • jwt 使用介绍

    JSON Web Token 缩写 JWT 是目前最流行的跨域认证解决方案 本文介绍它的原理和用法 一 跨域认证的问题 互联网服务离不开用户认证 一般流程是下面这样 1 用户向服务器发送用户名和密码 2 服务器验证通过后 在当前对话 ses
  • centos7编译安装基于fastcgi模式的LAMP架构

    工作过程 1 当客户请求的是静态资源时 web服务器会直接把静态资源返回客户端 2 当客户端请求的是动态资源时 httpd的php模块会进行相应的动态资源运算 如果此时过程还需要数据库的数据作为运算参数时 php会连接mysql取得数据然后