一、PHP编译安装前首先要下载PHP源码包,下载地址:
http:/www.php.net/downloads.php
二、解压源码包:
tar -xzvf 下载下来的文件名
三、编译安装PHP:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv --with-zlib --with-openssl --with-mcrypt --with-curl --with-xmlrpc --with-mhash --with-pdo-mysql --with-mysql --with-mysqli --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --enable-zip --enable-soap --with-gettext --enable-session --enable-pdo --enable-fpm --disable-debug make && make install
四、复制PHP配置文件
cp php.ini-production /usr/local/php/etc/php.ini mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
五、启动php-fpm
/usr/local/php/sbin/php-fpm
【注】安装过程常见错误
错误1:Configure: error: xml2-config not found. Please check your libxml2 installation.
解决方法:yum install libxml2 libxml2-devel
错误2:Configure: error: libjpeg.(also) not found.
解决方法:yum install libjpeg libjpeg-devel
错误3:Configure: error: libpng.(also) not found.
解决方法:yum install libpng libpng-devel
错误4:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决方法:yum install libmcrypt libmcrypt-devel
错误5:configure: error: Cannot find OpenSSL’s <evp.h>
解决方法:yum install openssl openssl-devel
错误6:Configure: error: Please reinstall the BZip2 distribution
解决方法:yum install bzip2 bzip2-devel
【附】php安装核心配置选项列表
1、杂项选项
选项 | 说明 |
---|---|
--enable-debug | 编译时加入调试符号。 |
--with-layout=TYPE | 设置被安装文件的布局。TYPE 是 PHP(默认)或 GNU。 |
--with-pear=DIR | 在 DIR(默认为 PREFIX/lib/php)中安装 PEAR。 |
--without-pear | 不安装 PEAR。 |
--enable-sigchild | 使用 PHP 自带的 SIGCHLD 处理器。 |
--disable-rpath | 禁用在搜索路径中传递其他运行库。 |
--enable-libgcc | 启用 libgcc 的精确链接。 |
--enable-php-streams | 包含试验性的 PHP 流。不要使用此选项,除非是要测试代码! |
--with-zlib-dir[=DIR] | 定义 zlib 的安装目录。 |
--enable-trans-sid | 启用透明 session id 传输。仅适用于 PHP 4.1.2 或更低版本。PHP 4.2.0 以后,透明 sid 功能默认被编译其中。 |
--with-tsrm-pthreads | 使用 POSIX 线程(默认)。 |
--enable-shared[=PKGS] | 编译共享库 [default=yes]。 |
--enable-static[=PKGS] | 编译静态库 [default=yes]。 |
--enable-fast-install[=PKGS] | 为快速安装优化 [default=yes]。 |
--with-gnu-ld | 假设 C 编译器使用 GNU ld [default=no]。 |
--disable-libtool-lock | 避免锁死(可能破坏并联的编译)。 |
--with-pic | 尝试仅使用 PIC/非 PIC 对象 [default=use both]。 |
--enable-memory-limit | 编译内存限制支持功能。 |
--disable-url-fopen-wrapper | 禁用 URL 形式的 fopen 封装协议。该协议允许通过 HTTP 或者 FTP 访问文件。 |
--enable-versioning | 仅导出必须的符号。查看 INSTALL 文件以获得更多信息。 |
--with-imsp[=DIR] | 包含 IMSP 支持(DIR 是 IMSP 的 include 目录和 libimsp.a 所在目录)。此选项仅在 PHP 3 中有效! |
--with-mck[=DIR] | 包含 Cybercash MCK 支持。DIR 是 cybercash mck 的编译目录,默认为 /usr/src/mck-3.2.0.3-linux。更多帮助情查看 extra/cyberlib 内的文件。此选项仅在 PHP 3 中有效! |
--with-mod-dav=DIR | 通过 Apache 的 mod_dav 实现对 DAV 的支持。DIR 是 mod_dav 的安装目录 (仅对以 Apache 模块方式安装的 PHP 有效)。此选项仅在 PHP 3 中有效! |
--enable-debugger | 编译远程调试功能。此选项仅在 PHP 3 中有效! |
--enable-versioning | 利用 Solaris 2.x 和 Linux 提供的版本管理(versioning)和范围(scoping)。此选项仅在 PHP 3 中有效! |
2、PHP 选项
选项 | 说明 |
---|---|
--enable-maintainer-mode | 对偶然安装一下的情形启用此选项,使得不检查编译规则和依赖关系。 |
--with-config-file-path=PATH | 设置 php.ini 的搜索路径。默认为 PREFIX/lib。 |
--enable-safe-mode | 默认启用安全模式。 |
--with-exec-dir[=DIR] | 在安全模式时仅允许在 DIR 目录中执行。默认目录为 /usr/local/php/bin。 |
--enable-magic-quotes | 默认启用 magic quotes。 |
--disable-short-tags | 默认禁用短形式的开始标签 <? 。 |
3、SAPI 选项
选项 | 说明 |
---|---|
--with-aolserver=DIR | 指定 AOLserver 的安装路径。 |
--with-apxs[=FILE] | 编译共享的 Apache 模块。FILE 是可选的 Apache apxs 工具的路径,默认指向 apxs。请确认指定的 apxs 已经安装在服务器中,并且它不是 Apache 源码包中的那个 apxs。 |
--with-apache[=DIR] | 编译静态 Apache 模块。DIR 是 Apache 编译目录的顶层,默认为 /usr/local/apache。 |
--with-mod_charset | 启用 mod_charset 的转换表(俄文的 Apache 使用)。 |
--with-apxs2[=FILE] | 编译共享的 Apache 2.0 模块。FILE 是可选的 Apache apxs 工具的路径,默认指向 apxs。 |
--with-caudium=DIR | 为使用 Caudium 编译 PHP 为一个 Pike 模块。DIR 是 Caudium 服务器目录,默认为 /usr/local/caudium/server。 |
--disable-cli | PHP 4.3.0 之后的版本有效。禁止编译 PHP 的 CLI 版本(使用它将同时强制使用 --without-pear 选项)。更多信息请查考 PHP 的命令行模式。 |
--enable-embed[=TYPE] | 启用编译嵌入的 SAPI 库。TYPE 或者为 shared或者为 static,默认为 shared。PHP 4.3.0 之后的版本有效。 |
--with-fhttpd[=DIR] | 编译 fhttpd 模块。DIR 是 fhttpd 源代码目录,默认为 /usr/local/src/fhttpd。PHP 4.3.0 及以后的版本此选项不再有效。 |
--with-isapi=DIR | 为 Zeus 服务器以 ISAPI 模块方式编译 PHP。 |
--with-nsapi=DIR | 指定 Netscape/iPlanet/SunONE 的安装目录。 |
--with-phttpd=DIR | |
--with-pi3web=DIR | 为 Pi3Web 服务器编译 PHP 模块。 |
--with-roxen=DIR | 以 Pike 模块方式编译 PHP。DIR 是 Roxen 的根目录,默认为 /usr/local/roxen/server。 |
--enable-roxen-zts | 使用 Zend 线程安全(ZTS)编译 Roxen 模块。 |
--with-servlet[=DIR] | 包含 servlet 支持。DIR 是 JSDK 的安装目录。此 SAPI 要求 java 扩展必须作为共享模块编译到 PHP 中。 |
--with-thttpd=SRCDIR | 编译 PHP 为 thttpd 模块。 |
--with-tux=MODULEDIR | 编译 PHP 为 TUX 模块(仅在 Linux 下有效)。 |
--with-webjames=SRCDIR | 编译 PHP 为 WebJames 模块(仅在 RISC 操作系统中有效)。 |
--disable-cgi | 禁止编译 CGI 版本的 PHP。PHP 4.3.0 之后的版本有效。 |
--enable-force-cgi-redirect | 启用内部服务器重定向的安全检测。如果在 Apache 下使用 CGI 版本的 PHP,请启用该选项。 |
--enable-discard-path | 如果启用该选项,PHP CGI 目录可以安全的放在 web 目录树的外面,人们无法避开 .htaccess 的安全限制。 |
--with-fastcgi | 编译 PHP 为 FastCGI 应用程序。PHP 4.3.0 及以后的版本此选项不再有效,应该使用 --enable-fastcgi选项。 |
--enable-fastcgi | 如果启用,CGI 模块将被编译为支持 FastCGI。PHP 4.3.0 之后的版本有效。 |
--disable-path-info-check | 如果该选项被禁用,例如 /info.php/test?a=b形式的路径将不能工作。PHP 4.3.0 之后的版本有效。更多信息请参考 » Apache 手册。 |