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
のままなのが気になるところですが、とりあえず今はこのまま進みます。
ライブラリを試す
- Laravel 5.8 laravel.com
- BEAR.Sunday bearsunday.github.io
このままやってもめちゃくちゃ失敗します。
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!