使用FPM打php7的rpm包

安装FPM环境

安装php7

http://php.net/manual/zh/install.unix.nginx.php

1.下载php7的tar包,解压。http://php.net/downloads.php

2.编译。编译的过程中,会报依赖包的错误,在安装依赖包的同时,记下安装包名,打包的时候作为一个-d参数加进去。下面是一个./configure的样例。

./configure --prefix=/usr/local/php7            --with-config-file-path=/etc/php7/etc            --with-config-file-scan-dir=/etc/php7/etc/php.d            --with-mcrypt=/usr/include --enable-mysqlnd            --with-mysqli            --with-pdo-mysql            --enable-fpm            --with-fpm-user=odin            --with-fpm-group=odin            --with-gd            --with-iconv            --with-zlib            --enable-xml            --enable-shmop            --enable-sysvsem            --enable-inline-optimization            --enable-mbregex            --enable-mbstring            --enable-ftp            --enable-gd-native-ttf            --with-openssl            --enable-pcntl            --enable-sockets            --with-xmlrpc            --enable-zip            --enable-soap            --without-pear            --with-gettext            -enable-session            --with-curl            --with-jpeg-dir            --with-freetype-dir            --with-bz2            --with-gmp            --enable-simplexml

./configure

3.make && make install

修改php7配置文件

编写安装脚本和移除脚本

#!/bin/bash
group=odin
user=odin
php_install_dir=/usr/local/php7/
conf_dir=/etc/
php_fpm_dir=/etc/init.d/

function check_file()
{
    file=$1
    if [ -f "${file}" ];then
        test -f "${file}.rpmsave" && rm -rf "${file}.rpmsave"
        mv "${file}" "${file}.rpmsave"
    fi
}

function check_dir()
{
    dir=$1
    if [ -d "${dir}" ];then
        test -d "${dir}.rpmsave" && rm -rf "${dir}.rpmsave"
        mv "${dir}" "${dir}.rpmsave"
    fi
}

{ ! id $user >/dev/null 2>&1 ;}&& useradd "${user}" -g "${group}"
chown -R odin:odin /usr/local/php7
#copy php-fpm
check_file "${php_fpm_dir}php-fpm"
cp ${php_install_dir}etc/php-fpm ${php_fpm_dir}php-fpm
chmod +x /etc/init.d/php-fpm
#copy php-fpm.conf
check_file "${conf_dir}php-fpm.conf"
cp ${php_install_dir}etc/php-fpm.conf ${conf_dir}php-fpm.conf
#copy php-fpm.d
check_dir "${conf_dir}php-fpm.d"
cp -r ${php_install_dir}etc/php-fpm.d ${conf_dir}php-fpm.d
#copy php.ini
check_file "${conf_dir}php.ini"
cp ${php_install_dir}etc/php.ini ${conf_dir}php.ini
#copy php.d
check_dir "${conf_dir}php.d"
cp -r ${php_install_dir}etc/php.d ${conf_dir}php.d

test -L /usr/local/bin/php && unlink /usr/local/bin/php
#copy php
check_file "/usr/local/bin/php"
cp ${php_install_dir}bin/php /usr/local/bin/php

mkdir -p /var/lib/php
chown -R odin:odin /var/lib/php
mkdir -p /search/odin/devdirs/{tmp,applogs/php-fpm}
chmod 777 -R /search/odin/devdirs/tmp
chmod 770 /search/odin/devdirs/applogs/php-fpm
chmod +t /search/odin/devdirs/tmp

install.sh

注意这个install脚本是安装之后要执行的脚本,所以只能做一些cp或者chmod之类的操作。

#!/bin/bash
php_install_dir=/usr/local/php7/
conf_dir=/etc/
php-fpm_dir=/etc/init.d/

rm -rf /usr/local/php7
function check_file()
{
    file=$1
    if [ -f "${file}" ];then
        test -f "${file}.rpmsave" && rm -rf "${file}.rpmsave"
        mv "${file}" "${file}.rpmsave"
    fi
}

function check_dir()
{
    dir=$1
    if [ -d "${dir}" ];then
        test -d "${dir}.rpmsave" && rm -rf "${dir}.rpmsave"
        mv "${dir}" "${dir}.rpmsave"
    fi
}
#copy php-fpm
check_file "${php-fpm_dir}php-fpm"
#copy php-fpm.conf
check_file "${conf_dir}php-fpm.conf"
#copy php-fpm.d
check_dir "${conf_dir}php-fpm.d"
#copy php.ini
check_file "${conf_dir}php.ini"
#copy php.d
check_dir "${conf_dir}php.d"
test -L /usr/bin/php && unlink /usr/local/bin/php
#copy php
check_file "/usr/bin/php"

remove

由于都是线上的机器,remove的脚本写的比较保守。

使用fpm命令打包

fpm -f -p /search/jingliyang/myrpm/ -s dir -t rpm -n php-desktop-specialForMaXueyong-rh6.x86_64 --epoch 0 -v 7.0.13 -C /usr/local/php7/ --verbose --description ‘php-desktop-specialForMaXueyong-7.0.12.rh6.x86_64‘ --url ‘http://php.net/manual/zh/index.php‘ -m ‘php-7.0.12‘ -d ‘libxml2-devel‘ -d ‘libxml2‘ -d ‘bzip2-devel‘ -d ‘libcurl-devel‘ -d ‘libidn-devel‘ -d ‘libjpeg-devel‘ -d ‘libpng-devel‘ -d ‘freetype-devel‘ -d ‘gmp-devel‘ -d ‘libmcrypt-devel‘ -d ‘pcre-devel‘ --post-install /search/jingliyang/myrpm/php7/php7_scripts/php_install --post-uninstall /search/jingliyang/myrpm/php7/php7_scripts/php_remove /usr/local/php7
时间: 2024-12-28 01:06:59

使用FPM打php7的rpm包的相关文章

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

使用FPM打包工具打rpm包

一:安装ruby环境和gem命令: fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5 # yum -y install ruby rubygems ruby-devel 查看当前ruby源 # gem source -l 添加国内源 # gem sources -a http://mirrors.aliyun.com/rubygems/ 删除国外源 # gem sources --remove --remove http://rubygems.org/ 安装fpm 可能

fpm工具来制作rpm包软件

第1章 rpm包的制作 1.1 fpm的概念介绍 FPM功能简单说就是将一种类型的包转换成另一种类型 1.1.1.支持的源类型 类型 说明 dir?? 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm?? 对rpm进行转换 gem?? 对rubygem包进行转换 python 将python模块打包成相应的类型 1.1.2 支持的目标类型包 类型 说明 rpm??? 转换为rpm包 deb??? 转换为deb包 solaris 转换为solaris包 puppet 转换为puppe

使用fpm简单制作自定义rpm包

yum -y install ruby rubygems ruby-devel

FPM打包工具制作Tengine为RPM包详解

目录 1.Tengine编译安装 2.FPM制作Tengine为RPM包 3.总结 1.Tengine编译安装 [[email protected] ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m [[email protected] ~]# uname -r 2.6.32-358.el6.x86_64 请确保系统安装了"Development tools"和"Server Platform D

fpm制作rpm包

一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特别是一些公司推行自动化,编译安装也不方便,容易出错.这是rpm包就很有用,废话少说,开始制作rpm包之旅吧. 二.rpm制作工具-fpm FPM功能简单说就是将一种类型的包转换成另一种类型.对!就是简单易懂,不废话. 三.fpm软件的参数介绍 1.支持的源类型包 dir 将目录打包成所需要的类型,可

速成制作rpm包

FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FPM.FPM功能简单说就是将一种类型的包转换成另一种类型.FPM是Ruby模块,其实打包时也是调用rpmbuild命令. 支持的源类型包: dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm 对rpm进行转换 gem 对rubygem包进行转换 python 将python模块打包

fpm 制作rpm包

简介 fpm:对包的类型进行转换,从一种类型转换到另一种类型 1安装环境 fpm是ruby写的,系统环境需要rbuy yum install -y ruby ruby-devel rubygems rpm-bu ild 2 安装fpm gem install fpm 3.常用语法 常用命令: -a 系统架构名称,如果是noarch则为'-a all' 或者 '-a native' -s:指定源类型 -t:指定目标类型,即想要制作为什么包 -n:指定包的名字 -v:指定包的版本号 -C:指定打包的

使用fpm制作nginx rpm包

在使用saltstack部署的时候,我们依赖公司自己的rpm包,编译的参数,启动的脚本都是自己定制的,然后打成rpm包 放入公司自己的yum仓库里.制作rpm包的方式很多 checkinstall spec文件,fpm使用很简单,主要介绍下 1.安装fpm yum -y install ruby rubygems ruby-devel rpm-build gem sources -a http://ruby.taobao.org/ gem sources --remove http://ruby