PHP
Apache
EC2
FuelPHP
AmazonLinux

Amazon Linux AMIでPHPを5.3から5.4にアップグレードする方法 with FuelPHP

More than 3 years have passed since last update.

手順(インストール周り)

  • バックアップを取っておく

    mv /etc/httpd/conf/httpd.conf{,.bk}
    mv etc/php.ini{,.bk}
    
  • rootに変更

    su
    
  • 既存のphpとhttpdの削除

    yum remove php-* httpd-*
    
  • ApachとPHPをインストールする(※Amazon Linuxでは、PHP5.4とApache2.4はセットで使わないといけない)

    yum install httpd24 php54
    
  • PHP extensionsをインストール(※必要に応じて、各自必要なエクステンションを導入すること)

    yum install php54-mysql php54-pdo php54-pecl-memcached php54-mbstring php54-pecl-apc
    

    ※導入できるパッケージは下記で確認可能

    yum list | grep php
    

    ※php-develパッケージをインストールしたい場合、php54-develと指定すること。AWS Linuxではphp-develはPHP5.3に紐付けられているようである。

  • 動作確認

    php -v
    
  • 自動起動設定

    chkconfig httpd on
    
  • 起動

    service httpd restart
    

手順(FuelPHP周り)

  • httpd.confの編集

    /etc/httpd/conf/httpd.conf
    <Directory /var/www/html/fuelphpAPP>
    AllowOverride all
    </Directory>
    

    これで、.htaccessファイルでの設定のオーバーライドが可能になる。
    これを行わないと、自分でhttpd.confを設定しない限り、URLにindex.phpを含めないとアクセスできなくなってしまう。

  • php.iniの設定。下記を行う。

    /etc/php.ini
    [browscap]
    ;http://php.net/browscap
    ;browscap = extra/browscap.ini
    browscap = /etc/php.d/lite_php_browscap.ini
    

    上記を行わないと、phpのログに下記のようなエラーが生じる

    /fuel/core/classes/agent.php on line 524
    PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes) in APP/fuel/core/classes/agent.php on line 524
    

その他

  • もとのhttpd.confからVirtualHostの設定部分をコピーしてくる際に下記の部分は削除すること

    /etc/php.ini
    NameVirtualHost *:80
    

    Apache2.4から、このディレクティブは意味なくなったようです。
    ( http://httpd.apache.org/docs/2.4/upgrading.html )