12
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelをレンタルサーバーに手動デプロイする手順

Last updated at Posted at 2017-08-04

CPIの共用サーバーにLaravel5を手動デプロイするメモ。
難しいことはできない。

バージョン
Laravel 5.4.23
PHP 7.1.1
MySQL 5.6.30

パッケージ管理にはcomposerを使う。
バージョン管理にはGitを使う。

デプロイの流れ

localにあるプロジェクトをレポジトリにプッシュ。
RemoteにSSHログイン。
Remoteからレポジトリのプロジェクトをクローンもしくはプル。

プロジェクト作成

laravel new sample

開発はがんばる。

SSH利用前準備

コントロールパネルの「公開サイトSSHを利用する」から公開鍵を登録しておく。
ついでにSSHのポート番号も確認しておく。
localの~/.ssh/configに設定を書いておくと、
ssh 任意の名前で接続できて便利だよ。

Host 任意の名前
  HostName ホスト名
  User ユーザーID
  Port ポート番号

composerインストール

で、早速、SSHでログイン。

CPIでPHPコマンドを叩く時はこうする。

% php-7.1 -v
PHP 7.1.1 (cli) (built: Feb 17 2017 07:15:12) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

phpコマンドはない。
ふーん。

composerインストール

curl -sS https://getcomposer.org/installer | php-7.1

php-7.1 composer.pharと叩いてバージョンが表示されればOK。

プロジェクトインストール

ホスティングサービスはBitbucketを使用。
httpsでクローンしてくる想定。
URLはBitbucketからコピペしてくる。

git clone https://ユーザー名@bitbucket.org/ユーザー名/プロジェクト名.git laravel

プロジェクトルートへ移動。
パッケージインストール。

cd laravel/
php-7.1 ~/composer.phar install

post-install-cmdの箇所でエラーが出るので、手動で叩く。

php-7.1 artisan optimize

環境変数設定。

cp .env.example .env
vim .env

設定内容はこんな感じ。

APP_NAME=プロジェクト名
APP_ENV=production

# php-7.1 artisan key:generate
APP_KEY=作成したkey

APP_DEBUG=false
APP_LOG_LEVEL=debug
APP_URL=http://ドメイン名

# データベースはコントロールパネルの「MySQL 5.6 データベースの追加・削除」から作成しておくこと。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=データベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

# メールは下記の設定で送れた
MAIL_DRIVER=sendmail
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=任意のメールアドレス
MAIL_FROM_NAME=任意

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

いくつかコマンドを叩く。

php-7.1 artisan config:cache
php-7.1 artisan route:cache
php-7.1 artisan migrate
chmod 777 bootstrap/cache
chmod 777 storage

シンボリックリンクを張る。

ln -s /usr/home/ユーザーID/laravel/public/index.php /usr/home/ユーザーID/html

# 適宜CSSやJS、storageにも張る。

ドキュメントルートに.htaccess設置

cp ~/laravel/public/.htaccess ~/html/.htaccess
cd ~/html
vim .htaccess

内容を下記のように修正

# デフォルトバージョン以外のPHPを使用する場合
AddHandler x-httpd-php71 .php

# ここにバージョンに対応したphp.iniを設置する
# コンパネの「プログラムのパスとサーバーの情報」→「PHP ini の設定情報」からコピペ
suPHP_ConfigPath /usr/home/ユーザーID/conf/

# シンボリックリンクの有効化
Options +SymLinksIfOwnerMatch

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    # RewriteCond %{REQUEST_FILENAME} !-d <--これをコメントアウトして
    RewriteRule ^(.*)/$ /$1 <-- こう修正する

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

これを削除しておく。

rm ~/html/index.html

以上。

12
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?