LoginSignup
1
3

More than 5 years have passed since last update.

Laravelの練習で確認くんを作成してみる

Last updated at Posted at 2018-01-28

概要

Laravelでのアプリケーション作成練習として、確認くんを作成してみる。

確認くんとは、以下のように、1ページで構成されたアプリケーションで、そのページにアクセスしてきたユーザーの情報を表示できるアプリケーション。
https://www.ugtop.com/spill.shtml

簡単なサービスでどこが本家だかわからないので、名前としてはユーザー情報表示くんとして作成してみる。
この作成を通して、自分なりのデプロイのフローを整備する。

完成したもの

公開中のアプリ http://gatetool.net/hyojikun/
github https://github.com/marcon-pha/hyojikun

まずはターミナルにてプロジェクトを作成

ローカル
laravel new hyojikun

ルーティーングの作成

ルーティングは表示くんのメインの画面となるindexと、全てのヘッダーを確認するためのallを用意する。
allについては、開発時用の昨日で、全てのヘッダーをjsonで返す機能とする。

hyojikun/routes/web.php
Route::get('/', "MainController@index");
Route::get('/all', "MainController@all");

コントローラーの作成

artisanでコントローラーを作成する

ローカル
php artisan make:controller MainController
hyojikun/app/Http/Controllers/MainController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class MainController extends Controller
{
    public function index(Request $request){
        $data = ["request" => $request];
        return view("index", $data);
    }

    public function all(Request $request){
        if (App::environment('local')) {
            return $request->server();            
        }else {
            return "この機能はテスト環境専用です。";
        }

    }

}

表示する項目の選定

artisanでローカルサーバを立ち上げ、allのアドレスにアクセスする。
jsonで様々な環境変数が出てくるため、実際に表示くんで取り扱う変数を決める。

ローカル
php artisan serve

ビューの作成

indexの画面だけ作成する
事前に決めておいた項目について、以下の形式で呼び出すことでビューに表示させる。
{{$request->server("パラメーター名"))}}
なお、アクセス時間だけはUNIXタイムとなってしまうため、date関数で変換して表示させる。

ロケールとタイムゾーンの設定

hyojikun/config/app.php
-     'timezone' => 'UTC',
+     'timezone' => 'Asia/Tokyo',
hyojikun/config/app.php
-      'locale' => 'en',
+      'locale' => 'ja',

githubへコミット

WEBのUIから、RREADMEファイルを含まない、空のリポジトリを作成する。
ローカルでgit initして、pushする。

ローカル
git init
git add .
git commit -m "first commit"
git remote add origin git@github.com:marcon-pha/hyojikun.git
git push -u origin master

本番デプロイ

git cloneで、githubからクローンしてくる。
git clone https://github.com/marcon-pha/hyojikun.git /var/www/html/hyojikun

なお、.envとvendorディレクトリ配下はgitignoreに指定されている。
.envは後続の手順で、生成する。
vendorはローカルから、scpなどで持ってくる。

権限変更

搭載後、権限を変更する。

chmod -R 775 /var/www/html/hyojikun
chmod -R 777 /var/www/html/hyojikun/storage
chmod -R 777 /var/www/html/hyojikun/bootstrap/cache
chown -R apache:kk /var/www/html/hyojikun

apacheへの設定追加

この状態だと、/hyojikunにアクセスすると、ソースが見えてしまうため、apacheの設定を変更する

/etc/httpd/conf
Alias /hyojikun "/var/www/html/hyojikun/public/"
<Directory "/var/www/html/hyojikun/public/">
  Options FollowSymLinks
  AllowOverride all
    Order allow,deny
  Allow from all
</Directory>

また、Laravelプロジェクト内にある.htaccessも修正しないと、indexページ以外が表示されなくなるため、修正を行う。

/var/www/html/hyojikun/public/.htaccess
    RewriteBase /hyojikun

.envの作成

.envには、プロダクション環境に変えることのみ以外は、何もしない。
なので、テンプレートファイルである、.env.exampleをコピーしてきて、APP_ENVの設定と、アプリキーの生成のみを行う。

リモートサーバ
php artisan down
cp .env.example .env
php artisan key:generate
sed -i -e "s/APP_ENV=local/APP_ENV=production/" /var/www/html/hyojikun/.env
php artisan up

完成

作成したルートにアクセスして動作を確認する
allの方は、localではないため、アクセスできなくなっている。
/hyojikun
/hyojikun/all

1
3
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
1
3