`
sillycat
  • 浏览: 2551195 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

PHP ENV and HTTP Extension

 
阅读更多
PHP ENV and HTTP Extension

We keep having issues with http.so and iconv.so and others. So at first, we try to fix that in this way.
The Dockerfile is as following:
#Prepre the OS
FROM            centos:7
MAINTAINER      Carl Luo <cluo@jobs2careers.com>

ENV             DEBIAN_FRONTEND noninteractive
ENV             PERL_MM_USE_DEFAULT 1
ENV AWS_PHP_CACHE_DIR /tmp/awscache

RUN             yum install -y gcc make
RUN             yum install -y mysql-devel
RUN             yum install -y openssh-clients
RUN             yum install -y unzip
RUN             mkdir /install/
WORKDIR         /install/

#install wget
RUN             yum install -y gnutls-devel
RUN             curl -O http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz
RUN             tar zxvf wget-1.18.tar.gz
WORKDIR         /install/wget-1.18
RUN             ./configure
RUN             make && make install
WORKDIR         /install/

#install php5.6
RUN             rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN             rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RUN             rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RUN             yum install -y php56w
RUN             yum install -y php56w-xml
RUN             yum install -y php56w-mysqlnd
RUN             yum install -y php56w-devel
RUN             yum --enablerepo=remi,remi-php56 install -y php-pear

RUN             yum install -y php56-php-raphf

#set up php
ADD             conf/php.ini /etc/php.ini
ADD conf/20-iconv.ini /etc/php.d/20-iconv.ini
RUN             echo "usr/\n" | pecl install pecl_http-2.6.0

The content of 20-iconv.ini is as follow:
; Enable iconv extension module
;extension=iconv.so

In php.ini, I have some configuration as follow:
extension=iconv.so
extension=raphf.so
extension=propro.so
extension=http.so

which I do not like, because the steps in 20-iconv.ini is ugly. And also my colleague who use PHP for years told me “php56w, Presumably the 'w' stands for 'webtatic', to differentiate these packages from the official CentOS ones."

So I am trying to do php56 instead of php56w. Finally we found a better way as follow.

Here is the Dockerfile:
#Prepre the OS
FROM            centos:7
MAINTAINER      Carl Luo <cluo@jobs2careers.com>

ENV             DEBIAN_FRONTEND noninteractive
ENV             PERL_MM_USE_DEFAULT 1
ENV AWS_PHP_CACHE_DIR /tmp/awscache

RUN             yum install -y gcc make wget
RUN             yum install -y mysql-devel
RUN             mkdir /install/
WORKDIR         /install/

#install php5.6
RUN  rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN             rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
ADD             conf/remi.repo /etc/yum.repos.d/remi.repo
RUN          yum install -y php
RUN             yum install -y php-xml
RUN             yum install -y php-mysqlnd
RUN             yum install -y php-common
RUN             yum install -y php-devel

RUN             yum install -y php-raphf
RUN     yum install -y php-pecl-http

The remi.repo file is follow, the only changes are that I enabled remi and remi-php56
# Repository: http://rpms.remirepo.net/
# Blog:       http://blog.remirepo.net/
# Forum:      http://forum.remirepo.net/

[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php55/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/test/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/test/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-debuginfo]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55-debuginfo]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php55/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56-debuginfo]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php56/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test-debuginfo]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-test/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

That’s it. We do not need php.ini configuration or iconv.ini.

References:
https://www.digitalocean.com/community/questions/how-to-install-php-5-6-on-centos-7-0-x64
分享到:
评论

相关推荐

    phpEnv 5.3.0

    软件官网:https://www.phpenv.cn 为什么开发这款集成环境 2017年phpstudy被 php.cn 收购,软件用c++重写了,现在逐渐商业化,用户体验和2016版不能比,决定自己开发一款php集成环境,于是用C# WPF 开发了phpEnv。...

    phpenv:简单PHP版本管理

    **phpenv:简单PHP版本管理** phpenv是一个用于在单个系统上轻松切换和管理多个PHP版本的工具。它使得开发者能够在本地环境安装并切换不同的PHP版本,这对于测试代码兼容性、开发新特性或者保持与生产环境一致是...

    php7.2 开发集成环境

    【PHPenv】 PHPenv 是一个用于管理多个 PHP 版本的工具,它允许你在同一台计算机上方便地安装和切换不同的 PHP 实际版本。PHPenv 提供了一种灵活的方法来控制开发环境,使得开发者可以轻松地在 PHP 7.2 这样的特定...

    phpEnv集成开发环境

    phpenv是简单优雅的php集成环境

    cadence快捷键env文件设置

    `env`文件正是这样一个关键元素,它允许用户自定义CADENCE界面的快捷键,以提高设计流程的速度和效率。本文将深入探讨`env`文件的设置及其在CADENCE中的应用。 一、env文件介绍 `env`文件是CADENCE环境下的一种配置...

    ENV快捷键文件.zip

    "env快捷键(中文说明).env"和"env快捷键.env"这两个文件都是用于存储快捷键设置的ENV文件。其中,“env快捷键(中文说明).env”可能包含中文注释,方便不熟悉英文的用户理解各个快捷键的功能。这些文件通常包含了...

    phpenv-installer:安装phpenv和php-build并在需要时更新所有它们。

    curl -L http://git.io/phpenv-installer \ | bash 可选:在其他目录中安装(即系统范围) 如果您希望将phpenv安装在其他目录(即$HOME/myphpenv )中,或者在系统范围(即/usr/local/bin/phpenv )中安装,则很...

    phpenv-installer:安装phpenv和php-build并在需要时更新所有它们

    phpenv安装程序 安装 + (和其他插件),并在需要时更新所有它们! 安装 这是标准方法:将phpenv安装在$ HOME / .phpenv中(默认$ PHPENV_ROOT值)。 curl -L ...

    allegro快捷键文件env

    allegro快捷键文件env

    cross-env-7.0.3.zip

    《跨平台环境变量工具——cross-env详解》 在软件开发过程中,尤其是在JavaScript的世界里,由于其跨平台的特性,开发者经常需要处理不同操作系统之间的环境差异。`cross-env`是一个非常实用的npm模块,它允许你在...

    phpenv

    **PHPenv:构建高效PHP开发环境的利器** PHPenv 是一个用于管理多个 PHP 版本的工具,它允许你在同一台计算机上安装和切换不同版本的 PHP,这对于开发者来说是极其方便的,尤其是那些需要测试代码在不同 PHP 版本下...

    IDEA中使用.env文件配置信息的EnvFile插件.rar

    .env文件是一种常见的配置文件格式,它可以存储键值对形式的配置信息,并且具有良好的可读性和易用性。 有时候IDEA网络不好下载不了,我这里提供一个下载包,下载到电脑上,从IDEA直接就能导入。 插件版本:3.4.2 ...

    RT-Thread的env工具无法下载软件包

    RT-Thread 的 Env 工具无法下载软件包 RT-Thread 是一个开源的实时操作系统, Env 工具是 RT-Thread 的一个重要组件,负责管理软件包。然而,在使用 Env 工具时,有时可能会遇到无法下载软件包的问题。本文将详细...

    cross-env-6.0.2.zip

    《跨平台环境变量工具——cross-env详解》 在软件开发过程中,尤其是在JavaScript的世界里,由于其跨平台的特性,我们经常需要处理一个重要的问题:确保命令行中的环境变量设置在不同操作系统(如Windows、macOS和...

    cadence快捷键设置env文件

    cadence快捷键设置env文件

    cross-env-7.0.2.zip

    "cross-env"是一个在Node.js环境中管理环境变量的开源库,尤其在跨平台(Windows、Linux、MacOS)开发时非常有用。它允许开发者在不同的操作系统间设定和使用一致的环境变量,使得构建脚本无需考虑操作系统的差异。...

    uboot下env工具

    uboot下的env工具是嵌入式Linux系统中一个至关重要的组件,它主要用于管理和操作U-Boot(Universal Boot Loader)的环境变量。U-Boot是一个开源的、可移植的引导加载程序,广泛应用于各种嵌入式设备,如嵌入式Linux...

    cadence ENV常用快捷键

    ENV常用快捷键,覆盖X:\Cadence17.4\Cadence\SPB_Data\pcbenv中ENV文件即可, W/w拉线,A/a更改,S/s修线,D/d删除,C/c复制,T/t修改文本,R/r旋转器件,H/h高亮,等等有好几个,如果要修改,用文本打开自己修改...

    prod.env.zip

    描述中提到的"配置生产环境和线下环境自动配置",意味着这个压缩包可能包含至少两个`.env`文件:`dev.env.js`用于开发环境,`prod.env.js`用于生产环境。在Vue项目中,`dev.env.js`通常包含开发者在本地开发时使用的...

    Laravel开发-laravel-env-sync-command

    4. **使用**:在命令行中,你可以通过`php artisan env:sync`或者`php artisan env:sync-from`执行同步操作。如果配置正确,这个过程应该会无缝且安全地完成。 5. **团队协作**:在多人协作的项目中,每个开发者...

Global site tag (gtag.js) - Google Analytics