php安装


## 下载包源码包

[root@localhost src]# wget http://cn2.php.net/distributions/php-5.3.28.tar.gz

## 解压缩

[root@localhost src]# tar zxf php-5.3.28.tar.gz

[root@localhost src]# cd php-5.3.28

## 初始化

[root@localhost php-5.3.28]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6

apxs2(它是perl语言写的)依赖于apache,实现自动配置扩展模块。php是httpd的一个动态模块也会放到/apache2/modules/目录下与.so文件为同一级别。虽然模块存在该目录下,还需要加入一行配置指定路径进行加载,此操作就是由apxs2所指定的工具完成的。

--with-mysql= 依赖于mysql

ERROR:解决方案

##############################################################

## error: xml2-config not found. Please check your libxml2 installation.

## yum install -y libxml2-devel

##

## error: Cannot find OpenSSL's <evp.h>

## yum install -y openssl openssl-devel

##

## error: Please reinstall the BZip2 distribution

## yum install -y bzip2 bzip2-devel

##

## error: jpeglib.h not found.

## yum install libjpeg-devel -y

##

## error: png.h not found.

## yum install -y libpng libpng-devel

##

## error: freetype.h not found.

## yum install -y freetype freetype-devel

##

## error: mcrypt.h not found. Please reinstall libmcrypt.

## yum -y install epel-release #安装扩展源,否则找到一下包

## [root@localhost php-5.3.28]# yum list |grep -i mcrypt

## libmcrypt-devel.i686 2.5.8-9.el6 epel

## libmcrypt-devel.x86_64 2.5.8-9.el6 epel

## yum install -y libmcrypt-devel

##

## # 查看安装包有那些文件

## rpm -ql bzip2-devel

##############################################################

## 安装成功

Thank you for using PHP.

[root@Lx php-5.3.28]# echo $?

0

## 将.c文件gcc成可执行文件

[root@localhost php-5.3.28]# make

php编译安装_php

说明:我使用的是解决方法二

## 安装

[root@localhost php-5.3.28]# make install

## 写一个简单的php程序进行测试

[root@localhost php-5.3.28]# vim /tmp/1.php

<?php

echo "wyy x linux";

echo "\n";

?>

## 通过可执行文件bin/php解析程序

[root@localhost  php-5.3.28]# /usr/local/php/bin/php /tmp/1.php

wyy linux

## 查看php加载了那些模块

[root@localhost php-5.3.28]# /usr/local/php/bin/php -m

[PHP Modules]

......

gd 验证码

[Zend Modules]

## 查看php配置参数

[root@localhost php-5.3.28]# /usr/local/php/bin/php -i

## 拷贝php配置文件模板

[root@localhost php-5.3.28]# cp /usr/local/src/php-5.3.28/php.ini-production /usr/local/php/etc/php.ini

php.ini-development测试、开发环境

php.ini-production生产环境

## 自动加载配置文件

[root@localhost php-5.3.28]# /usr/local/php/bin/php -i |grep -i configuration

Loaded Configuration File => /usr/local/php/etc/php.ini

## 查看apache配置文件

[root@localhost php-5.3.28]# cat /usr/local/apache2/conf/httpd.conf|grep LoadModule

LoadModule php5_module        modules/libphp5.so

## 查看已加载模块是否存在php5_module

[root@localhost php-5.3.28]# /usr/local/apache2/bin/apachectl -M

Loaded Modules:

......

php5_module (shared)

Syntax OK


测试php解析


## 配置php解析

[root@localhost php-5.3.28]# vim /usr/local/apache2/conf/httpd.conf

    AddType application/x-gzip .gz .tgz #在这行下添加以下内容

    AddType application/x-httpd-php .php

<IfModule dir_module>

    DirectoryIndex index.html index.php #此模块中添加index.php

</IfModule>

## 检查配置语法重新加载配置文件

[root@localhost php-5.3.28]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@localhost php-5.3.28]# /usr/local/apache2/bin/apachectl restart

## 测试php解析

[root@localhost php-5.3.28]# mv /tmp/1.php /usr/local/apache2/htdocs/

[root@localhost php-5.3.28]# cat /usr/local/apache2/htdocs/1.php

<?php

echo "wyy x linux";

echo "\n";

?>

# php测试程序

<?php

phpinfo();

?>

解释说明:

当把这个脚本,在网页上去查看的时候,会看到好多配置信息及加载的模块,通过这个可以用来排查一些错误

#########当你遇到不能解析的时候,要通过这几方面去排查###########

1、看一看apache有没有加载php 

php编译安装_php_02

2、要去编辑配置文件/usr/local/apache2/conf/httpd.conf,查看一下有没有AddType和libphp5.so

php编译安装_php_03

php编译安装_php_04

php编译安装_php_05

## 查看模块内容

[root@localhost php-5.3.28]# ldd /usr/local/apache2/modules/libphp5.so

3、看看selinux关没关

php编译安装_php_06

4、看看php脚本是否正确

5、若解析不了,检查也都没错,最好再重启一下 /usr/local/apache2/bin/apachectl restart,再看解析是否成功

6、也查看一下日志

############################################################

## 解析成功

[root@localhost php-5.3.28]# curl localhost/1.php

wyy x linux