Apache・PHPのインストールと設定(ConoHa VPS・AlmaLinux 9.4)

ConoHaのVPSでApacheとPHPをインストールして設定する。

以下の環境でセットアップしていく。
**〜VPS 1Gプラン〜**
メモリ：1G
CPU：仮想2Core
ストレージ：HDD 100GB
OS：AlmaLinux 9.4

# おことわり
筆者はCentOS 7からAlmaLinux 9へ移行したため、CentOS 7のコマンドで利用できる部分はそれらを用いる。

# 1．Apacheのインストール
次のコマンドを実行し、Apacheをインストールする。

```
[root@abc ~]# yum -y install httpd
```

```
Last metadata expiration check: 0:16:15 ago on Mon 13 Jan 2025 10:13:51 AM JST.
Dependencies resolved.
================================================================================
 Package                   Arch       Version               Repository     Size
================================================================================
Installing:
 httpd                     x86_64     2.4.62-1.el9          appstream      45 k

〜〜〜〜省略〜〜〜〜

Installed:
  almalinux-logos-httpd-90.5.1-1.1.el9.noarch                                   
  apr-1.7.0-12.el9_3.x86_64                                                     
  apr-util-1.6.1-23.el9.x86_64                                                  
  apr-util-bdb-1.6.1-23.el9.x86_64                                              
  apr-util-openssl-1.6.1-23.el9.x86_64                                          
  httpd-2.4.62-1.el9.x86_64                                                     
  httpd-core-2.4.62-1.el9.x86_64                                                
  httpd-filesystem-2.4.62-1.el9.noarch                                          
  httpd-tools-2.4.62-1.el9.x86_64                                               
  mod_http2-2.0.26-2.el9_4.1.x86_64                                             
  mod_lua-2.4.62-1.el9.x86_64                                                   

Complete!
[root@abc ~]# 
```

次のコマンドを実行し、Apacheを起動する。

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

次のコマンドを実行し、Apacheの自動起動を有効化する。

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

```
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
```

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

```
[root@abc ~]# firewall-cmd --add-service=http --zone=public --permanent
```

```
success
```

次のコマンドを実行し、httpsのポート(443番ポート)を開放する。

```
[root@abc ~]# firewall-cmd --add-service=https --zone=public --permanent
```

```
success
```

次のコマンドを実行し、ファイアウォールをリロードする。

```
[root@abc ~]# firewall-cmd --reload
```

```
success
```

# 3．EPELリポジトリの設定
次のコマンドを実行し、EPELリポジトリをインストールする。

```
[root@abc ~]# yum -y install epel-release
```

```
Last metadata expiration check: 0:26:46 ago on Mon 13 Jan 2025 10:13:51 AM JST.
Package epel-release-9-7.el9.noarch is already installed.
Dependencies resolved.
======================================================================================================
 Package                     Architecture          Version                  Repository           Size
======================================================================================================
Upgrading:
 epel-release                noarch                9-9.el9                  epel                 19 k

〜〜〜〜省略〜〜〜〜

Upgraded:
  epel-release-9-9.el9.noarch                                                                         

Complete!
[root@abc ~]# 
```

# 4．PHPのインストール
次のコマンドを実行し、PHP(8.1)をインストールする。

```
[root@abc ~]# yum -y module install php:8.1/common
```

```
Last metadata expiration check: 0:34:53 ago on Mon 13 Jan 2025 10:13:51 AM JST.
Dependencies resolved.
======================================================================================================
 Package                Architecture Version                                    Repository       Size
======================================================================================================
Installing group/module packages:

〜〜〜〜省略〜〜〜〜

Installed:
  libxslt-1.1.34-9.el9.x86_64                                                                         
  nginx-filesystem-2:1.20.1-20.el9.alma.1.noarch                                                      
  php-cli-8.1.30-1.module_el9.5.0+131+62ecd687.x86_64                                                 
  php-common-8.1.30-1.module_el9.5.0+131+62ecd687.x86_64                                              
  php-fpm-8.1.30-1.module_el9.5.0+131+62ecd687.x86_64                                                 
  php-mbstring-8.1.30-1.module_el9.5.0+131+62ecd687.x86_64                                            
  php-xml-8.1.30-1.module_el9.5.0+131+62ecd687.x86_64                                                 

Complete!
[root@abc ~]# 
```

# 5．アップロードサイズの上限の変更
次のコマンドを実行し、設定ファイルを編集する。

```
[root@abc ~]# vim /etc/php.ini
```

698行目の末尾"8M"を"10G"にする。

```apache:/etc/php.ini
post_max_size = 8M
```

↓

```apache:/etc/php.ini
post_max_size = 10G
```

850行目の末尾"2M"を"10G"にして保存する。

```apache:/etc/php.ini
upload_max_filesize = 2M
```

↓

```apache:/etc/php.ini
upload_max_filesize = 10G
```

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

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

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

```
[root@abc ~]# vim /etc/php.ini
```

927行目の先頭の";"を削除し、末尾に"Asia/Tokyo"を追加する。

```apache:/etc/php.ini
;date.timezone = 
```

↓

```apache:/etc/php.ini
date.timezone = Asia/Tokyo
```

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

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

# 7．動作確認
ブラウザでhttps://[サーバーのIPアドレス]/にアクセスし、"AlmaLinux Test Page"の画面が表示されることを確認する。
SSL証明書がないためエラーメッセージが表示されるが、許可の操作をして確認する。
もしもログインできなかったり、403エラーなどが表示されたら最初からやり直す。