tanaka's Programming Memo

プログラミングについてのメモ。

Raspberrypi4にLaravelの環境を構築する

ラズパイ4を入手したので、Laravelの開発ができるように環境構築してみました。その時のメモです。

目次

構築する環境

Laravelのインストールは、WindowsLinuxならHomestead、macならValetを推奨しています。しかし、Homesteadを使うにはVirtualBoxなどの仮想マシンのインストールが必要です。ラズパイでは荷が重そうなので、手動で環境を設定することにしました。

phpenvとphp-builderをインストールする

Laravelの公式ページではComposerの操作から書かれています。Composerを使うにはPHPが必要です。せっかくなので、PHPのバージョンを切り替えられるようにphpenvとphp-buildの環境を構築します。ラズパイにpiアカウントでログインしたらターミナルを起動して、以下を実行します。

sudo apt-get update
sudo apt-get upgrade

ここで、依存がどうのこうのというエラーが出たら、以下を試したら解決しました。

update / upgrade fails on older Raspian Installation - Raspberry Pi Forums

sudo apt full-upgrade
sudo apt dist-upgrade
sudo apt autoremove

以下を参考に、ビルドに必要そうなものを入れていきます。

Raspberry Pi 2 に Raspbian を入れた時にやっておいた方が良いことをまとめた - しばやん雑記

gitはあるので、以下ぐらいで。

sudo apt-get install autoconf libtool automake build-essential libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libreadline-dev libtidy-dev libxsltl-dev

re2cをインストールする

$ autoreconf -i -W all
$ mkdir /usr/local/bin/re2c
$ ./configure --prefix=/usr/local/bin/re2c
$ make
$ make install

最後に、.bash_profileファイルに以下を追加してre2cにパスを通します。

export PATH="/usr/local/bin/re2c/bin:$PATH"

phpenvをインストールする

phpenv-installerはエラーでうまくいかなかったので、手動でgitリポジトリーをクローンして構築しました。

github.com

今回、他のユーザーも使えるように/usr/local/bin/phpenv以下にクローンしました。

  • ドキュメントに従ってrootの.bash_profileに対して、パスとphpenv initを追加
  • exec $SHELL -lでシェルをリスタートしました

次に、/usr/local/bin/phpenv/plugins/php-build以下に、php-buildをクローンします。

github.com

クローンしたら、php-buildフォルダー内のinstall.shを実行します。

./install.sh

実行できなければ、sudo chmod 755 install.shで権限を与えます。

これで、phpenv installが利用できるようになります。phpenvが実行できない場合は、source ~/.bash_profileを実行します。

PHPのインストール

以下のコマンドでインストール可能なPHPのバージョンを調べます。

phpenv install --list

7.2以降をインストールします。7.2.26の場合、以下の通り。

phpenv install 7.2.26

ビルドには1時間弱かかりました。

The Log File is not empty,という表示が表示され、ログファイルを確認するか、--verboseスイッチをつけてリビルドするように表示されますが、ビルド自体は成功していました(今のところこの設定でそのまま使っていますが、あれこれ警告が出たのでインストール時に--with-libzipをつけた方がいいかも。)

以下で、PHPを全ユーザーから見れるようにします。

phpenv global 7.2.26

Composerをインストールする

getcomposer.org

今回はグローバルで使いたいので、composer.pharをダウンロードしたら、/usr/local/bin/composerにリネームして配置します。

curl -sS http://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

以上でComposerが利用できるようになります。これでようやくLaravelをインストールできます。

Laravelをインストールする

以下に従ってインストールします。

laravel.com

composer global require laravel/installer
  • sudo nano /etc/profileで共有プロファイルを開きます
  • 以下を最後に追加します
export PATH="/home/pi/.phpenv/shims:$PATH"
export PATH="/home/pi/.config/composer/vendor/bin:$PATH"
  • source /etc/profileを実行して、更新を反映させます

以上で、Laravelへのパスが通ります。

試す

一般ユーザーでログインして、以下を実行します。

laravel new blog

サンプルブログの生成が完了したら、以下でサービスを開始します。

cd blog
php artisan serve

サービスが開始したら、URLが表示されるので、ブラウザを起動してアクセスします。うまくいけば、Laravelのページが表示されます。

f:id:am1tanaka:20200215230725p:plain
Laravelのサンプルブログページ

少し変更してみる

ちゃんと変更できるか表示内容を変えてみます。

cd ~/blog
nano resources/views/welcome.blade.php

これで、ウェルカムページを構築するためのVueのテンプレートページが開きます。84行目付近に表題のLaravelとある行があるので、そこを適当に変更してみましょう。

f:id:am1tanaka:20200215230933p:plain
welcome.blade.php

  • 変更したら、上書き保存をして先ほど表示したらWebブラウザーをリロードします。すると、変更した通りに表題が変更されるはずです。

f:id:am1tanaka:20200215231114p:plain
変更されたか試す

MySQL(MariaDB)をインストール

Laravelを使うならデータベースも使うでしょう。ラズパイではMySQLから派生したMariaDBがよく使われているそうなので、そちらをインストールします。なお、使い方はMySQLと同じです。参考資料は以下の通り。

www.ossnews.jp

手順は以下を参考にしました。

nort-wmli.blogspot.com

  • 端末を開いて、以下でインストールします
sudo apt install maria-client maria-server
sudo systemctl restart mariadb

これでインストールは完了ですが、そのままだとsudo抜きでは接続できません。これを修正します。

  • DBに接続します
sudo mysql -u root
USE mysql;
UPDATE user SET plugin='' WHERE User='root';
exit;

設定ができたらDBを以下でリスタートして、sudo抜きで接続を確認します。

sudo systemctl restart mysql
mysql -u root

うまく接続できればOKです。exit;MySQLから退出します。続けて、セキュリティ設定をします。

  • ターミナルでmysql_secure_installationを実行します

rootのパスワードの設定をして、あとはそのままyesで進めれば完了です。

MySQL用のユーザーを作成

rootで操作するのも嫌なので、MySQLを操作するユーザーを作成しておきます。

  • mysql -u root -pでパスワードを入力してログインします
  • ユーザー登録をします。以下は、ユーザー名hoge、パスワードpiyoの場合の書き方です。適宜、変更してください
CREATE USER 'hoge'@'%' IDENTIFIED BY 'piyo';

以上で、最低限の準備は完了です。あとは、データベースを作成したり、作成したユーザーに権限を与えれば、PHPやLaravelから作成したユーザーでログインして作業をすることができます。

閉じる

MariaDB(MySQL)のクライアントから出るには、exit;と入力します。

Laravelを停止するには、php artisan serveしたターミナルで[Ctrl]+[C]キーを押して、サービスを停止します。あとはターミナルなどを閉じてOKです。

まとめ

以上で環境構築完了です。

  • phpenvとphp-builderのインストール
  • phpをビルドする環境のインストール
  • phpのインストールとグローバル設定
  • composerのインストール
  • laravelのインストールと環境設定
  • サンプルblogプロジェクトを作成して、表示と編集確認

調べながらだったので結構時間がかかりましたが、手順通りなら2時間ぐらいで設定できると思います。1万円ぐらいのPCで開発環境が作れるのは面白いです。実際には、このラズパイにユーザーを作って、そのユーザーがWindowsからラズパイに接続してLaravelの開発ができる環境を作りました。それは別のブログにまとめます。以下、Windowsとの連携のための設定ブログです(2020/2/16追記)。

am1tanaka.hatenablog.com

参考URL