php源码安装,并配置apache支持php

一、php安装准备环境

yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y

这个用yum 不一定可以顺利下载,所以选择源码安装:

tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd ../

在centos7的状态下安装的时候报错了,解决方法:http://blog.csdn.net/zsl10/article/details/52143713,在1010行

二、开始安装

./configure \
--prefix=/application/php5.3.27 \
--with-apxs2=/application/apache/bin/apxs \     #指定apache的bin/apxs路径,通过apxs来增加php扩展模块到apache中
--with-mysql=/application/mysql \               #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-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir

编译时遇到的问题:

1) Cannot find OpenSSL's <evp.h>
yum install openssl openssl-devel
这个不一定需要#ln -s /usr/lib64/libssl.so /usr/lib/

2)configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
yum -y install libxslt-devel

php的配置文件,php.ini-development php.ini-production 一个用于开发环境,一个用于生产环境,两者的区别主要有错误日志是否打开,如在开发环境可以打开,便于开发人员查看,生产环境不要打开,如果被黑客看见就会出现问题

拷贝php配置文件到php默认目录并更改文件名为php.ini

[root@server php-5.3.27]# cp php.ini-production /application/php/lib/php.ini

三、配置apache支持php

[root@server conf]# vim httpd.conf

1)311行,为了解析php页面
    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps

2)为了安全  
[root@server conf]# useradd www -M -s /sbin/nologin 
68 User www
69 Group www
        
3)默认的首页文件
168 <IfModule dir_module>
169     DirectoryIndex index.php  index.html
170 </IfModule>

四、检验

1)检验apache与PHP是否正常
vim index.php
<?php
        phpinfo();
?>
       
2)检验php与数据库是否正常       
<?php
        //$link_主机名','用户','密码');
        $link_localhost','root','oldboy123') or mysql_error();

        if($link_id){
                echo "mysql successful by oldboy !";
        }else{
                echo mysql_error();
        }
?>