• Linux PHP5.3升级PHP5.5.33 (CentOS)


    由于要使用了laravel5.1,php要升级到5.5以上。具体环境是Aliyun Cent OS 7.0。由于阿里的yum源lastest只有5.4,laravel5.1必须php5.5,加了几个网上的yum源,各种各样的问题,所以只能麻烦的编译安装了。

    首先网上这类的文章非常多,每个人的升级目的,要升级的组件都不完全一样。最好的说明文档还是官方安装文档,如果php官网的安装失败,再去搜索相关问题。我最终靠的是官网上Apache 2.x on Unix systems这篇文档。

    1.下载

    http://php.net/downloads.php

    1 wget http://cn2.php.net/get/php-5.5.33.tar.gz/from/this/mirror
    2 #下载完改一下名字
    3 mv mirror php-5.5.33.tar.gz
    4 tar -zxf php-5.5.33.tar.gz php-5.5.33
    5 cd php-5.5.33

    2.编译安装

    #这一步出错了#############################
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
    #这一步出错率#############################

    我在--with-apxs2=/usr/local/apache2/bin/apxs这一步出了问题,去掉这个参数即使安装也是不行,这个参数编译出libphp5.so并用在httpd.conf中,find / -name apxs2搜不到结果。我找了很久,发现是我的apache有问题,不知道为什么5.3的时候没有这个问题(不管了)。

    yum install httpd-devel

    虽然apxs2还是没有,但能找到apxs了:

    1 find / -name apxs2
    2 find / -name apxs
    3 /usr/bin/apxs

    接下来几步一点点来,比较耗时:

    1 ./configure --with-apxs2=/usr/bin/apxs --with-mysql
    2 make
    3 make install

    #之后发现单独编译pdo_mysql扩展有问题,换了这句重新编译
    #./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/bin/apxs
    #用下面这句,后面最方便,把Laravel依赖的PDO,openssl,tokenizer都自动装上了,只有mbsting需要手动编译。
    #./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
    #--with-apxs2=/usr/sbin/apxs --with-openssl --with-curl

    得到类似结果为安装成功:

    Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20121212/
    ...
    ...
    ...
    Wrote PEAR system config file at: /usr/local/etc/pear.conf
    You may want to add: /usr/local/lib/php to your php.ini include_path
    /usr/local/src/php-5.5.33/build/shtool install -c ext/phar/phar.phar /usr/local/bin
    ln -s -f phar.phar /usr/local/bin/phar
    Installing PDO headers:          /usr/local/include/php/ext/pdo/

    3.配置

    复制php.ini

    #这个位置一定不能错,编译.configure的时候我没有制定php.ini的位置,默认就是这里,
    #如果跳过这一步,后面不会出问题,但是你将来该php.ini,比如安装扩展什么的,去修改/etc/php.ini(你原来的)的话都是无效的。
    cp php.ini-development /usr/local/lib/php.ini
    #这里我建议把原来的php.ini改掉,这样不会影响以后的find
    #你的原来不一定是这里,建议find一下
    mv /etc/php.ini /etc/php.ini.back

    修改httpd.conf

    find / -name httpd.conf
    vi /etc/httpd/conf/httpd.conf
    #加入这两句(310行左右)
    AddType application/x-httpd-php .php .php3 .phtml .inc
    AddType application/x-httpd-php-source .phps
    #可能是升级的原因,这一句我本来就有,没有要加(50行左右)
    LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so

    重启apache:

    service httpd restart

    测试一下:

    php -v

    新建一个phpinfo.php访问一下:

    <?php
    echo phpinfo();

    结果完美:

    可以需要安装一些依赖,如gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap,这些就交给yum吧。

    dreamingodd原创文章,如转载请注明出处。

  • 相关阅读:
    ACE admin 后台管理框架
    HTML5 respond.js 解决IE6~8的响应式布局问题
    JS/JQ常见兼容辅助插件
    DEDECMS之十 修改织梦链和文章的默认来源及作者
    怎么在网站嵌入百度搜索框
    【python进阶】深入理解系统进程1
    BugkuCTF SQL注入1
    BugkuCTF 域名解析
    BugkuCTF sql注入
    BugkuCTF web3
  • 原文地址:https://www.cnblogs.com/dreamingodd/p/5338814.html
Copyright © 2020-2023  润新知