環境 †
- Amazon Linux AMI release 2017.03
OS 初期設定 †
$ sudo yum -y update
$ date
2017年 7月 19日 水曜日 06:32:19 UTC
$ cp /usr/share/zoneinfo/Japan ./
$ mv Japan localtime
$ sudo mv ./localtime /etc/localtime
$ date
2017年 7月 19日 水曜日 15:33:47 JST
$ sudo vi ~/.bashrc
export HISTTIMEFORMAT='%F %T '
- selinux, iptables 状態確認 ※ Amazon Linux ではデフォルトで selinux, iptables は無効
$ getenforce
Disabled
$ sudo /etc/init.d/iptables status
iptables: ファイアウォールが稼働していません。
Apache 2.2 インストール †
$ sudo yum -y install httpd
$ httpd -v
Server version: Apache/2.2.32 (Unix)
PHP 7.1 インストール †
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo rpm -Uvh ftp://ftp.scientificlinux.org/linux/scientific/6.4/x86_64/updates/fastbugs/scl-utils-20120927-8.el6.x86_64.rpm
$ sudo yum -y install --disablerepo=amzn-main --enablerepo=epel libwebp
インストール:
libwebp.x86_64 0:0.4.3-3.el6
$ sudo yum -y install libmcrypt libtool-ltdl libtidy libXpm libtiff gd-last autoconf automake policycoreutils-python tcl
インストール:
autoconf.noarch 0:2.69-11.9.amzn1
automake.noarch 0:1.13.4-3.15.amzn1
gd-last.x86_64 0:2.2.4-1.el6.remi
libXpm.x86_64 0:3.5.10-2.9.amzn1
libmcrypt.x86_64 0:2.5.8-9.1.2.amzn1
libtidy.x86_64 0:0.99.0-19.20070615.1.4.amzn1
libtiff.x86_64 0:4.0.3-27.29.amzn1
libtool-ltdl.x86_64 0:2.4.2-20.4.8.3.31.amzn1
policycoreutils-python.x86_64 0:2.1.12-5.25.amzn1
tcl.x86_64 1:8.5.7-6.9.amzn1
依存性関連インストール:
audit-libs-python.x86_64 0:2.6.5-3.28.amzn1
compat-libtiff3.x86_64 0:3.9.4-21.15.amzn1
jbigkit-libs.x86_64 0:2.0-11.4.amzn1
libselinux-python.x86_64 0:2.1.10-3.22.amzn1
libsemanage-python.x86_64 0:2.1.6-3.13.amzn1
m4.x86_64 0:1.4.16-9.10.amzn1
perl-Data-Dumper.x86_64 0:2.145-3.5.amzn1
perl-Test-Harness.noarch 0:3.28-3.6.amzn1
perl-Thread-Queue.noarch 0:3.02-2.5.amzn1
python27-IPy.noarch 0:0.75-1.6.6.amzn1
selinux-policy.noarch 0:3.10.0-98.26.amzn1
setools-libs.x86_64 0:3.3.7-34.23.amzn1
setools-libs-python.x86_64 0:3.3.7-34.23.amzn1
$ sudo yum -y install --enablerepo=remi,remi-php71 --disablerepo=amzn-main,amzn-updates php71 php php-pdo php-mysqlnd php-mbstring php-tokenizer php-xml php-common php-cli php-devel php-gd php-intl php-mcrypt php-opcache php-pear php-process
インストール:
php.x86_64 0:7.1.7-1.el6.remi
php-cli.x86_64 0:7.1.7-1.el6.remi
php-common.x86_64 0:7.1.7-1.el6.remi
php-devel.x86_64 0:7.1.7-1.el6.remi
php-gd.x86_64 0:7.1.7-1.el6.remi
php-intl.x86_64 0:7.1.7-1.el6.remi
php-mbstring.x86_64 0:7.1.7-1.el6.remi
php-mcrypt.x86_64 0:7.1.7-1.el6.remi
php-mysqlnd.x86_64 0:7.1.7-1.el6.remi
php-opcache.x86_64 0:7.1.7-1.el6.remi
php-pdo.x86_64 0:7.1.7-1.el6.remi
php-pear.noarch 1:1.10.5-2.el6.remi
php-process.x86_64 0:7.1.7-1.el6.remi
php-xml.x86_64 0:7.1.7-1.el6.remi
php71.x86_64 0:1.0-1.el6.remi
依存性関連インストール:
environment-modules.x86_64 0:3.2.10-0.el6.remi
php-json.x86_64 0:7.1.7-1.el6.remi
php71-php-cli.x86_64 0:7.1.7-1.el6.remi
php71-php-common.x86_64 0:7.1.7-1.el6.remi
php71-php-json.x86_64 0:7.1.7-1.el6.remi
php71-runtime.x86_64 0:1.0-1.el6.remi
$ php -v
PHP 7.1.7 (cli) (built: Jul 6 2017 13:46:08) ( NTS )
$ php -m
※ php71-php モジュールのインストール不可 (Apache 2.4 の場合) †
$ sudo yum install --enablerepo=remi,remi-php71 --disablerepo=amzn-main,amzn-updates php
エラー: パッケージ: php-7.1.7-1.el6.remi.x86_64 (remi-php71)
要求: httpd-mmn = 20051115
事象 †
- remi-php71 リポジトリが要求する httpd-mmn は 20051115
- amzn リポジトリに含まれる httpd24 パッケージの httpd-mmn は 20120211
- Apache から PHP をロードする際に必須のモジュールである php71-php のインストールが不可
結論 †
- Amazon Linux 上に Apache 2.4 + PHP 7.1 環境をパッケージ管理で構築することは困難
- Apache 2.4 → Apache 2.2 にすると php71-php モジュールのインストール可
- PHP 7.0 であれば amzn リポジトリにパッケージが含まれているためインストール可
- CentOS 7 用の Remi リポジトリであれば httpd-mmn は 20120211 のため Apache 2.4 でもインストール可
PHP 設定変更 †
$ cp -p /etc/php.ini /etc/php.ini_org
$ sudo vi /etc/php.ini
max_execution_time = 3600
memory_limit = 1024M
upload_max_filesize = 1024M
default_socket_timeout = 1800
date.timezone = 'Asia/Tokyo'
Apache 起動 †
$ sudo /sbin/service httpd start
$ sudo chkconfig httpd on
PHP 動作確認 †
$ cd /var/www/html/
$ sudo vi index.php
<?php
echo "Hello World!"
?>
<!DOCTYPE html>
<html lang="ja">
<body>
<p>Hello World <?php echo "from PHP!";?></p>
<body>
</html>
$ sudo vi phpinfo.php
<?php phpinfo();
$ sudo chown -R apache:apache /var/www/html/