Apache・PHPのインストールと設定(さくらのVPS・CentOS 7)

今回はApacheとPHPをインストールして設定します。

前回同様の環境です。
**〜さくらのVPS 1Gプラン〜**
メモリ：1G
CPU：仮想2Core
ストレージ：HDD 100GB
OS：CentOS 7（カスタムOS）

仮として、アカウント名はrootもしくはabc123、ドメインはabc.comとします。

# はじめに
前回の[CentOS7のセットアップ(さくらのVPS)](https://qiita.com/tommys-web/items/900bb46c47f1cfbc7d90)を参考にTerminalでログインする。
はじめにrootに切り替える必要がある。
次のコマンドを実行し、パスワードを入力し、returnキーを押す。

```
[abc123@abc ~]$ su
```
↓

```
[abc123@abc ~]$ su
パスワード:
[root@abc abc]# 
```

rootでないと操作次第によってはパスワードを求められる。

# 1．Apacheをインストールする
次のコマンドを実行し、Apacheをインストールする。ちなみにhttpdはApacheのことである。

```
[root@abc ~]# yum -y install httpd
```
```
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。

〜〜省略〜〜

インストール:
  httpd.x86_64 0:2.4.6-80.el7.centos.1                                          

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-3.el7_4.1                  apr-util.x86_64 0:1.5.2-6.el7   
  httpd-tools.x86_64 0:2.4.6-80.el7.centos.1    mailcap.noarch 0:2.1.41-2.el7   

完了しました!
[root@abc ~]# 
```
次のコマンドを実行し、Apacheを起動する。

```
[root@abc ~]# systemctl start httpd
```

次のコマンドを実行し、OS起動時、自動でApacheも起動するようにする。

```
[root@abc ~]# systemctl enable httpd
```

# 2．ファイアウォールを設定する
次のコマンドを実行し、httpのポート80を開放する。

```
[root@abc ~]# firewall-cmd --add-service=http --zone=public --permanent
```
次の画面が表示されたことを確認する。

```
success
```
HTTPS通信をするのであれば、次のコマンドを実行し、httpsのポート443を開放する。

```
[root@abc ~]# firewall-cmd --add-service=https --zone=public --permanent
```
次の画面が表示されたことを確認する。

```
success
```
firewalldを再起動する。

```
[root@abc ~]# firewall-cmd --reload
```
ブラウザで、http://"ご自身のIPアドレス"にアクセスし、"Testing 123"のサイトが開くことを確認する。

# 3．EPELリポジトリを使えるようにする
remiを使えるようにするため、先にEPELリポジトリをインストールする。
標準OSは最初からEPELリポジトリが有効化されているが、今回はカスタムOSのため、インストールが必要。
以下のコマンドを実行する。

```
[root@abc ~]# yum -y install epel-release
```
```
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
updates/7/x86_64/primary_db                                | 3.6 MB   00:00     
依存性の解決をしています

〜〜省略〜〜

  インストール中          : epel-release-7-11.noarch                        1/1 
  検証中                  : epel-release-7-11.noarch                        1/1 

インストール:
  epel-release.noarch 0:7-11                                                    

完了しました!
[root@abc ~]# 
```

# 4．remiを使えるようにする
以下のコマンドを実行し、remiの設定パッケージをインストールする。

```
[root@abc ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
```
```
http://rpms.famillecollet.com/enterprise/remi-release-7.rpm を取得中
警告: /var/tmp/rpm-tmp.xxxxx: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00000000: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:remi-release-7.5-2.el7.remi      ################################# [100%]
[root@abc ~]# 
```

# 5．PHPをインストールする
以下のコマンドを実行し、PHP本体と拡張パッケージをインストールする。

```
[root@abc ~]# yum -y install --enablerepo=remi,remi-php73 php php-devel php-pdo php-gd php-mbstring php-mysqlnd
```
```
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                     | 4.7 kB     00:00     
 * base: ftp.iij.ad.jp
 * epel: ftp.jaist.ac.jp
 * extras: ftp.iij.ad.jp
 * remi: ftp.riken.jp
 * remi-php73: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
epel                       

〜〜省略〜〜

依存性関連をインストールしました:
  autoconf.noarch 0:2.69-11.el7          automake.noarch 0:1.13.4-3.el7        
  gd-last.x86_64 0:2.2.5-2.el7.remi      m4.x86_64 0:1.4.16-10.el7             
  perl-Test-Harness.noarch 0:3.28-3.el7  perl-Thread-Queue.noarch 0:3.02-2.el7 
  php-cli.x86_64 0:7.1.19-1.el7.remi     php-common.x86_64 0:7.1.19-1.el7.remi 
  php-json.x86_64 0:7.1.19-1.el7.remi   

完了しました!
[root@abc ~]# 
```

# 6．ファイルアップロードの上限を変更する
次のコマンドを実行し、phpの設定ファイルを開く。

```
[root@abc ~]# vim /etc/php.ini
```
デフォルトでの693行目と845行目はそれぞれ次のようになっている。

```apache:/etc/php.ini
post_max_size = 8M
```
```apache:/etc/php.ini
upload_max_filesize = 2M
```
それぞれ10Gに変更する。

```apache:/etc/php.ini
post_max_size = 10G
```
```apache:/etc/php.ini
upload_max_filesize = 10G
```
保存したら次のコマンドを実行し、Apacheを再起動する。

```
[root@abc ~]# systemctl restart httpd
```

# 7．PHPのタイムゾーンを変更する
次のコマンドを実行し、phpの設定ファイルを開く。

```
[root@abc ~]# vim /etc/php.ini
```
デフォルトでの922行目はそれぞれ次のようになっている。

```apache:/etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

; http://php.net/date.default-latitude
```
先頭の";"を削除し、"Asia/Tokyo"を追加する。

```apache:/etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo

; http://php.net/date.default-latitude
```

保存したら次のコマンドを実行し、Apacheを再起動する。

```
[root@abc ~]# systemctl restart httpd
```