EC2 の Ubuntu18.04 に PHP7.3 をインストールして Laravel 5.8 と BEAR.Sunday を試す

はじめに

タイトルの通りで、AWSのEC2インスタンスにPHP7.3をインストールして使うことがあったのでメモしておきます。

最低限のことしかやらないので、これ以上のことをしようとすると色々足りないと思います。

環境

AWS EC2インスタンス t2.micro
Ubuntu Server 18.04 LTS (HVM), SSD Volume Type

PHP7.3のインストール

PHPは確かに未インストールです。

$ php -v
Command 'php' not found, but can be installed with:

sudo apt install php7.2-cli
sudo apt install hhvm

このままではまだインストールできません。

$ sudo apt show php7.3
N: Unable to locate package php7.3
N: Couldn't find any package by glob 'php7.3'
N: Couldn't find any package by regex 'php7.3'
N: Unable to locate package php7.3
N: Couldn't find any package by glob 'php7.3'
N: Couldn't find any package by regex 'php7.3'
E: No packages found

ので、リポジトリを追加します。

$ sudo apt-add-repository ppa:ondrej/php

良さそうです。

$ sudo apt show php7.3
Package: php7.3
Version: 7.3.4-1+ubuntu18.04.1+deb.sury.org+3
Priority: optional
Section: php
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
〜〜

インストールします。

$ sudo apt install php7.3

バージョンを確認して問題ありません。

$ php -v
PHP 7.3.4-1+ubuntu18.04.1+deb.sury.org+3 (cli) (built: Apr 10 2019 10:51:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-1+ubuntu18.04.1+deb.sury.org+3, Copyright (c) 1999-2018, by Zend Technologies

ハローワールドを試します。

$ php -r "echo('hello world');"
hello world

composerのインストール

composerをインストールします。

$ curl https://getcomposer.org/installer | php

バージョンを確認して問題ありません。

$ ./composer.phar -V
Composer version 1.8.5 2019-04-09 17:46:47

composer.phar のままなのが気になるところですが、とりあえず今はこのまま進みます。

ライブラリを試す

このままやってもめちゃくちゃ失敗します。

composerでインストールする時点で The zip extension and unzip command are both missing と言われ怒られてしまうので、準備しておきます。

$ sudo apt install zip unzip

さらに、php extensionが足りないと怒られてしまうので、準備しておきます。

$ sudo apt install php7.3-mbstring php7.3-xml

また、Laravelのインストールの場合は問題ないですが、BEAR.Sundayのインストールの場合はcomposerがパスに含まれていないといけないようなので、それもやっておきます。

$ sudo mv composer.phar /usr/local/bin/composer

Laravel 5.8

プロジェクトを作成します。

$ composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.8.3)
  - Installing laravel/laravel (v5.8.3): Loading from cache
Created project in blog
〜

プロジェクトに移動してサーバー起動してみます。

$ cd blog
$ php artisan serve

別タブで確認します。

$ curl http://127.0.0.1:8000
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel</title></head>
    <body>
        <div class="flex-center position-ref full-height">

            <div class="content">
                <div class="title m-b-md">
                    Laravel
                </div></div>
        </div>
    </body>
</html>

OK!

BEAR.Sunday

プロジェクトを作成します。

$ composer create-project -n bear/skeleton MyVendor.MyProject
Installing bear/skeleton (1.7.1)
  - Installing bear/skeleton (1.7.1): Downloading (100%)
Created project in MyVendor.MyProject
〜

プロジェクトに移動してコマンドラインで確認します。

$ cd MyVendor.MyProject/
$ composer page get /
> php bin/page.php 'get' '/'
200 OK
content-type: application/hal+json

{
    "greeting": "Hello BEAR.Sunday",
    "_links": {
        "self": {
            "href": "/index"
        }
    }
}

OK!