環境

  • Amazon Linux AMI release 2017.03

OS 初期設定

  • yum update
$ 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
  • history コマンド 日時表示設定
$ sudo vi ~/.bashrc
  • HISTTIMEFORMAT 設定追記
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 インストール

  • Remi リポジトリ追加
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
  • scl-utils パッケージ追加
$ 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
  • PHP 7.1 インストール
$ 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 バージョン確認
$ php -v
PHP 7.1.7 (cli) (built: Jul  6 2017 13:46:08) ( NTS )
  • PHP インストール済みモジュール確認
$ 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
  • /etc/php.ini を編集
max_execution_time = 3600
memory_limit = 1024M
upload_max_filesize = 1024M
default_socket_timeout = 1800
date.timezone = 'Asia/Tokyo'

Apache 起動

  • Apache を起動
$ sudo /sbin/service httpd start
  • 自動起動設定
$ sudo chkconfig httpd on

PHP 動作確認

  • index.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>
  • phpinfo.php 作成
$ sudo vi phpinfo.php
<?php phpinfo();
  • DocumentRoot 権限変更
$ sudo chown -R apache:apache /var/www/html/
  • ブラウザ経由で確認

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-07-29 (土) 18:10:03 (2455d)