カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

さくらのレンタルサーバーにLaravelをインストール

さくらのレンタルサーバーにLaravelをインストールしてみました。

プランがスタンダード以上である必要があります。(SSHログインができないためです)

Windows PowerShell等を使ってSSHでログインします。

ログインが出来たら現在のディレクトリを確認してみましょう。

% pwd
/home/{username}

ユーザーのホームディレクトリにいることを確認できればOK。

Composerのインストール

LaravelをインストールするためにComposerが必要なのでインストールします。

% curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 2.0.14) successfully installed to: /home/{username}/composer.phar
Use it: php composer.phar

カレントディレクトリにcomposer.pharというファイルがあればインストール成功です。
念のため、インストールが出来ているか確認してみましょう。
次のコマンドを入力してください。

% php composer.phar

以下のように表示されたらインストールは完了しています。

  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.14 2021-05-21 17:03:37

Usage:
command [options] [arguments]

Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version

Laravelのインストール

いよいよLaravelをインストールします。
「test」というプロジェクト名で作成します。

% php composer.phar create-project laravel/laravel test
Creating a "laravel/laravel" project at "./test"
Installing laravel/laravel (v8.5.18)
- Downloading laravel/laravel (v8.5.18)
- Installing laravel/laravel (v8.5.18): Extracting archive
Created project in /home/{username}/test

~省略~

Package manifest generated successfully.
74 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.

「Application key set successfully.」と表示されればインストール完了です。

Laravelのバージョンを指定してインストールしたい場合は

% php composer.phar create-project "laravel/laravel=6.*" test

などとしてください。

公開用ファイルの移動

wwwディレクトリにtestディレクトリを作成

% cd /home/{username}/www
% mkdir test

プロジェクトのpublicディレクトリ内のファイルを全てwww/testディレクトリに移動

% cd /home/{username}/test/public
% mv * .[^\.]* /home/{username}/www/test

ディレクトリを移動したので、index.phpから読み込みファイルのパスを変更します。

require __DIR__.'/../vendor/autoload.php';
↓
require __DIR__.'/../../test/vendor/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';
↓
$app = require_once __DIR__.'/../../test/bootstrap/app.php';

プロジェクトのpublicディレクトリを一旦削除して、公開用ディレクトリへのリンクとしてpublicディレクトリを作成

% ln -s /home/{username}/www/test /home/{username}/test/public

動作確認

ブラウザでhttp://{username}.sakura.ne.jp/testにアクセスし、Laravelの初期画面が表示されればOKです。

環境設定

次に環境設定をしていきます。
プロジェクトのディレクトリに移動します。

% cd /home/{username}/test

エディターを使って.envファイルを編集します。

% vi .env
DB_CONNECTION=mysql
DB_HOST={データベースサーバー}
DB_PORT=3306
DB_DATABASE={データベース名}
DB_USERNAME={ユーザー名}
DB_PASSWORD={パスワード}

アプリケーションキーの生成

% php artisan key:generate
Application key set successfully.

データベースのマイグレーション

% php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (15.34ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (14.19ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (13.98ms)

phpMyAdmin等で確認するとテーブルが作成されていると思います。

メールを送信したりする場合はメールの設定もしておきます。

.envにメールの設定をする

MAIL_MAILER=smtp
MAIL_HOST={username}.sakura.ne.jp
MAIL_PORT=587
MAIL_USERNAME={アカウント}@{username}.sakura.ne.jp
MAIL_PASSWORD={パスワード}
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS={アカウント}@{username}.sakura.ne.jp
MAIL_FROM_NAME="${APP_NAME}"

キャッシュの設定

% ../composer.phar dump-autoload
% php artisan config:cache

tinkerを使ってテストメールを送ってみましょう。

% php artisan tinker
>>> Mail::raw('test mail', function($msg) { $msg->to('{送信先メールアドレス}')->subject('test'); });

成功した場合はnullが返ってきます。

※もし設定を間違えていて.envファイルを書き直した場合、キャッシュをクリアしないと設定が反映されません。


Formファサードの追加インストール

2021-05-31追記

問い合わせフォーム作成のためにFormファサード(laravelcollective/html)をインストールしました。
Laravel5.4ぐらいまでは標準でインストールされていたそうですが、現在はインストールされないようです。
プロジェクトのディレクトリにて以下のコマンドを実行します。

% ../composer.phar require "laravelcollective/html"

インストールが完了すると「composer.json」というファイルのrequireに"laravelcollective/html": "^6.2"と追加されていました。

ログイン認証機能を追加する

2021-06-02追記

Laravelにはログイン認証機能が標準で用意されているので簡単に組み込むことができます。
ただしレンタルサーバーではnpmコマンドがないためCSSを適用させることができません。

laravel/uiパッケージをインストールする

% ../composer.phar require "laravel/ui" --dev

artisanコマンドを実行する

% php artisan ui bootstrap --auth

※フレームワークの種類はbootstrap・Vue・Reactの中から選べます。

npmパッケージをインストールしてパッケージをビルドする

% npm install && npm run dev

これを実行し忘れるとCSSが適用されません。

この記事がお役に立ちましたらシェアお願いします
258 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です