カテゴリー
Laravel

Laravelのタイムゾーン設定

環境

Laravel 7.*

Laravelのデフォルトのタイムゾーン設定はUTC(協定世界時)です。

UTC(協定世界時)とは、世界各地の標準時を決めるときの基準となる「世界標準時」のことです。

たとえば日本の標準時(JST)は「UTC」よりも 9時間進んでいるため「UTC+09:00」と表示されます。

タイムゾーンを日本時間に変更するには

/プロジェクト名/config/app.php

'timezone' => 'UTC',

'timezone' => 'Asia/Tokyo',

に変更します。

カテゴリー
Laravel

Bulmaのハンバーガーメニューが出ない

確認環境

Mac OS

Bulma

Laravel 5.7

XServer

XserverにLaravelをインストールしました。

レスポンシブWebサイトにしたいので、Bulma(ブーマ)を使ってみました。

しかし、navbarのハンバーガーメニューをクリックしてもメニューがなぜか表示されませんでした。

調べてみた結果、公式サイトでは、npmを使ってBulmaのパッケージをインストールすることを推奨しているのですが、私はこの方法でBulmaを使用していないので、どうもそれが原因みたいです。

なので、

以下のように修正してみました。

カテゴリー
Laravel

Laraveで生HTMLを表示する方法

blade.php

blade.phpはこのように書きます。

{!! $foo !!}


controller

controllerで以下のようにHTMLを書いて、上記のblade.phpに渡します。

$foo = '<img src="https://xxx" alt="xxx">';

カテゴリー
Laravel

Laravelの開発環境を構築する方法

Laravelの開発環境構築

<Windows10での構築を想定>
Laravelを使うには、PHPとComposerが必要です。
ComposerとはPHPの依存管理ツールです。
なので、まずはPHPをインストールします。

PHPをインストールする

PHPはこちらのサイトからダウンロードできます。
PHP Downloads

注意する点としては、
Laravel 5.6:PHP >= 7.1.3
Laravel 5.4:PHP >= 5.6.4
と、Laravelのバージョンによって、PHPのバージョンの要件が異なります。
Windowsの場合、
使いたいLaravelのバージョンにあった、PHPのバージョンのWindows downloadsの箇所をクリックします。

カテゴリー
Laravel

LaravelプロジェクトをGit Cloneする方法

以下のコマンドで、GitからLaravelプロジェクトをクローンします。

git clone [GitリポジトリのURL]

LaraveプロジェクトはGit Cloneしただけでは動きません

クローンしたプロジェクトは、vendorフォルダが含まれていないので、クローンしたフォルダに移動して、下記コマンドを実行します。

composer install
カテゴリー
Laravel

laravel サーバー(XSERVER)で環境構築方法

確認環境:

laravel 5.7

XSERVER X10プラン

php >= 7.1.3

mysql 5.7

前提

・XSERVERに契約しておく

・サブドメインが使えるよう初期ドメインとは別のドメインを取得しておく。

・ローカルでlaravelが使えるようにしておく。

手順1:SSHを有効にする

XSERVERのサイトにアクセスして、

サーバーパネル ー> ssh設定 を選択する。

SSH を有効にする。

XSERVERはパスワード認証によるSSH接続が利用できません。

なので、公開鍵認証でSSH接続をします。

生成するボタンを押すと、

[サーバーID].key

の秘密鍵ファイルがダウンロードされます。

これは手順4でSSH接続するときに使用します。

手順2:サブドメインの設定

サーバーパネル ー> サブドメイン設定 を選択する。

laravelのプロジェクト名のサブドメインを作る。

例)blog サブドメインを作る。

サブドメイン設定の追加を行うと、サーバー上の「public_html」フォルダ以下にサブドメイン名のフォルダが作成されます。

上記の例の場合、以下にサブドメイン「blog」フォルダが作成されます。

/home/jellyfish000/0jellyfish.xyz/public_html/blog

手順3:PHP 7.1設定

サーバーパネル ー> PHP Ver.切替 を選択する。

現在のバージョンを確認する。

laravel 5.7 は、PHP >= 7.1.3

なので、

要件を満たすように必要に応じてPHPのバージョンを変更します。

例)ドメインをPHP 7.2.6にする。

手順4:SSHでサーバーにアクセスする

ここで、手順1でダウンロードした秘密鍵ファイル名を使います。

<Macの場合>

ホームディレクトリに「.ssh」フォルダを作ります。

mkdir /.ssh

ここに手順1でダウンロードした秘密鍵ファイル名を置きます。

このファイルを適当な名前に変更します。

[サーバーID].key ー> id_xserver_rsa

「.ssh」ディレクトリと秘密鍵のパーミッションを変更します。

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_xserver_rsa

作成した「.ssh」フォルダに移動します。

cd ~/.ssh

ここまでの準備ができたら、ターミナルでサーバーにアクセスします。

ssh -l [ユーザー名(サーバーID)] -i [秘密鍵ファイル名] [サーバー名(ドメイン名)] -p[ポート番号]

例)

ssh -l jellyfish000 -i id_xserver_rsa 0jellyfish.xyz -p10022

この後、パスワードを聞かれるので入力する。

macのターミナルなら、パスワードのコピペができます。

ssh の接続に成功したら、

[サーバーID@サーバー番号 〜]$

のプロンプトが表示されます。

ssh を終了するときは、exit と入力します。

<Windowsの場合>

XSERVERのマニュアルを参考に、Tera Termを使ってSSH接続をします。

SSHソフトの設定(Tera Term)

手順5:サーバーでディレクトリを移動する

pwd で、今いる場所を確認。

例)

/home/jellyfish000

ls で、ファイル、フォルダを確認する。

例)

0jellyfish.xyz  Maildir  jellyfish000.xsrv.jp  ssl

のような感じで、表示されます。

上の例では、

・0jellyfish.xyz <--取得したドメイン

・ jellyfish000.xsrv.jp <--初期ドメイン

の2つドメインがあります。

初期ドメインはサブドメインの追加ができないので、

取得した「0jellyfish.xyz」ドメインにlaravel プロジェクトを設定します。

cd 0jellyfish.xyz

で、ディレクトリの移動。

/home/jellyfish000/0jellyfish.xyz

ls すると、「public_html」があるはずなので、

cd public_html

で、

/home/jellyfish000/0jellyfish.xyz/public_html

に移動する。

ここにlaravelをインストールします。

手順6:composerのインストール

laravelを使うためには、composerのインストールが必要です。

Download Composer

ここに記載されているコマンドを実行します。

注意する点は、XSERVERでは

/usr/bin/php7.2

この場所にversion7.2のphpがあります。

なので、以下のようにphpを指定しなおして、コマンドを実行します。

/usr/bin/php7.2 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" /usr/bin/php7.2 -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" /usr/bin/php7.2 composer-setup.php /usr/bin/php7.2 -r "unlink('composer-setup.php');"

コマンドを実行したら、

/home/jellyfish000/0jellyfish.xyz/public_html

に、composer.phar

ができていることを確認します。

composer -v

を実行して、composerのバージョンが表示されれば

composerのインストールが成功しています。

ローカルも同様にcomposerをインストールします。

手順7:laravelのインストール

composerのインストールが完了したら、

以下のコマンドで、サーバーにlaravelをインストールします。

/usr/bin/php7.2 composer.phar create-project --prefer-dist laravel/laravel [プロジェクト名] "5.7.*"

ここで指定する、プロジェクト名は、上記の手順2で作ったサブドメイン名と合わせてください。

なお、手順2でサブドメインを作った時に、サブドメイン名のフォルダが作成されますが、これは一旦、削除して、laravelをインストールしてください。

このフォルダがあると、laravelをインストールに失敗します。

ローカルも同様にlaravelをインストールします。

手順8:FTPツールでファイル転送

インストールできたら、FTPツールを使って、ローカルにインストールでできたファイル

(「vendor」フォルダ以外)を丸ごと、サーバーにアップロードします。

FTPツールは、macでもwindowsでも使える FileZilla がおすすめです。

サーバー設定 ー> FTPアカウント設定 を選択する。

FTPソフト設定タブ を確認する。

FTPツールの接続設定で、ここらへんの設定を使う。

FTPツールでファイルのアップロードが完了したら、

以下にアクセスして表示の確認する。

http://[プロジェクト名(サブドメイン名)].[ドメイン名]/public

例)

http://blog.0jellyfish.xyz/public/

にアクセスしてください。

以下のような画面が表示されれば、インストールが上手くできてます。

/[ドメイン名]/public_html/[サブドメイン名]

の下に

.htaccessファイルを作成し以下の設定をすれば、

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [QSA,L]

http://blog.0jellyfish.xyz

にアクセスで上記の画面が表示されます。

XSERVERでは、HerokuやGDPのようにデプロイができないので、

こんな感じで、ローカルとサーバーを手動で同期させています。

あとは、ローカルで編集したファイルをFTPツールでサーバーへアップロード

を繰り返し行います。

手順9:データベースの作成

上記の手順で、MVCモデルの「V」と「C」にあたる部分は環境が整いましたので、

あとは、「M」にあたる部分の環境構築として、データベースの設定を行います。

XSERVERのサイトにアクセスして、

サーバーパネル ー> MySQL設定 を選択します。

MySQL追加タブを選択します。

以下の設定を行い、追加するボタンを押します。

データベース名:jellyfish000_blog001

アクセス権所有ユーザ:jellyfish000_wp1

Laravelのプロジェクト名を連想させる名前がよいと思います。

手順10:.envファイルの設定

データベースを作成したら、プロジェクト名フォルダの直下にある「.env」ファイルの

以下の箇所を編集します。

DB_CONNECTION=mysql
DB_HOST=[下記のMySQL5.7 ホスト名]
DB_PORT=3306
DB_DATABASE=[手順9で指定した、データベース名]
DB_USERNAME=[手順9で指定した、アクセス権所有ユーザ名]
DB_PASSWORD=[手順9で指定した、アクセス権所有ユーザの接続パスワード]

ローカルで編集し、FTPツールでサーバーにアップロードします。

手順11:artisan migrateする。

手順4の通り、SSHでサーバーに接続して、laravelのプロジェクトフォルダに移動して、

以下のコマンドを実行します。

/usr/bin/php7.2 artisan migrate

laravelは、データベースの設定を何もしなくても、上記コマンドを実行すると、

デフォルトで以下の3つテーブルが作成されます。

migrations
password_resets
users

なお、

Illuminate\Database\QueryException エラーが出た場合はこちらの記事の対処をしてください。

MySQL5.6だと、以下のエラーが出るようです。

laravel migrate エラー Illuminate\Database\QueryException

手順12:phpMyAdminを確認する。

サーバーパネル ー> phpmyadmin(MySQL5.7) を選択し、

phpMyAdminの画面がでますので、

手順9で設定した、

ユーザ名、パスワード、サーバー名を選択し、実行ボタンを押します。

手順11の3つのデータベースが作成されていれば、成功です。

あとは、laravelで自由に、データベースを操作していきます。

カテゴリー
Laravel

Laravel5.6 GCPにDeploy

確認環境:

laravel 5.6

Google Cloud Platform(GCP)

Windows 10

Google Cloud Platform(GCP)に、laravel 5.6 で作ったプロジェクトをDeployする方法をメモしておきます。

前提

  • laravelを使えるようにして、プロジェクトを作成しておく。
  • Google Cloud Platform (GCP)のアカウントを作成しておく。
  • Google Cloud SDKをインストールしておく。

大まかな手順

  1. GCPでプロジェクトを作成する。
  2. GCPでプロジェクトの課金を設定する。
  3. Compute Engine で Linux 仮想マシンインスタンス(VMインスタンス)を作成する。
  4. App Engine のフレキシブル環境に、アプリケーションを作成する。
  5. laravelプロジェクトをデプロイする。
カテゴリー
Laravel

laravel migrate エラー Illuminate\Database\QueryException

確認環境:

laravel 5.4

ロリポップ スタンダードプラン

php >= 5.6.4

mysql

laravel 5.4 で migrate したら、以下のエラーが出ました。

対処方法をメモしておきます。

エラー内容

[Illuminate\Database\QueryException]                        SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`)) [PDOException]                                          SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

対処方法

app/Providers/AppServiceProvider.php

を以下のように編集します。

6、13

行目のコードを追加します。

<?php
  namespace App\Providers;

  use Illuminate\Support\ServiceProvider;
  use Illuminate\Support\Facades\Schema; //追加

class AppServiceProvider extends ServiceProvider { 
  /** * Bootstrap any application services. *
  * @return void */
  
  public function boot() {//
    Schema::defaultStringLength(191); //追加
  }
  /** * Register any application services. *
  * @return void */
  public function register() { //
  }
}

この後、

php artisan migrate:refresh

します。

ロリポップでは、

/usr/local/php7.1/bin/php artisan migrate:refresh

します。

参考:
Laravel 5.4: Specified key was too long error

カテゴリー
Laravel

laravel サーバー(ロリポップ)で環境構築方法

確認環境:

laravel 5.4

ロリポップ スタンダードプラン

php >= 5.6.4

mysql 5.6

前提

・ロリポップのスタンダードプラン以上に契約しておく

(エコノミー、ライトプランだと、SSHが使えない。)

・サブドメインが使えるように契約しておく。

・ローカルでlaravelが使えるようにしておく。

手順1:SSHを有効にする

ロリポップのサイトにアクセスして、

サーバーの管理・設定 ー> ssh を選択する。

SSH を有効にする。

カテゴリー
Laravel

laravel 5.2 レイアウトの管理

確認環境:

laravel 5.2

Windows 10

XAMPP 5.6.30(php 5.6.30)

laravel 5.2 でレイアウトの管理方法についてメモしておきます。

\resources\views に layout.blade.php ファイルを作成する。

デフォルトで生成されている、welcome.blade.php ファイルをコピーして編集します。