CentOS 5.6一直没发布,CentOS 5.5的PHP5.1.6不支持json/hash,因为正研究Postfix+Dovecot邮件系统,webmail采用的 RoundCube
新版本(v0.5)要求PHP版本不小于5.2.1,于是决定编译安装最新版PHP。PHP前几天被入侵据说v5.3.6代码被污染,不过用来做研究测试应该没问题。
- 先卸载本机已经安装的PHP包,这些软件包将会通过接下来的编译方式安装,安装必须软件
# yum remove php php-\*
如果不需要pgsql数据库则可以去掉postgresql相关包
# yum install -y httpd-devel libtool-ltdl libtool-ltdl-devel openssl-devel curl-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel \
libc-client libc-client-devel gd gd-devel libmcrypt libmcrypt-devel \
sqlite sqlite-devel mysql-devel libicu libicu-devel pcre-devel \
postgresql84 postgresql84-libs postgresql84-server postgresql84-devel \
如果不安装 libtool-ltdl-devel编译时会出错,所以要么安装这个包要么执行以下命令:
# cd /usr/lib
# ln -s libltdl.so.3.1.4 libltdl.so
libicu是 --enable-intl Enable internationalization support 需要的包
如果需要pspell拼写支持需要下载编译安装以下两个文件( ./configure && make && make install)
ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz
ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-7.1-0.tar.bz2
网站是 http://aspell.net/
- 下载源代码到 src 目录并解压:
# cd /usr/local/src
# wget http://cn.php.net/get/php-5.3.6.tar.bz2/from/this/mirror
# tar -xjf php-5.3.6.tar.bz2
- 配置安装参数
./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu \
--target=i686-redhat-linux-gnu --with-apxs2=/usr/sbin/apxs \
--prefix=/usr/local --exec-prefix=/usr/local --with-exec-dir=/usr/local/bin \
--sysconfdir=/etc --libdir=/usr/local/lib/php --with-libdir=lib \
--sbindir=/usr/local/sbin --sharedstatedir=/usr/com --datadir=/usr/local/share \
--includedir=/usr/local/include --libexecdir=/usr/local/libexec \
--localstatedir=/var \
--mandir=/usr/local/share/man --infodir=/usr/local/share/info \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--with-pic --with-curl=shared --with-freetype-dir --with-png-dir \
--with-gettext --with-gmp --with-iconv --with-jpeg-dir --with-png-dir \
--with-openssl --with-layout=GNU --with-libxml-dir \
--with-pcre-regex=/usr \
--with-mcrypt=shared --with-mhash --with-zlib --with-bz2=shared \
--with-pdo-mysql --with-mysql --with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-pgsql --with-pdo-pgsql --with-sqlite=shared --with-pdo-sqlite=shared \
--enable-sqlite-utf8 --with-kerberos --with-imap --with-imap-ssl \
--with-pear --with-gd --enable-gd-native-ttf --enable-calendar=shared \
--enable-exif --enable-ftp --enable-sockets --enable-bcmath \
--enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-intl \
--enable-mbstring --enable-zend-multibyte --enable-zip \
--without-unixODBC --disable-tokenizer \
--enable-mbregex
--with-pspell=/usr/local \
如果未安装pspell,则删除最后一行。
非RHEL/CentOS系统可以省略 --build,--host,--target 参数,程序会自动判断(LINUX一般为i686-pc-linux-gnu)。如果没安装pgsql或者不需要pgsql的支持可以删除相关参数(共2个)。 bz2, calendar, curl, mcrypt, pdo_sqlite, sqlite 这些模块采用动态编译,可采用下面将会提到的方法加载。
- 编译并安装
# make && make install
安装结果摘要,里面有几个主要的安装路径变量
libtool: install: warning: remember to run `libtool --finish /usr/local/src/php-5.3.6/libs'
[activating module `php5' in /etc/httpd/conf/httpd.conf]
Installing PHP CLI binary: /usr/local/bin/
Installing PHP CLI man page: /usr/local/share/man/man1/
Installing shared extensions: /usr/local/lib/php/20090626/
Installing build environment: /usr/local/lib/php/build/
Installing header files: /usr/local/include/php/
Installing helper programs: /usr/local/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/share/man/man1/
Installing PEAR environment: /usr/local/share/pear/
貌似要运行一次libtool --finish ....,不过我运行后也没什么奇特效果~
- 更新httpd配置文件以便apache能解析php文件
# vim /etc/httpd/conf/httpd.conf
添加以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
- 如果在卸载原有PHP之前没备份php.ini文件,那么可以从PHP编译目录中把 php.ini-production 拷贝到 /etc目录下并改名为 php.ini
# mv /usr/local/src/php-5.3.6/php.ini-production /etc/php.ini
添加或者更新相关设置,比如:
extension_dir = "/usr/local/lib/php/20090626"
include_path = ".:/usr/local/share/pear"
# 以下六个模块可根据需要添加
extension = bz2.so
extension = calendar.so
extension = curl.so
extension = mcrypt.so
extension = pdo_sqlite.so
extension = sqlite.so
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
variables_order = "EGPCS"
register_globals = Off
register_long_arrays = Off
post_max_size = 30M
upload_max_filesize = 30M
mbstring.internal_encoding = UTF-8
date.timezone = Asia/Chongqing
- 测试结果。在 /var/www/html 下面新建一个文件 phpinfo.php ,里面包含内容
<?php
phpinfo();
?>
重启apache服务
# service httpd restart
然后在浏览器打开 http://localhost/phpinfo.php 或者 http://serv-ip
/phpinfo.php 文件查看php配置状况,这里ip地址为服务器地址
.
分享到:
相关推荐
在探讨CentOS 5.5(或5.6)上最新LNMP(Linux, Nginx, MySQL, PHP)环境的安装步骤时,我们聚焦于特定版本:PHP 5.3.6、Nginx 1.0.0以及MySQL 5.5.12。以下是对这些组件安装流程的深入解析,旨在为系统管理员和...
这部分详细介绍了如何在CentOS 5.5上安装MySQL数据库。首先通过Xmanager的xftp工具将MySQL压缩包传输到`/usr/local/src`目录下。接着创建MySQL相关的目录结构,如数据存储目录`/data/mysql/data`等,并设置正确的...
在32位CentOS 5.x/6.0操作系统中配置KMP(Kangle MySQL PHP)涉及多个步骤,包括MySQL数据库、PHP解释器以及Kangle Web服务器的源码编译安装。以下是对整个过程的详细讲解: 1. **MySQL 5.1.x 和 5.5.x 编译方法**...
- 在主管服务器上安装PrimetonBPS6.1企业版。 **5.3.5 安装被管BPS** - 在从服务器上安装PrimetonBPS6.1企业版。 **5.3.6 启动BPS的websphere集群** - 使用`startManager.sh`脚本启动主管服务器。 - 使用`...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf