#contents

** 環境 [#nd74f399]

- Amazon Linux AMI release 2017.03

** OS 初期設定 [#ldfbbecf]

- 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 状態確認 &color(red){※}; Amazon Linux ではデフォルトで selinux, iptables は無効

 $ getenforce
 Disabled

 $ sudo /etc/init.d/iptables status
 iptables: ファイアウォールが稼働していません。

** Apache 2.2 インストール [#v4378f32]

 $ sudo yum -y install httpd

 $ httpd -v
 Server version: Apache/2.2.32 (Unix)

** PHP 7.1 インストール [#ua3e0308]

- 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

** &color(red){※}; php71-php モジュールのインストール不可 (Apache 2.4 の場合)  [#c88aa8db]

 $ 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

*** 事象 [#ced29eed]

- remi-php71 リポジトリが要求する httpd-mmn は 20051115
- amzn リポジトリに含まれる httpd24 パッケージの httpd-mmn は 20120211
- Apache から PHP をロードする際に必須のモジュールである php71-php のインストールが不可

*** 結論 [#q5bf8520]

- 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 設定変更 [#v94b13bc]

- /etc/php.ini を編集

 max_execution_time = 3600

 memory_limit = 1024M

 upload_max_filesize = 1024M

 default_socket_timeout = 1800

 date.timezone = 'Asia/Tokyo'

** Apache 起動 [#we324042]

- Apache を起動

 $ sudo /sbin/service httpd start

- 自動起動設定

 $ sudo chkconfig httpd on

** PHP 動作確認 [#k3a1f640]

- 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/

- ブラウザ経由で確認

// ** Apache ログ 設定確認 [#n6e40597]
// 
//  $ sudo vi /etc/httpd/conf/httpd.conf
// 
// - CustomLog 設定追加 (custom を追加)
// 
//  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
//  LogFormat "%h %l %u %t \"%r\" %>s %b" common
//  LogFormat "%{Referer}i -> %U" referer
//  LogFormat "%{User-agent}i" agent
//  LogFormat "%a %h %l %u %t \"%r\" %>s %b" custom
// 
// - LogFormat を custom に指定
// 
//  #CustomLog logs/access_log combined
//  #CustomLog logs/access_log common
//  CustomLog logs/access_log custom
// 
// - ErrorLog 設定確認
// 
//  ErrorLog logs/error_log
// 
// *** アクセスログ確認 [#p0c93232]
// 
//  $ sudo cat /var/log/httpd/access_log
// 
//  192.168.33.1 192.168.33.1 - - [17/Jul/2017:07:38:41 +0000] "GET / HTTP/1.1" 200 100
//  192.168.33.1 192.168.33.1 - - [17/Jul/2017:07:38:53 +0000] "GET /index.php HTTP/1.1" 200 100
//  192.168.33.1 192.168.33.1 - - [17/Jul/2017:07:39:12 +0000] "GET /phpinfo.php HTTP/1.1" 200 85687
// 
// *** エラーログ確認 [#c9b77988]
// 
//  $ sudo cat /var/log/httpd/error_log

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS