linux中PHP 5.6编译安装方法(支持ORACLE/MARIADB数据库)

大多数phper编译php的时候,的模式都很固定,简单的支持一些常见拓展 支持mysql就够了,而且这些phper们偏爱php5.2 php5.3 连php5.4都很少,很不愿意尝试编译新的版本,以后就固定用这个版本,用固定的编译代码。这样虽然很安全。但是我们应该开拓创新。

环境:Linux CentOS 7
PHP版本:php 5.6.1
目的:支持MariaDB(Mysql), Oracle数据库拓展 以及支持常用拓展组件

事先安装好了MariaDB,MariaDB跟Mysql差不多,此处不详细说明

先上段,尝试成功的编译代码(去掉oracle支持 去掉ldap支持)

 代码如下 复制代码

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc/php.d --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql --with-iconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-openssl --enable-soap --enable-zip

然后拷贝php.ini到安装目录

把编译的目录下的 ./php-5.6.1/php.ini-production 拷贝到/usr/local/php/etc/php.ini

上面这段编译配置代码是在我尝试了很多次总结出来的,一去掉了一些编译配置(oracle 和 ldap配置),折腾了很久最终还是放弃在编译php过程中的oralce编译参数和ldap编译参数,如:

 代码如下 复制代码

--with-oci8=shared,instantclient,/usr/local/lib64/oracle/client/lib --with-pdo-oci=instantclient,/usr/local/lib64/oracle/client/lib,12.1 --enable-opcache --with-ldap --with-ldap-sasl

其中–enable-opcache 没有尝试

PHP各版本说明:

PHP 5.5 开始增加 –enable-opcache参数,意思是启用Zend Opcache缓存功能,类似APC缓存
PHP 5.4 去掉了参数 –enable-safe-mode –enable-discard-path –enable-fastcgi –enable-force-cgi-redirect

但是Oracle,哥们儿我是要用的,怎么能少了你,继续折腾
执行 pecl install oci8 在需要录入的地方输入 shared,instantclient,/usr/local/lib64/oracle/client/lib
其中 /usr/local/lib64/oracle/client/lib 是在官网下载的几个oracle sdk

 代码如下 复制代码

[root@joe-pc bin]# /usr/local/php/bin/pecl install oci8
downloading oci8-2.0.8.tgz ...
Starting to download oci8-2.0.8.tgz (190,854 bytes)
.........................................done: 190,854 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : shared,instantclient,/usr/local/lib64/oracle/client/lib

在php配置文件里加入oracle支持

编辑 /usr/local/php/etc/php.d/oracle.ini 内容:

extension=oci8.so

启动 php-fpm,妈的报错

NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/oci8.so' - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0

看来这oracle 还缺少libaio支持,也给装上

yum install libaio

然后kill掉php所有进程,重启 php-fpm

/usr/local/php/sbin/php-fpm

ok, 终于搞定了,生命在于折腾

时间: 2024-10-28 05:38:14

linux中PHP 5.6编译安装方法(支持ORACLE/MARIADB数据库)的相关文章

在linux中使用包管理器安装node.js

 这篇文章主要介绍了在linux中使用包管理器安装node.js的方法以及具体安装过程,非常详细,推荐给大家,有需要的小伙伴参考下吧.     网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在Ubuntu中,使用如下命令:   代码如下: curl -sL https://deb.nodesource.com/setup | sudo bash -

linux下源代码包的编译安装

linux下源代码包的编译安装其实没那么复杂. 我是win7系统装的虚拟机,就简单说下: 举个简单的例子: http://www.openssl.org/ 这是openssl的官网,下载openssl包(官网肯定是安全的)要是其他的网上下载的--scripts看清包的脚本在玩,别最后安装不成一卸掉发现 "/"没了. 然后上传到你的虚拟机,要是都不知道怎么上传上去,那就别学了. 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/

腾讯CMEM的PHP扩展编译安装方法_php技巧

本文实例讲述了腾讯CMEM的PHP扩展编译安装方法.分享给大家供大家参考.具体如下: CMEM是什么? CMEM全称为Cloud Memory,是腾讯提供的高性能内存级持久化存储服务,适用于数据量小.访问量高.key-value存储的场景. CMEM基于一个存储键/值对的hashmap,数据使用内存存储,并保证数据的持久性. CMEM PHP Extension是什么? CMEM基于标准的Memcached协议以及接口,只是将数据获取接口增加返回值设定. Memcached的Get协议没有设计返

Gearman::XS在Centos下的编译安装方法_linux shell

本文简述了Gearman::XS在Centos下编译安装方法,供大家参考学习一下! 目前Gearman能够支持各种语言,其官网的描述如下:   Language Bindings/Drivers/Frameworks Select your language – cross links to download section which details all your options. C, C#/.NET, Go, Java, Lisp, Nodejs, PHP, Perl, Python,

Linux中修改环境变量及生效方法_Linux

在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是"永久的". 要让刚才的修改马上生效,需要执行以下代码 source /etc/profile 以上这篇Linux中修改环境变量及生效方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索

在linux中使用包管理器安装node.js_node.js

网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在Ubuntu中,使用如下命令: 复制代码 代码如下: curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 如果需要使用npm安装本地组件,还需要执行如下命令: 复制代码 代码如下:

linux下php扩展pdo_mysql编译安装教程

linux下的php扩展与windows下的扩展安装有些不同.下面就拿在linux下扩展php的pdo,pdo_mysql模块来说明一下 1.在php的原码安装包里,进入到etc/pdo_mysql里.假设你的php是安装在/usr/local/php里的.执行/usr/local/php/bin/phpize 2. 进行编译../configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/loc

Linux下MySQL源码编译安装(eg:mysql-5.6.27.tar.gz )

Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ): 1:准备MySQL源码安装包: mysql-5.6.27.tar.gz.cmake-3.3.2.tar.gz.ncurses-6.0.tar.gz 注:centos请安装: yum install -y ncurses-devel yum install -y perl-Module-Install.noarch 网址: https://cmake.org/download/ ftp://invisible-is

Linux CentOS 7源码编译安装PostgreSQL9.5_PostgreSQL

之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本) ),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5. 下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如下图: 进入子目录后,可以看到文件列表: 如上图,可以看到提供了两种压缩格式,此处我们选择postg