AWS EC2にPHPインストール

PHPのインストール

yumでインストールできるバージョン確認

$ sudo yum search "php"

(あえて古い)バージョン5.4.45のインストール をしてみる

$ sudo yum -y install php54 --skip-broken
$ sudo yum -y install php54-{gd,xml,mbstring,mysqlnd}
$ sudo yum -y install php54-pecl-{apc,memcached}

httpd24-tools との依存関係で怒られたので php54 をインストールする時に --skip-broken 付ける
バージョン7.2.24のインストール

$ sudo yum -y install php72 --skip-broken
 php72-php-{gd,xml,mbstring,mysqlnd}
# yum -y install php72-php-{opcache,pecl-apcu,pecl-memcached}

 

バージョンとphp.iniの配置場所確認

# for v in 54 72 ; do php$v -v ; echo \ ; done

    PHP 5.4.45 (cli) (built: Oct 22 2019 13:23:07)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

    PHP 7.2.24 (cli) (built: Oct 22 2019 11:28:13) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.2.24, Copyright (c) 1999-2018, by Zend Technologies

# for v in 54 72 ; do php$v --ini | grep Loaded | awk '{print $4}' ; done

    /opt/remi/php54/root/etc/php.ini
    /etc/opt/remi/php72/php.ini

 

フォルダ(ポート)で環境切り分け

php-fpm のインストール

# yum -y install php54-php-fpm
# yum -y install php72-php-fpm

 

php-fpm の設定

プロセスマネージャーの変更
設定
# sed -i '/pm = /s/dynamic/ondemand/' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# sed -i '/pm = /s/dynamic/ondemand/' /etc/opt/remi/php72/php-fpm.d/www.conf

確認
# grep 'pm = ondemand' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'pm = ondemand' /etc/opt/remi/php72/php-fpm.d/www.conf
listen のポート指定
変更
# sed -i "s/9000/9054/" /opt/remi/php54/root/etc/php-fpm.d/www.conf
# sed -i "s/9000/9072/" /etc/opt/remi/php72/php-fpm.d/www.conf

確認
# grep 'listen = 127' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'listen = 127' /etc/opt/remi/php72/php-fpm.d/www.conf
php-fpmの起動とデーモン化
# systemctl start php54-php-fpm
# systemctl enable php54-php-fpm

# systemctl start php72-php-fpm
# systemctl enable php72-php-fpm

 

Apache の設定

/etc/httpd/conf/httpd.conf

<VirtualHost *:80>
  ProxyPassMatch ^/php72/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9072/var/www/html/php72/$1
  ProxyPassMatch ^/php54/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9054/var/www/html/php54/$1
</VirtualHost>

 

Apache の再起動

# systemctl restart httpd.service

Twitterでフォローしよう

おすすめの記事