lmp--->php

这篇博客详细介绍了如何在Linux环境下安装LNMP(Linux, Nginx, MySQL, PHP)中的PHP部分。首先,文章列出了安装依赖包、创建用户、配置环境等步骤,包括解决安装过程中可能出现的依赖问题。接着,讲述了配置PHP-FPM和php.ini文件的过程,强调了php.ini文件在控制PHP功能上的重要性。最后,讨论了Nginx作为代理服务器如何与后端PHP应用服务器交互处理动态网页请求的情况。" 113081712,10541593,TCP/IP协议族详解:从数据链路层到应用层,"['网络协议', 'TCP', 'IP', '数据链路', '网络层', '传输层']
摘要由CSDN通过智能技术生成

一:安装

1 :安装依赖的包

yum install libxml2-devel openssl-devel curl-devel net-snmp-devel bsion gmp-devel -y

2 创建用户

 useradd -u 800 -M -d /usr/local/lnmp/php -s /sbin/nologin nginx

3 配置环境

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash --enable-fpm

在此过程中可能还会遇到依赖,只需要安装提示进行安装

4:编译
make
5:安装
make install

二:配置

cd /usr/local/lnmp/php/etc

cp php-fpm.conf.default php-fpm.conf ##复制配置文件
cd /php-5.6.20
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
php.ini用来控制php的某些功能
某些功能比如:错误提示,短标签,上传文件最大值,扩展等等可以通过php.ini文件设置
/usr/local/lnmp/php/etc
vim php.ini

date.timezone = Asia/Shanghai                           ##设置时区
pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock       ##设置默认套接字
mysql.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
 vim php-fpm.conf                     ##PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的
pid = run/php-fpm.pid

四、Nginx里的php

# vim ../html/index.php
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
location / {
            root   html;
            index  index.php index.html index.htm;
        }

问题:什么时候会用到后端的PHP应用服务器呢?
若客户单请求的是一个动态网页,请求进来之后,Nginx分析报文,如果发现自己处理不了,就转交给后端,此时Nginx服务器会在内存开辟一段空间来保存与客户端http连接的信息,然后等待后端的fastCGI服务器,后端处理之后把数发给Nginx,处理一点发一点,此时若Nginx直接将结果发给客户端,客户端理解不了fastCGI报文,所以需要Nginx在本地开辟内存来暂存后端发来的数据,当后端发完之后, Nginx开始构建客户端可以理解的http报文。

1.当前段的请求数没有那么大
    后端只需要一个app server就够了
2.当前端的请求数逐渐增大,到一定程度
    此时后端一个app server就不够了,来分担压力,
3.多个app server,就出现了一个问题,数据如何同步
    此时,就另外开一台数据库服务器,所有的app server都与数据库进行数据交换
4.这样一来一个数据库也不够了,读写分离
5.如果我们app server每次都要到数据库去找,就会很费时
    此时,我们在app server与数据库服务器之间配置一台memcache,他只负责存储数据,其他不管
    这样,app server发来一个请求,会先到memcache找,如果找不到,在去数据库找,数据库返回给app server,由app server决定是否要将结果放到memcache,
6.假设只有一台app server时
    每个连接对应一个fastCGI进程,php程序编译出来的opcode无法给其他处理请求的进程分享,因此需要有一个缓存xcache,这个缓存的作用就是将php程序编译出来的pocode共享给全部进程,一个程序在编译完执行opcode时才需要与后端数据库交互
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值