SlideShare a Scribd company logo
https://connect-cms.org/
さくらレンサバに

Laravelをインストール

一般社団法人 Connect-CMS ユーザ会



2022-2-8

1

https://connect-cms.org/
自己紹介
● 井上 雅人(38)
● 所属:
○ 株式会社オープンソース・ワークショップ( 2019年1月~)
○ 一般社団法人 Connect-CMSユーザ会 理事
● https://github.com/masaton0216
● 横浜市
● 嫁(3X)/長女(10)/長男(6)/次男(0)
● 外遊びなんでも(直近スノーボード、パラグライダー等)
2
https://connect-cms.org/
今日の目標
● 目標
○ さくらのレンタルサーバに Laravelをインストールして動かす
○ LaravelでHello World的なアプリ(MVC)
○ LaravelでAPI
● 狙い
○ Webアプリ開発の為の更地を構築できるようにする
○ アプリを動かしてみて中身にも触れてみる
○ (Connect-CMSのありがたみを感じて信仰心をアップさせる 🤞)
3
https://connect-cms.org/
前提
● さくらレンタルサーバを使用
○ 契約済み
○ sshでログイン済み
○ 初期ドメインでのディレクトリインストール
■ 例)https://hogehoge.sakura.ne.jp/public
● 動作環境 ※レンサバはあまり意識する必要はありません。
○ PHP 7.4.25
○ MySQL 5.7
○ Laravel 8.81.0
※個別の技術要素に関する説明は深くしません。
4
https://connect-cms.org/
いざハンズオン
5
https://connect-cms.org/
(SSH)Composerをインストール
● コマンド
○ curl -sS https://getcomposer.org/installer | php
■ ※composer取得
○ mkdir /home/hogehoge/bin
■ ※プログラム置き場作成。「hogehoge」は適宜、読み替えてください。
○ mv composer.phar ~/bin/composer
■ ※プログラム置き場にcomposer移動
○ rehash
■ ※サーバのハッシュ再構築
○ composer -V
■ ※composer動作確認。versionが表示されれば成功
● Composerとは?
○ プログラミング言語「PHP」のパッケージ管理ソフトウェアです。
● パッケージとは?
○ どこかの誰かが開発してくれた既存のプログラムコード群です。
○ 何もかもをゼロからプログラミングすることは少なく「パッケージ(ライブラリと呼ぶこともあります)」を組み合わせてシステムを構築することが一般的です。
6
https://connect-cms.org/
(SSH)ComposerでLaravelをインストール
● コマンド
○ composer create-project laravel/laravel /home/hogehoge/laravel
● Laravelとは?
○ プログラミング言語「 PHP」のフレームワークです。
● フレームワークとは?
○ アプリケーションを載せる土台の骨組みソフトウェアのことです。
7
https://connect-cms.org/
(レンサバのコンパネ)データベース作成
※このスライドで作業するウィンドウはZoomに映さないでください。
● 手順
○ https://help.sakura.ad.jp/360000225021/
■ データベースホスト名: mysqlXX.hogehoge.sakura.ne.jp
■ データベース名:任意
■ データベースユーザ名: 任意
■ データベース接続用パスワード: 任意
● データベースとテーブル
○ データベース:テーブルの集合体
○ テーブル:種類毎にまとめられたデータ(レコード=行)の集合体
■ 例)ユーザテーブル、グループテーブル等
8
https://connect-cms.org/
(SSH)設定ファイル(.env)に加筆1
● コマンド
○ cd /home/hogehoge/laravel
○ vi .env
■ ※設定ファイルを編集モードで開く
● .envは何?
○ Laravelの環境設定ファイルです。 environmentの略です。
○ DBとの接続設定やメールソフトの設定等、種々の設定を記載します。
9
https://connect-cms.org/
(SSH)設定ファイル(.env)に加筆2
※このスライドで作業するウィンドウはZoomに映さないでください。
● .envファイルへの加筆内容
○ DB_HOST=mysqlXX.hogehoge.sakura.ne.jp
○ DB_DATABASE=※レンサバで作成したデータベース名
○ DB_USERNAME=※データベース接続ユーザ名
○ DB_PASSWORD=※データベース接続パスワード
10
https://connect-cms.org/
(SSH)Laravelのマイグレーションを実行
● コマンド
○ cd /home/hogehoge/laravel
○ php artisan migrate
● マイグレーションとは?
○ 移住/移転/移動などを意味しますが、システム業界界隈ではシステムやソフトウェア、データな
どの「移行」を指すことが多いです。
○ 上記コマンドではLaravelが動作するのに最低限必要なテーブル、及び、データを生成しています。
● artisan?
○ Laravelに標準搭載されているコマンド群です。
○ 「migrate」はマイグレーションファイルを元に DB変更を行うコマンドです。
○ 「artisan」コマンド群の「migrate」コマンドを「php」で実行してね、という意味です。
11
https://connect-cms.org/
(SSH)シンボリックリンクで公開ディレクトリと紐づけ
● コマンド
○ ln -s /home/hogehoge/laravel/public/ /home/hogehoge/www/public
■ ※ln -s [リンク元=Laravelルートディレクトリ] [リンク先=公開ディレクトリ ]
● ブラウザから確認
○ https://hogehoge.sakura.ne.jp/public/
● なぜシンボリックリンク?
○ [Laravelインストールディレクトリ ]/publicがLaravelのドキュメントルートになります。
○ この為、さくらのレンタルサーバの公開ディレクトリ(デフォルトでは www配下)とLaravelのルート
ディレクトリをシンボリックリンクで紐づけています。
12
https://connect-cms.org/
更地が完成
13
https://connect-cms.org/
Hello World的なアプリ
(MVC)
14
https://connect-cms.org/
(SSH)コントローラファイルの作成
● コマンド
○ cd /home/hogehoge/laravel
○ php artisan make:controller HelloController
● 何をしたの?
○ 画面(View)とDB(≒Model)の間で処理の割り振りを司るコントローラ( Controller)ファイルを作成
しました。
■ /home/hogehoge/laravel/app/Http/Controllers配下にHelloControllerが作成済みです。
○ MVCパターン(ソフトウェア設計手法)の内の「 C」の部分になります。
15
https://connect-cms.org/
(SSH)コントローラファイルの編集
● コマンド
○ vi /home/hogehoge/laravel/app/Http/Controllers/HelloController.php
○ 赤文字部分をコピー&ペーストしてください。
16
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppModelsUser;
class HelloController extends Controller
{
public function index()
{
return view('users', [
'users' => User::get()
]);
}
}
https://connect-cms.org/
(SSH)Viewファイルの作成
● コマンド
○ touch /home/hogehoge/laravel/resources/views/users.blade.php
● 何をしたの?
○ 「touch」はLinuxのコマンドです。
■ 厳密にはタイムスタンプの更新コマンドですがファイル新規作成にもよく使われます。
○ 画面用のファイル(View)として「users.blade.php」を空の状態で作成しました。
17
https://connect-cms.org/
(SSH)Viewファイルの編集
● コマンド
○ vi /home/hogehoge/laravel/resources/views/users.blade.php
○ 全部コピー&ペーストしてください。
18
<table>
<thead>
<tr>
<th>name</th>
<th>email</th>
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
</tr>
@endforeach
</tbody>
</table>
https://connect-cms.org/
(SSH)web.phpファイルの編集
● コマンド
○ vi /home/hogehoge/laravel/routes/web.php
○ 赤文字部分をコピー&ペーストしてください。
● 何をしたの?
○ ViewとController間の橋渡し(ルーティング)の設定を行いました。
■ 内容)[HOME URL]/usersをブラウザからリクエストした際、 HelloControllerのindexメソッドを
呼ぶ
19
<?php
use IlluminateSupportFacadesRoute;
~~~省略~~~
Route::get('/', function () {
return view('welcome');
});
Route::get('/users', 'AppHttpControllersHelloController@index');
https://connect-cms.org/
(レンサバのコンパネ)phpMyAdminからデータ追加
※このスライドで作業するウィンドウはZoomに映さないでください。
20
https://connect-cms.org/
(ブラウザ)動作確認
● URL
○ [HOME URL]/users
21
https://connect-cms.org/
API
22
https://connect-cms.org/
(SSH)コントローラファイルの編集
● コマンド
○ vi /home/hogehoge/laravel/app/Http/Controllers/HelloController.php
● 何をしたの?
○ DB取得結果をJSON形式で返すようにコントローラを修正しました。
○ DB取得結果を直接returnするとJSON形式でよしなに返してくれる Laravelの機能を使用していま
す。
23
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppModelsUser;
class HelloController extends Controller
{
public function index()
{
return User::get();
}
}
https://connect-cms.org/
(ブラウザ)動作確認
● URL
○ [HOME URL]/users
24
https://connect-cms.org/
Connect-CMS
● プロダクトWeb
○ https://connect-cms.jp/
● コミュニティ掲示板(質問・要望)
○ https://connect-cms.jp/forum
● GitHubアイデアIssue(提案)
○ https://github.com/opensource-workshop/connect-cms-ideas/issues
25
https://connect-cms.org/
ありがとうございました。
26

More Related Content

PPTX
Docker for connect cms
PDF
Vue.js with Go
PPTX
30分でわかった気になるWindows azure
PPTX
エンジニアにMacを薦める理由
PDF
20200629 web xr_techtokyo_1_min
PPTX
Google Apps Script 概要
PPTX
Cake Build
PPTX
jQuery+TypeScriptやってみた
Docker for connect cms
Vue.js with Go
30分でわかった気になるWindows azure
エンジニアにMacを薦める理由
20200629 web xr_techtokyo_1_min
Google Apps Script 概要
Cake Build
jQuery+TypeScriptやってみた

What's hot (17)

PDF
Excite beer bash06
PDF
Config mapについて
PPTX
30分でわかった気になるWindows azure
PPTX
Google Apps Script活用事例 Tokyo GAS 2013春
PDF
rdflintのvscode拡張の紹介とその実装方法
PDF
クラウドとGo言語とリモートワーク

PDF
FxOSはウェアラブルデバイスの夢を見るか?
PDF
コンテンツから始まる新しいWebワークフロー
PDF
PWAがOculus Storeに配信できるようになる
 
PDF
Lambda(Python)のデプロイについて考えたというか作った
PDF
Bot Builder V4 SDK + QnA Maker / LUIS
PDF
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PPTX
GoogleスプレッドシートをクラウドDBっぽく使う方法
PDF
(IDEユーザのための) ClojureのEmacs開発環境について
PPTX
.NET Standard で PostgreSql を使ってみた
PDF
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
PDF
プログラミングに恋する方法
Excite beer bash06
Config mapについて
30分でわかった気になるWindows azure
Google Apps Script活用事例 Tokyo GAS 2013春
rdflintのvscode拡張の紹介とその実装方法
クラウドとGo言語とリモートワーク

FxOSはウェアラブルデバイスの夢を見るか?
コンテンツから始まる新しいWebワークフロー
PWAがOculus Storeに配信できるようになる
 
Lambda(Python)のデプロイについて考えたというか作った
Bot Builder V4 SDK + QnA Maker / LUIS
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
GoogleスプレッドシートをクラウドDBっぽく使う方法
(IDEユーザのための) ClojureのEmacs開発環境について
.NET Standard で PostgreSql を使ってみた
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
プログラミングに恋する方法
Ad

20220208 さくらレンサバにlaravelをインストール