Laravel v8.23.1 (PHP v8.0.1)をUbuntu 20.04.1 LTSにインストールする
転職が決まり次の会社ではPHPやLaravelを使用するということで手持ちのUbuntu機にインストールしてみた。
PHPをインストールする
以下のコマンドを順にconsoleに打っていけばおk。
$ sudo apt install software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt install php8.0
それぞれのコマンドの解説
sudo apt install software-properties-common
これは次のコマンド
add-apt-repository
を使用するためのコマンドです。
sudo add-apt-repository ppa:ondrej/php
リポジトリの追加です。 aptでパッケージをインストールする際、オフィシャルリポジトリを参照してパッケージを探しますが、そこにパッケージがない場合手動でリポジトリを追加する必要があります。 phpの諸々のパッケージはppa:ondrej/php というレポジトリにあるっぽいです。
sudo apt install php8.0
php8.0をインストールです。
Composerをインストールする
ComposerとはPHPのパッケージ管理システムのことです。 RubyでいうGemとかbundlerのポジションですね。
以下のコマンドを順に(以下略
$ sudo apt install curl php-cli php-mbstring git unzip php-xml $ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" $ php composer-setup.php $ php -r "unlink('composer-setup.php');"
これで一通りのインストールは完了です。 ただこのままだとコンソール上で
$ composer ~~~
みたいなコマンドが打てない(PATHが通っていない)ので、以下のコマンドをコンソールに打ち込んでいきましょう。
$ sudo mv composer.phar /usr/local/bin/composer $ sudo chmod +x /usr/local/bin/composer $ composer --version
最後の--versionでちゃんとバージョン情報が出てきたらおkです!
参考
UbuntuにComposerをインストールするにはこんな風に|たのしいWeb
Laravelをインストールする
大体このドキュメントに記載されています。 インストール 8.x (再翻訳中)Laravel
今回は上記ドキュメントの「Composerでのインストール」を参考にしています。
こんなコマンドを打っていきましょう。
$ composer create-project laravel/laravel hogehoge $ cd hogehoge $ sudo composer install $ php artisan serve
ここのhogehogeには好きなプロジェクト名を入れましょう。 今実行しているディレクトリにhogehogeディレクトリが新たに作成され、その中にLaravelの必要なファイルが保存されていきます。
$ sudo composer install
はRailsでいうbundle installです。 これしないとvender/以下のファイルが作られずエラーになります。 詳しくはその他余談で。
$ php artisan serve
はサーバの起動コマンドですね。 Railsでいうrails sです。
うまく行くとこんなログが出てくると思います。
[Wed Jan 20 20:16:08 2021] PHP 8.0.1 Development Server (http://127.0.0.1:8000) started
そしたら
にアクセスしてページがちゃんと表示されるか確認してみましょう〜!
だがしかし!多分表示されません!
No application encryption key has been specified.
こんなエラーが表示されるかもです(自分のときはこれでした)。 encryption keyが未設定です!みたいなエラーですね。 encryption keyを作りましょう。
$ php artisan key:generate $ php artisan config:cache
そしたら晴れてこーんなページが出てくると思います。 これで完了です! 参考 No application encryption key has been specified.となったときの対応方法 - Qiita
その他余談
最初Laravelのサーバを起動しようとしたとき、また別の原因でうまく行きませんでした。 これ、結構分かりづらくて、最初php-xmlをapt installしないまま進めてたんですね。 そしてcomposer installもしていませんでした。
そしたらphp artisan serveしたらこんなエラーが出ました。
PHP Fatal error: Uncaught Error: Failed opening required '/home/sawadango/code/laravel_test_in_local/vendor/autoload.php' (include_path='.:/usr/share/php') in /home/sawadango/code/laravel_test_in_local/artisan:18
vender以下のautoload.phpが読み込めないぞというエラーですね。 そしてディレクトリ見てみるとvenderが丸々無い!
このエラーの解決方法がconposer installすることなので、
$ sudo composer install
してみると、今度は
No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
となり、その下のProblem1に
phpunit/phpunit[9.3.3, ..., 9.5.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
と表示されていました。 PHPのdomのなんちゃらが無いみたいなエラーです。
これを解決するためには
$ sudo apt install php-xml
すればおkです。 php-xmlにext-domとかが含まれてるみたいです。
参考 laravel - PHP7 : install ext-dom issue - Stack Overflow
再度
$ sudo composer install
したら起動すると思います。 (そしてNo application encryption key has been specified.エラーが出ると思います)
最後に
ずっとRails使ってきたのですがRailsより大変では・・・?
なかなかまとまったドキュメントが無かった(あんま探してないけど)のでサラッと作ってみました。 再現しなかったら申し訳ないです。
誰かの参考になれば!