php编译安装
2017-01-01 17:59
232 查看
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
说明:我使用的是解决方法二
## 安装
[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
2、要去编辑配置文件/usr/local/apache2/conf/httpd.conf,查看一下有没有AddType和libphp5.so
## 查看模块内容
[root@localhost php-5.3.28]# ldd /usr/local/apache2/modules/libphp5.so
3、看看selinux关没关
4、看看php脚本是否正确
5、若解析不了,检查也都没错,最好再重启一下 /usr/local/apache2/bin/apachectl restart,再看解析是否成功
6、也查看一下日志
############################################################
## 解析成功
[root@localhost php-5.3.28]# curl localhost/1.php
wyy x linux
## 下载包源码包
[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
说明:我使用的是解决方法二
## 安装
[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
2、要去编辑配置文件/usr/local/apache2/conf/httpd.conf,查看一下有没有AddType和libphp5.so
## 查看模块内容
[root@localhost php-5.3.28]# ldd /usr/local/apache2/modules/libphp5.so
3、看看selinux关没关
4、看看php脚本是否正确
5、若解析不了,检查也都没错,最好再重启一下 /usr/local/apache2/bin/apachectl restart,再看解析是否成功
6、也查看一下日志
############################################################
## 解析成功
[root@localhost php-5.3.28]# curl localhost/1.php
wyy x linux
相关文章推荐
- [伊达原创]FreeBSD8.0源码编译安装MYSQL5 APACHE2.2 PHP5.3.2
- CentOS 4.4 编译安装 apache 2.2.4(mod_ssl)+php 5.2.1 wi
- LAMP搭建之三:php编译安装
- linux通过重新编译php来安装php-soap
- php 5.3.0 red hat enterpirse 编译安装全过程 包括出错,除错
- Red Hat Linux 9下的Mysql5.0.19+Apache 2.2.0 + PHP 5.1.2+GD库源码编译安装过程
- 在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
- centos 5.0 编译安装apache 2.2.6 php5.2.5 mysql5.0.46 Z
- php编译安装参数
- 对php编译安装的修正
- CentOS 下源码编译安装apache+php+mysql
- linux下编译安装php的参数
- PHP安装问题:编译安装php5.2.0时出错解决方案
- Redhat EL 5.3上安装Cacti(3)- 编译安装并配置PHP
- 编译安装apache2+php5+mysql4+ZendOptimizer+Cronolog简易文档
- 手工编译安装php后,重启apache时,libphp5.so: cannot restore segment prot after reloc: Permission denied 错误的解决办法
- 在FreeBSD上编译安装PHP加速器:eAccelerator
- linux下安装php编译参数
- ubuntu 8.04 编译安装 php mysql apache
- 在Linux操作下如何编译安装php&mysql&apache