install Laravel

Laravel8のインストールに先駆け、導入しておくべきものが幾つかあります。

・composer
・npm, nodejs
・php-intl

composerの導入

composerはPHPのライブラリ管理ツールです。SymfonyやLaravelではcomposerを用いて、必要なライブラリを導入・削除等の管理を実施します。

composerの導入は下記のコマンドを実施します。なお、当然ですがPHP環境が必要ですので、yumを用いる等して、PHP環境を整えてから実行してください(この時、php-intlも導入して、php-intlと依存性パッケージも同時に導入しておきます)。

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php
$ rm composer-setup.php

上記のコマンドを実行後、カレントディレクトリに「composer.phar」が配置されます。実行権限を与えて下記のコマンドを実行し、然るべき情報が表示されれば正常に動作することとなります。

$ composer.phar -v

特に意識することなく利用したいという事であれば「/usr/bin」にコピーした上で「composer」にシンボリックリンクを張っておくと良いでしょう。

# mv composer.phar  /usr/bin
# chmod root:root /usr/bin/composer.phar
# ln -s /usr/bin/composer.phar  /usr/bin/composer

こちらは好みで実施してください。

npmの導入

npmとは「node package manager」の略で、JavaScript系のライブラリ管理ツールです。Laravel Jetstream(Laravelの認証システム)を利用する場合にはnpmの最新版が必要となります。なお、yumでnpmを導入する事は出来ますが、バージョンが古いため、一度yumで導入した後、自己アップデートを実施してからyumで導入した旧いものを削除するという対応になります。

# yum install nodejs npm
# npm install -g n
# n stable
# yum remove nodejs npm

上記のコマンドを実行した時に「コマンドが見つからない」となった場合は再ログインするか、ユーザの環境設定ファイルを再読み込みしてください。bashの場合は「. ~/.bash_profile」を実行します(yum版のnpmは/usr配下に導入されますが、自己アップデートしたnpmは/usr/local配下に導入されるため、パスを再読み込みしないとファイルが見つからない状態になります)。

Laravelの導入

Laravelのインストールはcomposerコマンドを使用して実施します。

$ composer create-project laravel/laravel --prefer-dist PROJECTDIR

上記のコマンドを実行すると、カレントディレクトリ直下に「PROJECTDIR」ディレクトリを新規に作成して、そこにLaravel一式が導入されます。

SELinux環境であれば、最低限「PROJECTDIR/storage」「PROJECTDIR/cache」のディレクトリにwebサーバユーザ(デフォルトではapache)へのアクセス権限を付与すれば動作します。あまり難しく考えたくない場合は下記のコマンドを実行した方が良いかも知れません。

# chcon -t httpd_sys_rw_content_t -R PROJECTDIR
# /usr/bin/setfacl -R -m u:apache:rwX -m u:YOURNAME:rwX PROJECTDIR
# /usr/bin/setfacl -dR -m u:apache:rwX -m u:YOURNAME:rwX PROJECTDIR

YOURNAMEは使用している一般ユーザ名、PROJECTDIRは上記Laravelインストール先ディレクトリに適宜読み替えてください。Apacheのhttpd.conf等でPROJECTDIR/publicをwebルートに設定していれば、そちらにアクセスする事でLaravelのwelcomeページが表示される筈です。

artisan

artisanとは、Laravelを管理する際に使用するコマンドです。Symfony4環境における「console」と同等のものと思って頂いて差し支えありません。例えばバージョン情報を表示したい場合は下記のように実行します。

$ ./artisan --version
Laravel Framework 8.19.0