zoukankan      html  css  js  c++  java
  • How to install / setup /upgrade PHP 5.5.x on Ubuntu 12.04 LTS

    原文:http://www.dev-metal.com/how-to-setup-latest-version-of-php-5-5-on-ubuntu-12-04-lts/

    最近遇到了要在ubuntu 12.04 上升级php版本的问题,下面是升级php到最新的版本的方法:

    Please note: This works fine. But this package will also upgrade your apache to version 2.4 which has different config files than apache 2.2 and even deletes stuff, like /etc/apache2/sites-available/default when upgrading. This may result in a loss of your apache settings (vhost, mod_rewrite stuff etc.). Be aware of that ! This shit cost me a full weekend. This affects only upgrades, not fresh installs for sure.Update: This is a known bug (more here), I’ll keep this post updated…

    How to install

    There’s an excellent and (usually) hassle-free method to install the latest version of PHP5 (which is 5.5.3 when i’m writing this) with 3 simple bash commands:

    1. Add this package-repository to your system. If Ubuntu says that you need to download a key first, then follow the instructions given in the notice.

    sudo add-apt-repository ppa:ondrej/php5

    If you get an error message now, then please do an update first and install the python-software-properties, that need to be necessary to add a package repository:

    Advertisement
     
    sudo apt-get update
    sudo apt-get install python-software-properties

    2. Update

    sudo apt-get update

    3. Install PHP

    sudo apt-get install php5

    Check the installed version of PHP via

    php5 -v

    Please note: The ondrej/php5 repository (which is used here) provides the very latest version of PHP. Usually the new version of PHP is available a few days after it was been officially released. This is really cool and a big step forward as Ubuntu, Debian, CentOS etc. provide only very old versions by default.
    [wp_ad_camp_2]

    To UPDATE from PHP 5.3 / 5.4 to PHP 5.5:

    It’s also possible to update from any PHP version to the latest one with exactly the commands above. But, after doing

    sudo apt-get install php5

    you’ll have to restart the server with

    sudo /etc/init.d/apache2 restart

    or

    sudo service apache2 restart

    By the way, I’ve also written a tutorial on “How to setup latest version of PHP 5.5 on Debian Wheezy 7.0/7.1/7.2 (and how to fix the GPG key error)“, which is different from this here.

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    嘿嘿,照上面的更新之后可能会遇到问题,nginx 502 bad gateway错误,我就遇到了,下面的stack overflow上面的回答,完美解决!!

    120down voteaccepted

    If anyone finds this page by encountering the same problem I had, I found the answer here:http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-lemp-on-ubuntu-12.04-lts

    For those of you who can't be bothered to click and work it out for themselves... ;)

    The Condition:

    Ubuntu or Debian server with NGINX and PHP 5.3 works fine but upgrading PHP to 5.4 gives 502 Bad Gateway errors. Looking for services running on port 9000 (typically running netstat -lp or similar) returns nothing.

    The fix:

    Open /etc/php5/fpm/pool.d/www.conf and make a note of the 'listen' parameter (in my case /var/run/php5-fpm.sock):

    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
    ;                            a specific port;
    ;   'port'                 - to listen on a TCP socket to all addresses on a
    ;                            specific port;
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    listen = /var/run/php5-fpm.sock

    and replace the fastcgi_pass variable in your vhost with the location you just noted.

    So this sample symfony2 configuration (taken from here: http://wiki.nginx.org/Symfony):

      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      location ~ ^/(app|app_dev).php(/|$) {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_split_path_info ^(.+.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  HTTPS              off;
      }

    becomes this:

      # pass the PHP scripts to FastCGI server at /var/run/php5-fpm.sock
      location ~ ^/(app|app_dev).php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  HTTPS              off;
      }

    Then restart nginx:

    sudo /etc/init.d/nginx restart

    Note: replace ~ ^/(app|app_dev).php(/|$) { with ~ ^/index.php(/|$) { if you're not on SF2**

    Hope this saves someone a little bit of time :)

    Edit

    Of course, you could change the listen = /var/run/php5-fpm.sock to listen = 127.0.0.1:9000 in /etc/php5/fpm/pool.d/www.conf then restart php5-fpm (which would save you from having to change your vhosts), but you have to assume they changed php5-fpm to run through a socket rather than listening on port 9000 for a reason.

    Edit2

    If you're still experiencing 502 error see this answer: nginx error connect to php5-fpm.sock failed (13: Permission denied)

  • 相关阅读:
    15款经典图表软件推荐 创建最漂亮的图表
    CSS+JS打造的自适应宽度的滑动门和选项卡
    兼容多浏览器的加入收藏代码
    指针与引用深层次的区别
    反编译winform资源文件
    程序创业必过三关
    自动ping博客服务程序
    C#批量加水印程序
    C#应用程序随机启动
    失败降临是命中注定
  • 原文地址:https://www.cnblogs.com/oxspirt/p/4788628.html
Copyright © 2011-2022 走看看