设为首页 收藏本站
查看: 423|回复: 0

[经验分享] CentOS5.5上编译安装 PHP 5.3.6

[复制链接]

尚未签到

发表于 2017-4-3 13:15:36 | 显示全部楼层 |阅读模式
  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地址为服务器地址
  .

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-359634-1-1.html 上篇帖子: PHP函数_将HTML代码转为javascript代码,方便调用 下篇帖子: 服务器暂时无法响应您的请求 500 Internal Server Error
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表