- 追加された行はこの色です。
- 削除された行はこの色です。
#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.4 インストール [#m2f9c830]
** Apache 2.2 インストール [#v4378f32]
$ yum list | grep httpd24
httpd24.x86_64 2.4.25-1.68.amzn1 amzn-main
httpd24-devel.x86_64 2.4.25-1.68.amzn1 amzn-main
httpd24-manual.noarch 2.4.25-1.68.amzn1 amzn-main
httpd24-tools.x86_64 2.4.25-1.68.amzn1 amzn-main
$ sudo yum -y install httpd
$ sudo yum -y install httpd24
$ httpd -v
Server version: Apache/2.4.25 (Amazon)
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 php71 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
$ 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-cli.x86_64 0:7.1.7-1.el6.remi
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-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]
$ 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 起動 [#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/
- ブラウザ経由で確認
- index.php 削除
$ sudo rm index.php
** 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