AWS WebサーバーへPHPとApacheのインストール

 

前回のAWS WebサーバーへのSSH接続と基本的なコマンドでは、SSHの接続を行い、簡単なコマンドについて確認しました。

今回はWebサーバーにPHPとApache ウェブサーバーインストールし、各種設定を行っていきます。

環境

Amazon Linux 2

ターミナルを開く

まずは、RloginでSSH接続を行いターミナルを開きます。

Last login: Xxx Xxx X 00:00:00 20xx from xxxx.jp

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
13 package(s) needed for security, out of 16 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-10-127 ~]$ 

インストール済のパッケージのアップデート

インストール済のパッケージを最新の状態に更新します。

上記ログイン時にもアップデートするように表示されています。

13 package(s) needed for security, out of 16 available
Run "sudo yum update" to apply all updates.

まずは、更新される内容を確認します。

[ec2-user@ip-10-0-10-127 ~]$ yum check-update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                           | 3.7 kB  00:00:00     

cloud-init.noarch                     19.3-46.amzn2                   amzn2-core            
ec2-net-utils.noarch                  1.7.2-1.amzn2                   amzn2-core            
glibc.x86_64                          2.26-61.amzn2                   amzn2-core            
glibc-all-langpacks.x86_64            2.26-61.amzn2                   amzn2-core            
glibc-common.x86_64                   2.26-61.amzn2                   amzn2-core            
glibc-locale-source.x86_64            2.26-61.amzn2                   amzn2-core            
glibc-minimal-langpack.x86_64         2.26-61.amzn2                   amzn2-core            
kernel.x86_64                         5.10.147-133.644.amzn2          amzn2extra-kernel-5.10
kernel-tools.x86_64                   5.10.147-133.644.amzn2          amzn2extra-kernel-5.10
libcrypt.x86_64                       2.26-61.amzn2                   amzn2-core            
tzdata.noarch                         2022e-1.amzn2.0.1               amzn2-core            
vim-common.x86_64                     2:9.0.475-1.amzn2.0.1           amzn2-core            
vim-data.noarch                       2:9.0.475-1.amzn2.0.1           amzn2-core            
vim-enhanced.x86_64                   2:9.0.475-1.amzn2.0.1           amzn2-core            
vim-filesystem.noarch                 2:9.0.475-1.amzn2.0.1           amzn2-core            
vim-minimal.x86_64                    2:9.0.475-1.amzn2.0.1           amzn2-core            
[ec2-user@ip-10-0-10-127 ~]$ 

確かに16件あります。アップデートします。

[ec2-user@ip-10-0-10-127 ~]$ sudo yum update -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
・・・
Updated:
  cloud-init.noarch 0:19.3-46.amzn2                                                         
  ec2-net-utils.noarch 0:1.7.2-1.amzn2                                                      
  glibc.x86_64 0:2.26-61.amzn2                                                              
  glibc-all-langpacks.x86_64 0:2.26-61.amzn2                                                
  glibc-common.x86_64 0:2.26-61.amzn2                                                       
  glibc-locale-source.x86_64 0:2.26-61.amzn2                                                
  glibc-minimal-langpack.x86_64 0:2.26-61.amzn2                                             
  kernel-tools.x86_64 0:5.10.147-133.644.amzn2                                              
  libcrypt.x86_64 0:2.26-61.amzn2                                                           
  tzdata.noarch 0:2022e-1.amzn2.0.1                                                         
  vim-common.x86_64 2:9.0.475-1.amzn2.0.1                                                   
  vim-data.noarch 2:9.0.475-1.amzn2.0.1                                                     
  vim-enhanced.x86_64 2:9.0.475-1.amzn2.0.1                                                 
  vim-filesystem.noarch 2:9.0.475-1.amzn2.0.1                                               
  vim-minimal.x86_64 2:9.0.475-1.amzn2.0.1                                                  

Complete!
[ec2-user@ip-10-0-10-127 ~]$ 

アップデートが完了しました。

sudo 権限で、yumコマンドを使用して、インスール済みのパッケージを更新しました。-yオプションは、本来、途中で確認のため、本当にインストールをするか?を確認してきますので、その際、yesを入力したとみなされ、止まることなくインストールが続きます。

yumとは?

yum(ヤム)は、Yellowdog Updater Modifiedの略で、LinuxのRed Hat系で利用されるパッケージ管理ツールで、ソフトウェアをインストールする場合に利用されます。このパッケージ管理ツールは、ソフトウェアの依存関係を解決してくれたり、インストールしたソフトウェアの履歴など様々な情報を管理してくれます。

また、Red Hat系では、RPM(RPM Package Manager)というのもでてきます。RPMの高機能版がYumとなります。

Debian系のLinuxでは、apt-getがコマンドとして使われ、rpmに当たるのがdpkgコマンドとなります。他の解説サイトなどでパッケージをインストールの解説を読む際、注意してください。

PHPのインストール

amazon-linux-extrasというコマンドを使ってインストールします。

amazon-linux-extrasとは、Amazon Linux 2 インスタンスにあるExtra Libraryと呼ばれるパッケージ群で、特定のパッケージをより新しいバージョンで利用できるように管理するコマンドです。

実際に利用できるパッケージを確認します。

[ec2-user@ip-10-0-10-127 ~]$ amazon-linux-extras
・・・
 20  docker=latest            enabled      \
        [ =17.12.1  =18.03.1  =18.06.1  =18.09.9  =stable ]
・・・
 51  php8.0                   available    [ =stable ]
・・・
 55  kernel-5.10=latest       enabled      [ =stable ]
・・・
[ec2-user@ip-10-0-10-127 ~]$ 

60件以上でてきましたが、今回の目的の「php8.0」がありました。

php8.0をインストールします。

[ec2-user@ip-10-0-10-127 ~]$ sudo amazon-linux-extras install php8.0 -y
Installing php-pdo, php-fpm, php-mysqlnd, php-cli
・・・
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libzip-1.3.2-1.amzn2.0.1.x86_64                            1/6 
  Installing : php-common-8.0.20-1.amzn2.x86_64                           2/6 
  Installing : php-pdo-8.0.20-1.amzn2.x86_64                              3/6 
  Installing : php-mysqlnd-8.0.20-1.amzn2.x86_64                          4/6 
  Installing : php-cli-8.0.20-1.amzn2.x86_64                              5/6 
  Installing : php-fpm-8.0.20-1.amzn2.x86_64                              6/6 
  Verifying  : php-pdo-8.0.20-1.amzn2.x86_64                              1/6 
  Verifying  : php-common-8.0.20-1.amzn2.x86_64                           2/6 
  Verifying  : libzip-1.3.2-1.amzn2.0.1.x86_64                            3/6 
  Verifying  : php-cli-8.0.20-1.amzn2.x86_64                              4/6 
  Verifying  : php-mysqlnd-8.0.20-1.amzn2.x86_64                          5/6 
  Verifying  : php-fpm-8.0.20-1.amzn2.x86_64                              6/6 

Installed:
  php-cli.x86_64 0:8.0.20-1.amzn2         php-fpm.x86_64 0:8.0.20-1.amzn2    
  php-mysqlnd.x86_64 0:8.0.20-1.amzn2     php-pdo.x86_64 0:8.0.20-1.amzn2    

Dependency Installed:
  libzip.x86_64 0:1.3.2-1.amzn2.0.1     php-common.x86_64 0:8.0.20-1.amzn2    

Complete!
・・・
 51  php8.0=latest            enabled      [ =stable ]
・・・
[ec2-user@ip-10-0-10-127 ~]$ 

php8.0のインストールが完了しました。「enable」となっているので有効化されています。

phpのバージョン等を確認します。

/* phpの実行ファイルの位置を確認 */
[ec2-user@ip-10-0-10-127 ~]$ which php
/usr/bin/php
/* phpのバージョン確認 */
[ec2-user@ip-10-0-10-127 ~]$ /usr/bin/php -v
PHP 8.0.20 (cli) (built: Jun 23 2022 20:34:07) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
/* 上記同様 */
[ec2-user@ip-10-0-10-127 ~]$ php -v
PHP 8.0.20 (cli) (built: Jun 23 2022 20:34:07) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
[ec2-user@ip-10-0-10-127 ~]$ 

php8.0が無事インストールされました。

ここでは、PHPのmbstringなどのライブラリは最低限しかインストールされていません。別の機会にインストールをしていきたいと思います。

Webサーバーソフトのインストール

Webサーバーとは?

簡単に言えば、Webサイトのデータがおいてあって、Webサーバーとしての役割を果たすソフトが入っている普通のコンピューターです。そのWebサーバーとしての役割を果たすソフトとして有名なのがApacheやNGINX(エンジンエックス)です。

このソフトは、コンピュータ上で常駐(いつでもアクションを起こせる状態)し、依頼があれば、例えば、Webサイトのデータを送り出します。

このWebサーバとしての役割を果たしている常駐プログラムのことをデーモンといいます。

この後インストールするhttpdは、Webサーバーのソフトとして有名なApacheのデーモンとなります。

Apacheのインストール

下記コマンドを実行します。

[ec2-user@ip-10-0-10-127 ~]$ sudo yum install httpd -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
・・・
Installed:
  httpd.x86_64 0:2.4.54-1.amzn2                                                             

Dependency Installed:
  apr.x86_64 0:1.7.0-9.amzn2                  apr-util.x86_64 0:1.6.1-5.amzn2.0.2           
  apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2     generic-logos-httpd.noarch 0:18.0.0-4.amzn2   
  httpd-filesystem.noarch 0:2.4.54-1.amzn2    httpd-tools.x86_64 0:2.4.54-1.amzn2           
  mailcap.noarch 0:2.1.41-2.amzn2             mod_http2.x86_64 0:1.15.19-1.amzn2.0.1        

Complete!
[ec2-user@ip-10-0-10-127 ~]$ 

バージョンを確認します。

[ec2-user@ip-10-0-10-127 ~]$ httpd -v
Server version: Apache/2.4.54 ()
Server built:   Jun 30 2022 11:02:23
[ec2-user@ip-10-0-10-127 ~]$ 

現在のWebサーバー(httpd)の状況を確認します。

[ec2-user@ip-10-0-10-127 ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: inactive (dead)
     Docs: man:httpd.service(8)
[ec2-user@ip-10-0-10-127 ~]$ 

「Active」の行で「inactive (dead)」とあるので起動はしていないことがわかります。

では、起動します。

[ec2-user@ip-10-0-10-127 ~]$ sudo systemctl start httpd
[ec2-user@ip-10-0-10-127 ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Xxx 20xx-xx-xx xx:xx:xx JST; 30s ago
     Docs: man:httpd.service(8)
 Main PID: 15156 (httpd)
   Status: "Total requests: 3; Idle/Busy workers 100/0;Requests/sec: 0.103; Bytes served/sec: 349 B/sec"
   CGroup: /system.slice/httpd.service
           ├─15156 /usr/sbin/httpd -DFOREGROUND
           ├─15163 /usr/sbin/httpd -DFOREGROUND
           ├─15164 /usr/sbin/httpd -DFOREGROUND
           ├─15165 /usr/sbin/httpd -DFOREGROUND
           ├─15166 /usr/sbin/httpd -DFOREGROUND
           ├─15167 /usr/sbin/httpd -DFOREGROUND
           └─15209 /usr/sbin/httpd -DFOREGROUND

Xxx xx xx:xx:46 ip-10-0-10-127.ap-northeast-1.compute.internal systemd[1]: Starting The A...
Xxx xx xx:xx:46 ip-10-0-10-127.ap-northeast-1.compute.internal systemd[1]: Started The Ap...
Hint: Some lines were ellipsized, use -l to show in full.
[ec2-user@ip-10-0-10-127 ~]$ 

「Active」の行で「active (running) since ・・・ JST; 30s ago」に、起動時刻と30秒前に起動したことが確認できます。

ブラウザを開き、固定IPのアドレスを入力します。

上記ページが見えていたら、無事Webサーバーとしての最低限の設定が完了したことになります。

httpd(Apache)の自動起動設定

現在の状態ですと、インスタンスが停止するたびに、httpdを起動する必要がありますので、起動時にはWebサーバーも起動するように設定します。

/* 自動起動の設定 */
[ec2-user@ip-10-0-10-127 ~]$ sudo systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
/* 自動起動設定になっているか確認 */
[ec2-user@ip-10-0-10-127 ~]$ systemctl is-enabled httpd.service
enabled
[ec2-user@ip-10-0-10-127 ~]$ 

まとめ

今回はWebサーバーにPHPとAapcheをインストールしました。

次回はWebサーバーのディレクトリとファイルのアクセス権の設定を行っていきます。

次回:AWS Webサーバーのアクセス権の設定

一覧:AWS サーバー立ち上げ設定まとめ

参考

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html

文責:フライング・ハイ・ワークス代表 松田 治人(まつだ はるひと)
会社では、Laravelを中心としたエンジニアとして働いており、これまでに50本以上のLaravelによるWebアプリケーションの構築やホームページ制作をしています。
エンジニアとして弊社で働きたい方、お仕事のご相談など、お待ちしております。

WEBサイト制作のお問い合わせ、お見積り依頼、ご質問は
こちらのお問い合わせフォームよりお願いいたします

メールお問い合わせはこちら

フライング・ハイ・ワークスの紹介

フライング・ハイ・ワークスは、東京・渋谷のホームページ制作・Web制作会社・システム開発会社です。東京都及びその近郊(首都圏)を中心として、SEO対策を意識したPC及びスマホのサイトをワンソース(レスポンシブ対応)で制作します。

実績

デザイナーチームは、グラフィックデザインやイラストの制作も得意としており、著作権を意識しない素材の提供が可能です。システム・コーディングチームでは、Laravelなどを使用したスクラッチからのオリジナルシステムの構築を始め、WordPressのカスタマイズを得意としております。

また、SEOやランディングページ(LP)、広告向けバナーなどを他社様でやっていた作業の引継ぎでも問題ありません。制作実績は多数ございますので、お客様に合わせたご提案が可能です。

500点以上のフライング・ハイ・ワークスの制作実績ページをご覧ください!

WEBサイト制作のお問い合わせ、お見積り依頼、ご質問は
こちらのお問い合わせフォームよりお願いいたします

メールお問い合わせはこちら