さくらインターネットでLaravelを使う

Laravel

さくらインターネットのレンタルサーバーでLaravelを使用する為に必要な手順のまとめ。

0.環境及び前提条件

・ローカルの作業環境:Windows10(Apache、PHP、MySQLを導入済み)
・Laravelのメジャーバージョン:8

ブログは下記の前提条件でまとめる
・作成するプロジェクト名:demo
・さくらインターネットアカウント:sakura
・プロジェクトの保存先:home/sakura
・フロントエンドには、Vue3を使用
・CSSは、Tailwindcssを使用

1.Laravelのプロジェクト作成

プロジェクトを作成するフォルダに移動した後、下記の操作で新規プロジェクトを作成する。

composer create-project "laravel/Laravel" demo

このコマンドで、最新バージョンのLaravelをインストールし、プロジェクトが作成されます。
もし使用するバージョンを指定したい際は、下記のコマンドを叩きます。

composer create-project "laravel/Laravel=[バージョン]" demo

バージョンには、ワイルドカード(*)が使用可能なので、”laravel/Laravel=8.*”と指定すると、laravel8の最新版がインストールされます。

※カレントフォルダ上にプロジェクトを作成する場合は、プロジェクト名の箇所を”.”で指定する(この場合、カレントフォルダには何も入ってない状態で作成する)。

2.公開フォルダの不整合を解消する ※これ重要

さくらインターネットのレンタルサーバーでホームページを公開する際、/home/sakura/wwwにファイルを置く必要がある。でも、Laravelプロジェクト上の公開フォルダは、/home/sakura/demo/public。さくらインターネット上でLaravelプロジェクトを公開するには、この不整合を解消する必要がある。

解消方法は、以下の通り
1.public内の実体ファイルを、/home/sakura/www内に移動する
2.Laravelプロジェクトから、移動した実体ファイルにアクセスできるようにpublicのリンクを作成する

2-1.public内の実体ファイルを移動

Laravelプロジェクトの公開フォルダ(/home/sakura/demo/public)の中にある実体ファイルを、全てさくらインターネットの公開フォルダ(/home/sakura/www/demo)に移動する。
※注意※
移動に伴いindex.phpに記載されているパスが通らなくなるため、移動したパス先に合わせて修正をしておくこと。

2-2.publicのリンクを作成する

Laravelプロジェクトから、さくらインターネットの公開フォルダ(/home/sakura/www/demo)に置いた実体ファイルにアクセス出来るように、publicフォルダをpublicリンクに置き換える。

リンクの通し方は以下の通り

linuxの書式
ln -s [実体ファイル] [シンボリックリンク]
ln -s /home/sakura/www/demo /home/sakura/demo/public
Windowsの書式
mklink /D [シンボリックリンク] [実体ファイル]
mklink /D /home/sakura/demo/public /home/sakura/www/demo

※管理者モードでの実行が必要

2-3. storageへのリンクを作成する

Laravelでは、画像データなどは/storage/app/publicに保存します。
でも、そのままでは公開フォルダからアクセスできないので、public→storageのリンクを張ります。

php artisan storage:link

このコマンドを入力すると、publicフォルダ内にstorageへのシンボリックリンクを作成します。
こうすることで、下記のようにassetで画像データなどにアクセスする事が可能になる。

<img src="{{ asset("storage/[アクセスするファイル]") }}" >

3.動作確認

https://sakura.sakura.ne.jp/demo/

下記の初期画面が表示されるのを確認する。

4.設定等

4-1.環境変数

Laravelプロジェクトで使用する環境変数は、.envに記載する。
DB設定等、ローカルとサーバで接続情報が異なる場合があるので、トラブルを避けるために開発用とリリース用で.envファイルを別けて管理する。例)

  • .env.prod ・・・ リリース用
  • .env.local ・・・ 開発環境用
.envファイルの切り替え方

デフォルでは、.envを読み込んでしまうため、動作しているサーバーによって読み込むファイルを切り替えるようにする。

修正するコード:/bootstrap/app.php

/**
* 読み込むenvファイルを切り換える
*/
switch ($_SERVER['SERVER_NAME'] ?? 'localhost') {
   case [サーバー1]:
      $app->loadEnvironmentFrom('.env.prod');
   break;
}

.htaccessで環境変数APP_ENVを指定して、Laravelが読み込む.envファイルを切り替えるやり方もあるが、、、.thaccessの編集は苦手なので上記コード対応を採用している。

日本設定

時間指定で処理するような制御を組む場合、日本時間で制御出来た方が都合が良かったりするので、日本設定をしておく。

修正するコード:/config/app.php

'timezone' => 'UTC'   -------> 'timezone' => 'Asia/Tokyo'
'locale' => 'en' -------> 'locale' => 'jp'
Vue3を使えるようにする

アールエフェクトさんの記事を参考に導入すればOK!

npmの取説

関連情報としてまとめておく

>パッケージのバージョンを調べる
npm show [パッケージ名] versions

>インストール済みパッケージのバージョン一覧(1階層まで)を表示
npm list --depth=0

>インストール済みパッケージのアップデート確認
npm outdated

>パッケージのアップデートを一括で書き換えてくれるncuコマンドについて
>インストール
npm install -g npm-check-updates
>実行(インストール済みパッケージの最新バージョンが通知される)
ncu

>パッケージ更新の流れ:①package.jsonを更新し、②それを元にパッケージインストール
>①package.jsonの更新
ncu -u [パッケージ名] --- 記載したパッケージのみ更新
ncu -u ------------------ 全パッケージ更新

>②更新したpackage.josnで、パッケージを更新する
npm update もしくは、 npm install
Tailwindcssを使えるようにする

公式サイトの導入方法を参考に実施

5.ライブラリを追加

必要なものを随時追加する

LINE SDKの場合
composer require linecorp/line-bot-sdk

※LINE SDKを使用する場合、socketエクステンションがないと怒られるので有効化が必要になる

TwitterOAuthの場合
composer require abraham/twitteroauth

記事中の写真は写真ACのものを使用しています
写真素材|無料素材のフリーダウンロードサイト【写真AC】を写真ACでチェック!

コメント

タイトルとURLをコピーしました