模块化的php编译amp和fpm化的php编译amp;

   2016-10-31 0
核心提示:编译安装amp一,编译环境前准备工作(1) 系统环境:CentOS 6,7CentOS 6:apr, apr-util的版本为1.3.9,不适用于httpd-2.4;CentOS 7:apr, apr-util的版本为1.4+,(2) 开发环境:Development Tools, Server Platform Development(3) 各程序版本httpd: 2.2, 2.4p

编译安装amp

一,编译环境前准备工作

(1) 系统环境:CentOS 6,7
    CentOS 6:apr, apr-util的版本为1.3.9,不适用于httpd-2.4;
    CentOS 7:apr, apr-util的版本为1.4+,
(2) 开发环境:
    Development Tools, Server Platform Development
(3) 各程序版本
    httpd: 2.2, 2.4
    php:5.3.x 5.4.x, 5.6.x
    mysql:5.1, 5.5, 5.6, 5.7, 5.8, 8.0
    mariadb:5.x, 10.x
(4) httpd和php结合的方式
    php的编译选项:模块化编译的选项
    Modules:--with-apxs
        httpd MPM:编译时需要考虑到httpd的mpm类型
            prefork:
            worker, event:专用选项--enable-maintainer-zts
    ftm:--enable-fpm

在CentOS7上编译httpd-2.4, mariadb, php-5.4

安装次序:httpd, mariadb, php

二,安装MariaDB:安装方式有三种

预制的包管理器格式的程序包:
    rpm包:
        os vendor:mariadb-devel 
        MariaDB官方
    通用二进制格式的程序包:有两种版本,分别依赖于不同的glibc库,要求版本一致
    源码包编译:较新版(5.5)以后的版本的mysql或mariaDB他们的项目构建工具为cmake, 而非流行的make;因此他们的编译与传统的make,makeinstall是有区别的

注意:无论哪种方式安装都要安装mariadb-devel包

通用二进制格式包的安装配置步骤:

mget mariadb-5.5.46-linux-x86_64.tar.gz 下载mariadb包

]# yum groupinstall -y "Development Tools"," Server Platform Development" 安装开发工具包   

]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local 此种方法要求安装在/usr/local/mysql目录下 所以直接展开至/usr/local

]# cd /usr/local/ cd到/usr/local目录

]# ln -sv mariadb-VERSION-linux-x86_64 mysql 系统运行时有很多脚本都是指向/usr/local/mysql目录的,为了方便以后升级将其mariadb连接至mysql.

模块化的php编译amp和fpm化的php编译amp;

]# useradd -r mysql 运行程序需要一个系统用户,这里创建一个

]# mkdir -pv /mydata/data 创建一个目录作为数据目录,在生产环境中数据一般都是放在一个有冗余的设备中,这里创建一个目录作为模拟

]# chown -R mysq l.mysql /mydata/data 很显然这个目录对mysql用户得有读写权限,此处把属主属组给mysql

]# cd mysql cd到mysqsl目录,此目录中都是服务器设定相关的文件

]# chown -R root:mysql ./* 这个目录中的文件都应该以mysql的身份运行,为了保证安全不要让mysql用户可写,所有此处改变属主属组root:mysql

模块化的php编译amp和fpm化的php编译amp;

]# ./scripts/mysql_install_db  --user=mysql  --datadir=/mydata/data --skip_name_resolve 使用/scripts/mysql_install_db生成mysql源数据数据库

]# ll /mydata/data/ 查看mysqk源数据库是否已经生成

模块化的php编译amp和fpm化的php编译amp;

在support-files/目录下有很多样示例性的配置文件,这些文件我们可以复制任何一个符号我们需要的到/etc/my.cnf.d/*.cnf结尾 改改就可以用了

]# cp support-files/my-large.cnf  /etc/my.cnf.d/server.cnf

]# vim /etc/my.cnf.d/server.cnf 编辑此配置文件

[mysqld]
.......
datadir = /mydata/data
skip_name_resolve = ON
innodb_file_per_table = ON

模块化的php编译amp和fpm化的php编译amp;

support-files/目录下有一个mysql.server的脚本,这是inintscript脚本,用于控制服务脚本启动的功能.如果我们不想写unitfile就复制这个文件就行

]# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 复制mysql.server文件

]# chmod +x /etc/rc.d/init.d/mysqld 授予执行权限

]# chkconfig --add mysqld   设置开机自动启动

]# cp /etc/my.cnf.d/server.cnf /etc/my.cnf 复制/etc/my.cnf.d/server.cnf覆盖/etc/my.cnf

]# service mysqld start 启动服务

模块化的php编译amp和fpm化的php编译amp;

对应的客户端程序在/usr/local/mysql/bin/mysql,运行此程序就可以使用了

模块化的php编译amp和fpm化的php编译amp;

在/usr/local/mysql/程序包的安装目录下是有安装文档的

模块化的php编译amp和fpm化的php编译amp;

]#  less INSTALL-BINARY 可以看到安装此程序大概都要什么步骤

模块化的php编译amp和fpm化的php编译amp;

三,安装httpd-2.4

一般而言当我们使用–with-PACKAGE时.都应该装上这个PACKAGE的devel包,如果没有devel包的话,就得编译安装

mget httpd-2.4.10.tar.bz2 下载包

编译安装的时候 如果我们要启动支持ssl功能,支持url-rewrite,需要额外的安装上其他几个程序包,如下
]# yum install pcre-devel openssl-devel libevent-devel apr-devel apr-util-devel -y

]# yum groupinstall -y "Development Tools"," Server Platform Development" 安装开发包组

]# tar xf httpd-2.4.10.tar.bz2 展开程序包

]# cd httpd-2.4.10.tar.ba2

]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-ssl
    --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork 
    --with-pcre --with-zlib --with-apr=/usr --with-apr-util=/usr 

指明安装目录在/usr/local/apache2,配置文件在/etc/httpd,--enable-so支持模块动态装卸载,--enable-ssl支持使用openssl,
--enable-cgi支持cgi,--enable-rewrite支持url重写,--enable-modules=most|all支持使用模块,--enable-mpms-shared=all将mpm编译成可动态装卸载,
    --with-mpm=prefork指明prefork为默认mpm,--with-pcre支持pcre正则表达式引擎,--with-zlib支持压缩使用库,
    --with-apr=/usr指明基于apr进行编译别去指明apr的查找路径是/usr,--with-apr-util=/usr指明apr-util路径为/usr

httpd-2.4.10]# make -j 2 && make install 指明使用两颗cpu同时进行编译

]# echo 'export PATH=/usr/local/apache2/bin:$PATH' > /etc/profile.d/httpd.sh echo一个apachectl的控制服务的路径的脚本

]# . /etc/profile.d/httpd.sh  重读这个服务脚本让其生效

]# echo $PATH

模块化的php编译amp和fpm化的php编译amp;

]# apachectl start 启动服务

模块化的php编译amp和fpm化的php编译amp;

浏览器访问测试

模块化的php编译amp和fpm化的php编译amp;

在apache的安装目录下/usr/local/apache2/build/下记录了编译安装的过程,cgi-bin目录是cgi脚本的存放目录,error目录错误页面,
htdocs网页文件的默认存放位置,icons图标存放位置,include头文件,logs日志文件目录,man帮助手册,
manual官方文档,modules模块文件路径.config.nice这个文件记录了编译参数.

模块化的php编译amp和fpm化的php编译amp;

模块化的php编译amp和fpm化的php编译amp;

模块化的php编译amp和fpm化的php编译amp;

配置文件在/etc/httpd/目录下,httpd.conf的额外配置文件在extra目录下,
original目录是不指定编译选项时默认使用的配置文件,mime.types是所支持的mime类型的总体配置

模块化的php编译amp和fpm化的php编译amp;

四,安装php5.4

一般而言当我们使用–with-PACKAGE时.都应该装上这个PACKAGE的devel包,如果没有devel包的话,就得编译安装

编译安装php5.4依赖了各种各样的开发包,其中包含了;

gd包:gd是一个动态绘图库,是让程序实现绘图功能的.

freetype包:能实现字体以及字体变形显示功能的

libxml2包:能解析xml格式的文件

libmcrypt包:支持加密解密的

如果要让php支持bzip2压缩的话,还要安装上bzip2-devel php还有很多依赖的包…..这里并不启动php的所有功能所以这里就简单演示

(1) 作为httpd的模块安装:

mget php-5.4.40.tar.bz2 下载程序包

]# yum install gd-devel freetype-devel libxml2-devel libmcrypt-devel -y 安装对应包的devel包解决依赖关系

]# yum groupinstall -y "Development Tools"," Server Platform Development" 安装开发包组

]# tar xf php-5.4.40.tar.bz2 展开程序包

]# cd php-5.4.40 进入解压开的程序目录

php-5.4.40]# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
 --with-openssl --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib
 --with-jpeg-dir --with-png-dir --with-mcrypt --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/etc/php.ini 
    --with-config-file-scan-dir=/etc/php.d/

指定安装在/usr/local/php5目录下,--with-mysql=/usr/local/mysql指明mysql的安装路径(注意:任何依赖到的程序包;如果使用rpm包安装的而且安装了devel包,
只需要写上--with--PACKAGE就行,而不用带包路径,个别情况下:修改了默认安装路径时必须要在--with--PACKAGE后指定安装路径的).
    --with-mysqli=/usr/local/mysql/bin/mysql_config指明mysqli的接口文件(mysql_cofig提供了一个编译mysql客户端时使用的相关信息,并有助于连接mysql的,
    所以使用php-mysql连接至mysql需要用到mysql_config这么一个接口,来获取客户端的相关信息),--with-openssl支持ssl加密协议...
    --enable-sockets支持sockets通信,--with-apxs2=/usr/local/apache2/bin/apxs编译成apx的模块并且指明路径,
    --with-config-file-path=/etc/php.ini指明php的配置文件路径,
    --with-config-file-scan-dir=/etc/php.d/指定扫描/etc/php.d/目录下以.ini结尾的文件做配置文件的组成部分   

在配置结束后会有一个提醒:httpd编译成了mpm的动态装载模式

模块化的php编译amp和fpm化的php编译amp;

注意:如果mpm为线程模型,则需要额外使用–enable-maintainer-zts

]# make -j 2 && make install

编译完成后提示到模块已经装载到了指定的路径下/usr/local/apache2/modules/

模块化的php编译amp和fpm化的php编译amp;

libphp5.soz这个模块安装过程会自动编辑httpd.conf的配置文件,把这个模块装入

模块化的php编译amp和fpm化的php编译amp;

配置php与httpd结合起来工作,配置php的配置文件

编译php为httpd的模块后,整合php至httpd:

在php-5.4.10目录下有两个文件的示例我们复制php.ini-production 到/etc/php.ini

编辑httpd.conf,添加如下配置信息:

DirectoryIndex index.php index.html

AddType application/x-httpd-php .php

]# cp php.ini-production /etc/php.ini

模块化的php编译amp和fpm化的php编译amp;

编辑/etc/httpd/httpd.conf配置文件

]# vim /etc/httpd/hrrpd.conf

模块化的php编译amp和fpm化的php编译amp;

模块化的php编译amp和fpm化的php编译amp;

]# cd /usr/local/apache2/htdocs/

]# mv index.html index.php

]# vim index.php 编写php测试页

模块化的php编译amp和fpm化的php编译amp;

使用apachectl重启服务后浏览器测试

模块化的php编译amp和fpm化的php编译amp;

(2) 安装为fpm:

为了实验,我们先要删除刚才编译的模块化amp

]# apachectl stop 先停掉服务

]# rm -rf /etc/httpd /usr/local/apache2 /etc/php.ini /usr/local/php5 
删除web服务的配置文件,程序安装目录和php的配置文件,程序安装目录

]# make install 重新安装http,因为事先已经编译好了的,在我们删除了之后,需要再次安装的话不需要使用./configure好make了

要整合他与fcgi需要编辑配置文件/etc/httpd/httpd.conf

]# vim /etc/httpd/httpd.conf
:/LoadModule 在配置文件中找到LoadModule配置段
:/fcgi 在LoadModule配置段中找到fcgi模块,将其和其依赖的模块启动

模块化的php编译amp和fpm化的php编译amp;

]# tar -xf php-5.4.40 解压php源码包

如果安装为fpm的话则需要–with-apxs2=/usr/local/apache2/bin/apxs改为–enable-fpm

]# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
 --with-openssl --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr 
--with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt --enable-fpm --with-config-file-path=/etc/php.ini 
--with-config-file-scan-dir=/etc/php.d/

]# make -j 2 && make install

]# cp php.ini-production /etc/php.ini

为fpm准备配置文件

]# cd /usr/local/php5/ cd到安装路径

]# cd etc/

]# cp php-fpm.conf.default php-fpm.conf

]# vim php-fpm.conf 编辑此配置文件

修改pid文件配置项为pid = /usr/local/php5/var/run/php-fpm.pid

模块化的php编译amp和fpm化的php编译amp;

]# cp php-5.4.40/sapi/fpm/php-fpm.service /usr/lib/systemd/system

]# vim /usr/lib/systemd/system/php-fpm.service 编辑此配置文件

模块化的php编译amp和fpm化的php编译amp;

]# systemctl daemon-reload 重载

]# systemctl restart php-fpm.service 重启

]# ss -tnl

模块化的php编译amp和fpm化的php编译amp;

注意:这两种方式不可以同时使用

 
标签: MySQL PHP-FPM
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl操作Mysql数据库 perl操作excel
    一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD
    02-09
  • Nodejs+Express+Mysql实现简单用户管理增删改查
    Nodejs+Express+Mysql实现简单用户管理增删改查
     源码地址  https://github.com/king-y/NodeJs/tree/master/user目录结构  mysql.jsvar mysql = require('mysql');var pool = mysql.createPool({host : '127.0.0.1',user : 'root',password : '',database : 's79'});exports.que
    02-09
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
    PHP 使用 Swoole - TaskWorker 实现异步操作 My
    在一般的 Server 程序中都会有一些耗时的任务,比如:发送邮件、聊天服务器发送广播等。如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢。Swoole 的 TaskWorker 进程池可以用来执行一些异步的任务,而且不会影响接下来的任务,很适合处理以
    02-09
  • Mysql数据库一个小程序实现自动创建分表。
    每当跨月的时候也是系统出问题最多的时候,没有表和字段缺失是两个最常见的错误。为了解决这个问题,研究了一下mysql的 information_schema 表:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访
    02-09
  • delphi10.3安装使用mySQL及遇到的问题(01)
    delphi10.3安装使用mySQL及遇到的问题(01)
    1】下载安装好mySQL环境2】FDConnection1的设置3】执行增删改SQL语句和查询Select语句4】客户端连接5]长文本类型,及SQLITE导出,导入到MySQL6】遇到过的问题及解决1】下载安装好mySQL环境,注意32位/64位。本篇为32位mysql32位下载链接: https://pan.baidu.c
    02-09
  • Delphi XE中使用dbExpress连接MySQL数据库疑难
    Delphi IDE中包含一个Data Explorer的组件,如下图所示:  该组件基于dbExpress(包含TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TsqlServerMethod、TSQLMonitor、TSimpleDataSet)。但是因为该组件只提供了各种数据库的抽象驱动
    02-09
  • DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境
    DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境笔者使用ubuntu64位LINUX首先必须保证LINUX可以连互联网。安装MYSQLsudo apt-get update sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev复制MYSQL的
    02-09
  • Centos7上安装MySQL5.5报错,/usr/bin/perl is
    今天在Centos7上安装MySQL5.5时报了如下错/usr/bin/perl is needed by MySQL-server-...按照网上的几种说法进行了尝试1、在perl官网下载perl后安装到相应的目录下,仍无法解决问题2、采用强制安装 rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm --nodeps 
    02-09
  • 用perl做数据库迁移,从MSSQL到MYSQL(三)--V1
    从前边的程序的运行情况来看,程序是可以运行的,但速度太扯了,在读写1000W条之前速度还是可以的(大概2000条/秒左右),但过了1000W之后(变成400条/秒左右),当然这个与SQL SERVER读取,网络还有服务器等性能都是有关系的,但,这速度,不晓得有测试过的
    02-09
  • R语言连接MYSQL r语言连接数据库
     操作系统:centos 6.4 64bit R语言可以使用RMySQL来连接Mysql数据库,直接使用数据库里面的数据生成图像。 这个是RMYSQL的说明:http://cran.r-project.org/web/packages/RMySQL/index.htmlRMYSQL的依赖:Depends:R (≥ 2.8.0), methods, DBI (≥ 0.2-2),
    02-09
点击排行