CentOS 下编译安装PHP

1.   去php官网下载源码 http://www.php.net/downloads.php ,我下载使用的版本是(php-5.4.8.tar.gz)

2.   安装环境

yum install xml2

2.   解压到/usr/src目录,执行命令:sudo tar -zxvf php-5.4.8.tar.gz -C /usr/src

3.执行./configure \

--prefix=/usr/local/php \

--with-mcrypt=/usr/local/libmcrypt \

--with-zlib --enable-mbstring \

--with-openssl \

--with-mysql \

--with-mysqli --with-mysql-sock \

--with-gd --with-jpeg-dir=/usr/lib \

--with-bz2 \

--with-pdo-mysql \

--with-gettext \

--with-curl \

--with-pdo-mysql \

--enable-sockets \

--enable-bcmath \

--enable-xml \

--enable-zip \

--enable-gd-native-ttf \

--enable-pdo \

--enable-fpm \

--enable-freetype

4.编译遇到问题:error: xml2-config not found.解决办法:

(1)去官网http://xmlsoft.org/sources/ 下载源码。我用的版本是libxml2-2.9.0.tar.gz, 解压到/usr/src,执行命令:sudo tar -zxvf libxml2-2.9.0.tar.gz  -C /usr/src

(2)进入目录/usr/src/libxml2-2.9.0,在root下执行或者用sudo命令执行: sudo ./configure --prefix=/usr/local/libxml2/ ; make; make install

(3) 进入php目录中编译时加上--with-libxml-dir=/usr/local/libxml2

5.再次编译,遇到问题:checking if the location of ZLIB install directory is defined... no ; configure: error: Cannot find libz. 解决办法:

(1)去网址 http://www.zlib.net/ 下载zlib源码。我下的是版本zlib-1.2.7.tar.gz,解压到/usr/src,执行命令:sudo tar -zxvf zlib-1.2.7.tar.gz  -C /usr/src

(2)进入目录/usr/src/zlib-1.2.7/,执行命令:sudo ./configure --prefix=/usr/local/zlib;make;make install

(3)进入php目录中重新编译,增加新参数 --with-zlib-dir=/usr/local/zlib

6.再次编译,遇到问题:error: Please reinstall the BZip2 distribution. 解决办法:

(1)去网站 http://www.bzip.org/downloads.html 下载源码。我用的版本是bzip2-1.0.6.tar.gz,执行命令:sudo tar -zxvf bzip2-1.0.6.tar.gz -C /usr/src

(2)进入目录/usr/src/bzip2-1.0.6/,sudo方式执行:make;make install(下的源码中并没有configure)

(3)重新编译,不用增加新参数

7.再次编译,遇到问题:

checking if we should use cURL for url streams... no checking for cURL in default path... not found

configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

解决办法是重装libcurl

(1)去网站 http://curl.haxx.se/download/ 下载libcurl源码。我用的版本是curl-7.28.0.tar.gz,执行命令:sudo tar -zxvf curl-7.28.0.tar.gz -C /usr/src

(2)进入/usr/src/curl-7.28.0目录,用sudo执行命令:./configure --prefix=/usr/local/curl;make;make install

(3)重新编译php,增加参数--with-curl=/usr/local/curl

8.再次编译,遇到问题:configure: error: jpeglib.h not found. 解决办法:

(1)去网站 http://www.ijg.org/ 下载源码。我用的版本是jpegsrc.v8d.tar.gz,执行命令:sudo tar -zxvf jpegsrc.v8d.tar.gz -C /usr/src

(2)进入/usr/src/jpegsrc.v8d目录,sudo方式执行命令:sudo ./configure --prefix=/usr/local/jpeg;make;make install;

(3)重新编译php,增加参数--with-jpeg-dir=/usr/local/jpeg

9.再次编译,遇到问题:configure: error: png.h not found.

(1)去网站http://www.libpng.org/pub/png/libpng.html 下载源码,我用的版本是libpng-1.5.13.tar.gz,执行命令:sudo tar -zxvflibpng-1.5.13.tar.gz -C /usr/src

(2)进入/usr/src/libpng-1.5.13目录,sudo方式执行命令:sudo ./configure --prefix=/usr/local/png;make;make install;

(3)这时出现了configure: error: zlib not installed的错误,明明之前已经装过的,但是这里还是报错。在网上查了解决办法如下:

3.1)进入zlib的源文件目录(这里我的是/usr/src/zlib-1.2.7/),执行命令 make clean,清除zlib;

    3.2)重新配置 ./configure,后面不要接--prefix参数;

    3.3)make && make install;

    3.4)进入libpng目录(我的是/usr/src/libpng-1.5.13/),执行命令 ./configure --prefix=/usr/local/png;

    3.5)make && make install;

(4)重新编译php,这时增加参数--with-png-dir=/usr/local/png。

10.再次编译,遇到问题:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

(1)去网站http://mcrypt.hellug.gr/lib/index.html 的下载源码,我下的版本是libmcrypt-2.5.7.tar.gz;执行命令:sudo tar -zxvf libmcrypt-2.5.7.tar.gz -C /usr/src

(2)进入/usr/src/libmcrypt-2.5.7目录,sudo方式执行命令:./configure prefix=/usr/local/libmcrypt/;make ;make install

(3)重新编译php,这时增加参数--with-mcrypt=/usr/local/libmcrypt

11.再次编译,就没有遇到问题了,虽然显示了configure: WARNING: unrecognized options: --enable-freetype,但结果依然是Thank you for using PHP. 此时的编译php的参数如下:

(1)sudo ./configure --prefix=/usr/local/php --enable-fpm  --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysqli --with-mysql-sock --with-gd --enable-gd-native-ttf  --enable-pdo --with-pdo-mysql --with-gettext --with-curl --with-pdo-mysql --enable-sockets --enable-bcmath --enable-xml --with-bz2 --enable-zip --enable-freetype --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-curl=/usr/local/curl --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png --with-mcrypt=/usr/local/libmcrypt --with-apxs2=/usr/local/apache2/bin/apxs

(备注:一定要加这个 apxs - APache eXtenSion tool 用来制作apache的扩展模块DSO,要使用这个工具,安装apache的时候就必须添加enable-so以支持DSO. 如果没有这个的话apache是只会解析静态页面的,第一次编译时没加,怎么配置都不行,第二次加了该选项重新编译以后就都OK了。)

(2)sudo make

(3)sudo make install

12.为了在命令行可以直接使用php命令,编辑 sudo vim /etc/environment,将php的bin目录路径添加进去,我的是/usr/local/php/bin,然后reboot机器

13.为了使Apache支持PHP,解决办法:

(1)进入apache配置目录,执行命令:cd /usr/local/apache2/conf。 编辑文件:sudo vim httpd.conf

(2)查找字符串AddType,并增加

AddType application/x-httpd-php .php .php3 .htm .phtml .php4

AddType application/x-httpd-php-source .phps

添加LoadModule php5_module modules/libphp5.so #如果存在就不必要了

然后重启apache使配置生效

(3)查找字符串DirectoryIndex,并修改为 DirectoryIndex index.html index.php3 index.php default.php

14. 修改php配置.

(1)进入php源码目录,选择php.ini-development复制一份到/usr/local/lib,并改名为php.ini使用vim打开,查找extension_dir,修改为extension_dir = "D:/php/php5/ext",读      者根据自己的目录结构配置,目的是找到和php.ini同目录下的ext文件夹中的扩展库。

(2)查找extension=php_,去掉extension=php_curl.dll,extension=php_gd2.dll,extension=php_mbstring.dll,extension=php_mysql.dll,extension=php_mysqli.dll,extension=php_pdo_mysql.dll,extension=php_xmlrpc.dll前面 的分号。查找short_open_tag = Off把它修改成short_open_tag = On,让其支持短标签(我看注释这个默认是打开的)。

Php.ini配置完成

配置apache的config

15.查找字符串DocumentRoot,可以设置Apache虚拟根目录

16.查找字符串ServerAdmin,并修改成自己的邮箱

17.在apache根文件中增加一个test.php文件,<?php phpinfo(); ?>,然后访问127.0.0.1/test.php,查看结果。

自己用的编译版本

./configure

--profix=/user/local/php

--with-apxs2=/usr/local/apache/bin/apxs

--with-config-file-path=/usr/local/PHP/etc

--with-mysql=/usr/local/mysql

--with-mysqli=/usr/local/mysql/bin/mysql_config

--with-libxml-dir= #libxml目录

--with-zlib-dir= #zlib目录

--enable-sysvsem

--enable-sockets

--enable-pcntl

--enable-mbstring

--enable-mysqlnd

--enable-opcache

--enable-shmop

--enable-zip

--enable-ftp

--enable-gd-native-ttf

--enable-wddx

--enable-soap

--enable-fpm

附录:网上找的php各个版本的编译参数如下。

Fast-CGI:

./configure --prefix=/usr/local/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql --with-xml --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-mbstring

PHP4-Server:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-config-file-path=/etc --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --enable-mbstring

PHP4-Max:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --with-openssl=/usr/local/openssl-0.9.7e --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --with-inifile --with-hyperwave --enable-xml --enable-track-vars --enable-dba --enable-dbase --enable-filepro --enable-ftp --enable-versioning --enable-memory-limit --enable-calendar --enable-session --enable-sockets --enable-sysmsg --enable-sysvsem --enable-sysvshm --enable-tokenizer --enable-overload --enable-ctype --enable-sigchild --enable-magic-quotes --enable-roxen-zts --enable-fastcgi --enable-dbx --enable-dio --enable-shmop --enable-mbstring

PHP5-Server:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir --with-libxml-dir --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --with-mysql=/usr/lib/mysql --with-config-file-path=/etc --disable-ipv6 --enable-gd-native-ttf

PHP5-Standard:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-openssl=/usr/local/openssl-0.9.7e --with-zlib --with-bz2 --with-tiff-dir --with-libxml-dir --enable-dio --enable-ftp --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-bz2-dir --with-ttf --enable-mbstring --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --disable-ipv6 --enable-gd-native-ttf

PHP5-Max:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-openssl=/usr/local/openssl-0.9.7e --with-zlib --with-bz2 --with-tiff-dir --with-libxml-dir --enable-dio --enable-ftp --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-bz2-dir --with-ttf --with-inifile --enable-dba --enable-dbase --enable-filepro --enable-versioning --enable-memory-limit --enable-calendar --enable-sockets --enable-sysvsem --enable-sigchild --enable-magic-quotes --enable-roxen-zts --enable-fastcgi --enable-dbx --enable-shmop --enable-mbstring --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --disable-ipv6 --enable-gd-native-ttf

时间: 2024-10-26 21:26:31

CentOS 下编译安装PHP的相关文章

centos 下编译安装mysql5.1与mysql5.5

mysql5.1.60编译安装 1.tar -zxvf mysql* 2../configure 之前要make clean ./configure --prefix=/home/shk/mysql-5.1.60 \ --enable-local-infile \ --with-unix-socket-path=/home/shk/mysql-5.1.60/var/mysql.sock \ --with-tcp-port=5506 \ --enable-thread-safe-client \

centos下编译安装LNMP环境

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持. PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回. Nginx和PHP-FPM的组合,是一种稳定.高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少. 二.依赖环境 yum -y install gcc gcc-c++ make cmake automake au

转:在CentOS下编译安装GCC

转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观  14 次吐槽 我们知道,关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2:CentOS 6 是 4.4.7:CentOS 7 是 4.8.3.很多时候在编译安装软件都需要高版本的 GCC,否则就会报错.那么如何升级 GCC 的版本呢? 首先要确认升

[转载]CentOS下编译安装Python2.7.6

时间 2014-05-07 16:57:53 Mitchell Chu's Blog 原文  http://blog.useasp.net/archive/2014/05/07/compile-and-install-python-2-dot-7-dot-6-on-centos.aspx 主题 Python Centos Linux命令 CentOS下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本.这篇是编译和安装Pyt

在centos下编译安装配置高性能Nginx

安装nginx的依赖包:pcre, pcre-devel 编译nginx事实上需要的依赖包是pcre-devel,可以执行yum install pcre-devel 安装它.不过这个包的编译安装很简单,正好我们拿它练练手,熟悉熟悉linux编译安装软件的一般过程. [tips] linux下从源码编译安装软件一般是三步:配置.编译.安装.具体一点说就依次是执行三条命令:configure, make, make install. 不多讲理论,实际操作一下就明白了. 在build目录下创建子目录

centos下编译安装MySQL5.7.16

一.简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语言是用

CentOS下编译安装Apache(httpd)

官网下载最新版本的apache, apr, apr-util http://httpd.apache.org/download.cgi#apache24 http://apr.apache.org/download.cgi VirtualBox下CenOS6.4 apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz httpd-2.4.16.tar.gz 1 安装gcc yum install gcc 2 安装apr ./configure make && make

CentOS下编译安装Nginx

1.什么是Nginx Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用. 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易. 腾讯,另外知名的微网志Plurk也使用

CentOS下编译安装Gcc-4.9

给公司测试服务器搭环境,手工安装gcc-4.9.0颇费功夫,记录如下. 1.安装gcc.g++,系统源默认安装版本为4.4.7: 2.安装依赖包GMP.MPFR.MPC,注意安装顺序: 3.修改动态库链接路径,加入GMP.MPFR.MPC; 4.编译安装Gcc-4.9,新创建目录gcc-build来存放Make过程产生文件: 5.拷贝Gcc-4.9的头文件至目录/usr/include/c++: 6.修改LD_LIBRARY_PATH.PATH和CPLUS_INCLUDE_PATH: 7.建立新

radhat/centos 下编译安装ruby

#安装编译环境 yum groupinstall "Development tools" 或者 yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel gette