首页 » 性感的程序员 » linux 编译安装 PHP

linux 编译安装 PHP

操作系统: ubuntu 14.04
Server version: Apache/2.4.7 (Ubuntu)

1.准备工作

  • 下载 PHP 源码包

直接到官网下载: http://php.net/downloads.php

然后进入下载目录,解压源码包:

tar -zxvf php-5.6.5.tar.gz
  • 安装依赖包
sudo apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

这里只列举了大部分所需要的依赖包.若缺乏依赖,则会直接导致编译失败.更多依赖包查看 <<编译安装PHP过程中的 CONFIGURE:ERROR>>

2.编译安装

cd php-5.6.0

sudo ./configure \
--prefix=/etc/php5 \
--with-config-file-path=/etc/php5/config \
--with-apxs2=/usr/bin/apxs \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-opcache \
--enable-fpm \
--with-fpm-user=jh \
--with-fpm-group=jh \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-readline

更多编译参数可以通过 ./configure --help 查看,下面是更详细的参数说明:

--prefix=/etc/php //指定 php 安装目录 
--with-apxs2=/usr/bin/apxs //整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
--with-config-file-path=/usr/local/php/etc //指定php.ini位置
--with-MySQL=/usr/local/mysql //mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config //mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。 
--enable-safe-mode 打开安全模式 
--enable-ftp 打开ftp的支持 
--enable-zip 打开对zip的支持 
--with-bz2 打开对bz2文件的支持 
--with-jpeg-dir 打开对jpeg图片的支持 
--with-png-dir 打开对png图片的支持 
--with-freetype-dir 打开对freetype字体库的支持 
--without-iconv 关闭iconv函数,各种字符集间的转换 
--with-libXML-dir 打开libxml2库的支持 
--with-XMLrpc 打开xml-rpc的c语言 
--with-zlib-dir 打开zlib库的支持 
--with-gd 打开gd库的支持 
--enable-gd-native-ttf 支持TrueType字符串函数库 
--with-curl 打开curl浏览工具的支持 
--with-curlwrappers 运用curl工具打开url流 
--with-ttf 打开freetype1.*的支持,可以不加了 
--with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 
--with-gettext 打开gnu 的gettext 支持,编码库用到 
--with-pear 打开pear命令的支持,PHP扩展用的 
--enable-calendar 打开日历扩展功能 
--enable-mbstring 多字节,字符串的支持 
--enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets 打开 sockets 支持
--enable-exif 图片的元数据支持 
--enable-magic-quotes 魔术引用的支持 
--disable-rpath 关闭额外的运行库文件 
--disable-debug 关闭调试模式 
--with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置

指定了--with-apxs2=/usr/local/apache/bin/apxs以后, 就不要再激活--enable-fpm和--enable-fastCGI, apxs 是一个为 Apache HTTP 服务器编译和安装扩展模块的工具, 以php module的模式加载PHP的. 其中 /usr/bin/bin/apxs 是 apxs 的工作文件路径.

在 ubuntu 中使用 apt-get 按装的 apache2 ,可能没有安装 apxs 模块.这时可通过命令 sudo apt-get install apache2-dev 安装,安装完成之后,apxs工具默认会安装在目录 /usr/bin/ 里面.

然后使用 make 命令编译:

sudo make
sudo make install

如果想重新安装:

sudo make clean
sudo make clean all

sudo ./configure ...
sudo make
sudo make install

安装过程中可能会出现很多错误,基本你是因为缺乏依赖包.具体请参考之前说到的 <<编译安装PHP过程中的 CONFIGURE:ERROR>>.

3.配置PHP

编译完成后会显示各种配置路径信息,可以记住这些信息.除此还一个提示: You may want to add: /etc/php5/lib/php to your php.ini include_path.

  • 配置php.ini :
sudo cp php.ini-development /etc/php5/etc/php.ini
  • 启动 php-fpm 服务
sudo cp /etc/php5/etc/php-fpm.conf.default /etc/php5/etc/php-fpm.conf
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm5
sudo chmod +x /etc/init.d/php-fpm5
service php-fpm5 start
  • 添加 php 命令到环境变量
sudo vim /etc/profile

在文件末尾加上如下两行代码

PATH=$PATH:/etc/php5
export PATH 

然后执行命令 source /etc/profile 或执行点命令 ./profile 使其修改生效,执行完可通过echo $PATH命令查看是否添加成功.

  • 最后通过 php -v 命令查看是否编译成功:
php -v
PHP 5.6.5 (cli) (built: Feb  3 2015 01:50:38) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies