LAMP-fpm

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

配置apache-2.4.23以fpm方式的php-5.6.26


一、apache、MySQL的安装与前一部分相同;请根据其进行安装;

http://jiayimeng.blog.51cto.com/10604001/1858857


二、编译安装php-5.6.26


1、解决依赖关系:


请配置好yum源(可以是本地系统光盘)后执行如下命令:

1
2
3
[root@centfils ~] # yum -y groupinstall "X Software Development" 
[root@centfils ~] # yum install libmcrypt libmcrypt-devel -y
[root@centfils ~] # yum install mhash mhash-devel -y

2、编译安装php-5.4.26


首先下载源码包至本地目录

1
2
3
4
5
6
7
8
9
10
11
12
# tar xf php-5.6.26.tar.bz2
# cd php-5.6.26
# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
 
 
说明:如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
 
[root@centfils php-5.6.26] # make && make install
 
为php提供配置文件:
# cp php.ini-production /etc/php.ini


3、配置php-fpm

 

为php-fpm提供SysV init脚本,并将其添加至服务列表:

1
2
3
4
# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on

为php-fpm提供配置文件:

1
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
1
2
3
4
5
6
7
8
9
10
11
编辑php-fpm的配置文件:
# vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid =  /usr/local/php/var/run/php-fpm .pid 
 
接下来就可以启动php-fpm了:
# service php-fpm start
1
2
3
4
5
6
使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
# ps aux | grep php-fpm
 
默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验正其是否已经监听在相应的套接字。
# netstat -tnlp | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      689 /php-fpm


三、配置httpd-2.4.9


1、启用httpd的相关模块

在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


2、配置虚拟主机支持使用fcgi


在相应的虚拟主机中添加类似如下两行。

  ProxyRequests Off

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1


http://www.magedu.com/admin/index.php


/web/host1/admin/index.php

fcgi://127.0.0.1:9000/web/hosts/admin/index.php



例如:

<VirtualHost *:80>

    DocumentRoot "/www/magedu.com"

    ServerName magedu.com

    ServerAlias www.magedu.com


  ProxyRequests Off

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/magedu.com/$1


    <Directory "/www/magedu.com">

        Options none

        AllowOverride none

        Require all granted

    </Directory>

</VirtualHost>


ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。


3、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页

1
2
3
4
5
6
7
8
9
10
  # vim /etc/httpd/httpd.conf
  1、添加如下二行
    AddType application /x-httpd-php   .php
    AddType application /x-httpd-php-source   .phps
 
  2、定位至DirectoryIndex index.html 
    修改为:
     DirectoryIndex  index.php  index.html
 
补充:Apache httpd 2.4以前的版本中,要么把PHP作为Apache的模块运行,要么添加一个第三方模块支持PHP-FPM实现。




本文转自 元婴期 51CTO博客,原文链接:http://blog.51cto.com/jiayimeng/1858917

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
双 11 电商效率突围:10 款 AI 工具的技术落地与实践指南
2025年双11促销长达38天,电商迎来AI重构关键期。本文剖析10款主流AI工具技术原理,涵盖设计、文案、投放、客服等场景,揭示计算机视觉、自然语言处理等技术如何驱动电商智能化升级,助力企业高效应对大促挑战。
513 1
|
9月前
|
监控 前端开发 安全
74.8K star!这个开源图标库让界面设计效率提升10倍!
Font Awesome 是全球最受欢迎的图标库和工具包,提供超过2000个免费图标和7000+专业图标,支持网页、桌面应用、移动端等多平台使用。开发者只需几行代码就能为项目添加精美矢量图标,设计师可直接下载SVG进行二次创作。
290 4
|
测试技术 Python
分支覆盖 (Branch Coverage)
分支覆盖 (Branch Coverage) 是一种软件测试覆盖率评估方法,能够测量代码中每个分支的执行情况,即代码中每个条件语句 (if-else 语句) 的所有可能分支是否都被执行过。
4331 1
|
开发工具 git 开发者
|
7月前
|
消息中间件 分布式计算 监控
从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升
Grab 是东南亚领先的超级应用,其 Spark 可观测平台 Iris 核心存储迁移到 StarRocks 后性能显著提升。新架构统一了实时与历史数据分析,减少多平台切换复杂性,查询速度提升 10 倍以上,资源使用效率提高 40%。通过物化视图、动态分区和直接 Kafka 摄取数据等优化,简化数据管道并降低运维成本。未来 Grab 将进一步增强推荐系统、集成机器学习,持续优化用户体验与系统可扩展性。
|
9月前
|
传感器 运维 监控
智慧看护:可穿戴设备在老年护理中的技术探索
智慧看护:可穿戴设备在老年护理中的技术探索
565 13
|
9月前
|
数据可视化 数据挖掘 BI
Quick BI 使用体验报告
Quick BI 使用体验报告
250 3
|
11月前
|
前端开发 安全 开发工具
CMS系统是什么?CMS用来做什么的?
CMS是网站开发工具,包括前端模版和后端后台。支持私有化部署,包含页面管理、会员管理、标签管理等。用户无需建站基础和专业知识,即可快速建设和管理网站。大型企业网站、新闻网站等多采用CMS。
712 8
|
Swift iOS开发 C++
设置Swift开发环境
设置Swift开发环境
302 1
|
Web App开发
解决VSCode下载速度特别慢
解决VSCode下载速度特别慢
542 1