- PHP
- 2021-05-25 - 更新:2021-06-10
さくらのレンタルサーバーにLaravelをインストールしてみました。
- さくらのレンタルサーバー – https://www.sakura.ne.jp/
- Laravel – http://laravel.jp/
プランがスタンダード以上である必要があります。(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が適用されません。