编译安装php,带php-fpm

作者: wiflish 分类: 技术 发布时间: 2014-03-23 00:21 ė 6没有评论

转自:http://www.cnblogs.com/alexqdh/archive/2012/11/20/2776017.html

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

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

3.执行./configure –prefix=/usr/local/php –enable-fpm  –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 –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

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 -zxvf libpng-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

然后重启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,让其支持短标签(我看注释这个默认是打开的)。

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

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

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

 

附录:网上找的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

 

参考网址:

http://blog.163.com/lcnetwork@126/blog/static/1170868762011593131831/

http://www.cnblogs.com/amboyna/archive/2008/07/13/1241961.html

http://www.cnblogs.com/neve/articles/1989352.html

http://blog.chinaunix.net/uid-23095063-id-163167.html

http://www.habadog.com/2012/02/07/install-curl-ext-with-php-source-code-in-linux/

http://www.oschina.net/question/17_10674

http://www.cnblogs.com/1110111abc/archive/2012/09/22/2698259.html

http://blog.163.com/lcnetwork@126/blog/static/117086876201159355861/

http://blog.sina.com.cn/s/blog_61aed0450100sr5k.html

http://www.jb51.net/article/24691.htm

(转载时请注明作者和出处。未经许可,请勿用于商业用途)

本文出自 Wiflish's Blog,转载时请注明出处及相应链接。

本文永久链接: http://wiflish.fyard.com/archives/13

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部