# 安装php程序环境
>[info] **注意:**安装php之前,需要保证apache和mysql的安装
[TOC]
## 检查apache及MySQL的安装情况
**检查安装路径**
`ls -ld /usr/local/mysql`
`ls -ld /usr/local/apache`
**检查端口占用**
`netstat -tunpl|grep '3306|80'`
**测试访问情况**
`/usr/loca/apache/bin/apachectl -v`
`wget 127.0.0.1`
`curl -I localhost`
## 检查安装php所需lib库文件
php程序在开发时会调用一些诸如GD等函数库,因此需要确认下面的lib库是否已经安装。
`rpm -qa libxml libjpeg freetype gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel`
也可以执行`rpm -qa zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel`安装所需依赖库文件头信息。
## 安装libiconv库
~~~
mkdir -p /application/tools
cd /usr/local/src && wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xf libiconv-1.14.tar.gz && cd libiconv-1.14
./configure --prefix=/application/tools/libiconv-1.14
make && make install
~~~
**创建软连接(编译php时会使用到该路径)**
`ln -s /application/tools/libiconv-1.14 /usr/local/libiconv`
## 开始安装php
### 获取稳定版本php
~~~
cd /usr/local/src && wget -O php-5.6.16.tar.gz http://cn2.php.net/get/php-5.6.16.tar.gz/from/this/mirror
tar xf php-5.6.16.tar.gz && cd php-5.6.16
./configure \
--prefix=/application/tools/php5.6.16 \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir
make && make install
~~~
>[info] 特别说明,加入以下三个参数为了使用`nagios`的PHP环境。
他们分别是 `--enable-sigchild --enable-pcntl --enable-bcmath`
## 配置php
~~~
ln -s /application/tools/php5.6.16 /usr/local/php
ls -l /usr/local/php
~~~
### 拷贝适合的php.ini配置文件
`cd /usr/loca/src/php-5.6.16/php.ini-production /application/tools/php5.6.16/lib/php.ini`
## apache支持php
### 修改apahce配置文件
~~~
cd /usr/local/apache/conf && cp httpd.conf httpd.conf.$(date +%Y%m%d)
vim http.conf
# 加入如下代码
AddType application/x-httpd-php .php .phtml
~~~
### 检查并重载apache配置
~~~
apachectl -t
apachectl graceful
netstat -tunpl|grep 80
~~~