阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署lamp-平台集成

86次阅读
没有评论

共计 2990 个字符,预计需要花费 8 分钟才能阅读完成。

一、平台集成

单个软件是无法直接完成我们发布 PHP 站点的既定任务的,需要我们通过多个软件的通力合作才可以完成,所以我们需要将多个软件关联起来,让彼此各司其职,各干其活。一起完成我们的工作。

linux:系统软件,应用软件平台

apache:接受用户请求,处理静态数据,响应用户请求

php:处理用户的 PHP 请求

mysql:存储数据

二、平台集成方法

  • PHP 作为模块
  • PHP 作为服务

1.PHP 作为模块

这种方式是历史最悠久的关联方法,PHP 模块默认出于休眠状态,和 apache 是上下级关系。apache 接受了用户 PHP 请求后去唤醒 PHP 模块,PHP 模块再去处理请求。

2.PHP 作为服务

这种是 apache2.4 新增功能,PHP 是一个服务,常驻内存。和 apache 是平级关系,apache 接受了用户请求直接通过 socket 或 tcp/ip 的方式发送给 PHP 服务,PHP 服务直接处理。如果是在同一台机器安装了 apache 和 php 建议使用 socket 方式关联,系统开销最小,并发更大。

三、PHP 作为模块

[root@zutuanxue php-7.3.4]# ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysqli=mysqlnd –enable-pdo –with-pdo-mysql=mysqlnd –with-iconv-dir=/usr/local/ –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-pcre-regex –with-zlib –with-bz2 –enable-calendar –disable-phar –with-curl –enable-dba –with-libxml-dir –enable-ftp –with-gd –with-jpeg-dir –with-png-dir –with-zlib-dir –with-freetype-dir –enable-gd-jis-conv –with-mhash –enable-mbstring –enable-opcache=yes –enable-pcntl –enable-xml –disable-rpath –enable-shmop –enable-sockets –enable-zip –enable-bcmath –with-snmp –disable-ipv6 –with-gettext –disable-rpath –disable-debug –enable-embedded-mysqli –with-mysql-sock=/usr/local/mysql/** –with-apxs2=/usr/local/apache2/bin/apxs**

在 PHP 编译的时候需要加上–with-apxs2=/usr/local/apache2/bin/apxs 语句,意思是通过 apache 的 apxs 命令将 PHP 生成为一个 apache 模块。

配置方法

apache 修改主配置文件,添加以下行
Include conf/extra/php.conf


[root@zutuanxue conf]# cat extra/php.conf 
LoadModule php7_module        modules/libphp7.so

AddType application/x-httpd-php .php

<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/web1"
</VirtualHost>

<Directory "/usr/local/apache/htdocs/web1">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

四、PHP 作为服务

tcp sock 模式

1)修改 apache 子配置文件
apache 修改主配置文件,添加以下行
Include conf/extra/php-fpm.conf

[root@zutuanxue conf]# cat extra/php-fpm.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


2)设置虚拟主机 关联 php
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/web1"
</VirtualHost>

<Directory "/usr/local/apache/htdocs/web1">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>



<FilesMatch \.php$>
         SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

unix sock 模式

1)apache 修改主配置文件,添加以下行
Include conf/extra/php-fpm.conf

[root@zutuanxue conf]# cat extra/php-fpm.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


2)修改 PHP-FPM 配置文件
[root@zutuanxue extra]# egrep "^listen" /usr/local/php/etc/php-fpm.d/www.conf
listen = /usr/local/php/etc/php-fpm.socket
listen.backlog = 511
#设置 UNIX socket 权限
listen.owner = www     
listen.group = www
listen.mode = 0660


3)设置虚拟主机 关联 php-fpm
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/web1"


<FilesMatch "\.php$">
    # Unix sockets require 2.4.7 or later
    SetHandler  "proxy:unix:/usr/local/php/etc/php-fpm.socket|fcgi://localhost/"
</FilesMatch>

</VirtualHost>

五、测试页面

1)生成测试页面

echo“<?php phpinfo(); ?>”/DR/phpinfo.php

2)测试

打开浏览器输入

http://ip 或者域名 /phpinfo.php

部署 lamp- 平台集成

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-09发表,共计2990字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中