<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Laravel アーカイブ - ゴロ寝</title>
	<atom:link href="https://blog.gorone.site/archives/tag/laravel/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.gorone.site/archives/tag/laravel</link>
	<description></description>
	<lastBuildDate>Fri, 18 Mar 2022 04:57:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://blog.gorone.site/wp-content/uploads/2021/06/cropped-WS000006-32x32.jpg</url>
	<title>Laravel アーカイブ - ゴロ寝</title>
	<link>https://blog.gorone.site/archives/tag/laravel</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>vueの勉強の為に超シンプルなサイトを作りました</title>
		<link>https://blog.gorone.site/archives/765</link>
					<comments>https://blog.gorone.site/archives/765#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Thu, 10 Feb 2022 02:51:37 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[vue]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=765</guid>

					<description><![CDATA[<p>目次 vueかreactを使っている企業さんが多い作成したサイト苦労した点 vueかreactを使っている企業さんが多い フリーランスや正社員の応募要項などを見ると、javascriptはもうjQueryではなくvueか [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/765">vueの勉強の為に超シンプルなサイトを作りました</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">vueかreactを使っている企業さんが多い</a><ol><li><a href="#toc2" tabindex="0">作成したサイト</a><ol><li><a href="#toc3" tabindex="0">苦労した点</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">vueかreactを使っている企業さんが多い</span></h2>
<p>フリーランスや正社員の応募要項などを見ると、javascriptはもうjQueryではなくvueかreactの2択になってきています。<br />
ブランク時期が丁度その切り替え時期にあたっていたので、とりあえずvueから手を出してみました。</p>
<h3><span id="toc2">作成したサイト</span></h3>
<a rel="noopener" href="https://tasks-4188.herokuapp.com/tasks" title="No such app" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftasks-4188.herokuapp.com%2Ftasks?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">No such app</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://tasks-4188.herokuapp.com/tasks" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">tasks-4188.herokuapp.com</div></div></div></div></a>
<p>超シンプルなタスク管理アプリです。<br />
タスク管理アプリはなぜかチュートリアルなどで山ほど見るのでそこは困らなかったのですが、そのまま写経してしまうと同じになってしまうので、7つの習慣という本で４つのセクターに分けてタスクを消化するともっと幸せになれるよというのを参考に4つのカテゴリーから選ぶ様にしました。</p>
<a rel="noopener" href="https://amzn.to/3sr4HpX" title="Amazon.co.jp" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Famzn.to%2F3sr4HpX?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Amazon.co.jp</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://amzn.to/3sr4HpX" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">amzn.to</div></div></div></div></a>
<h4><span id="toc3">苦労した点</span></h4>
<p>今回作成したサイトがSPAに向いているかは置いておいてvueを使うとかなり簡単にSPAを作成する事が出来ました。<br />
ただやはりvue自体に慣れていない事もあって苦労する点は多かったです。</p>
<p>・苦労した点１：デバック<br />
これは単純にAPI経由のデバックのやり方が分かっていないせいもあるのかもしれませんが、APIで投げたリクエストでlaravelのコントローラーでキャッチするのですが、なぜかvar_dump+exitで止まってくれませんでした。<br />
結局APIの中身を見てオブジェクトを書き換える事は出来たので、その関数を通っている事は間違いないのですが、なぜ止まってくれないのか謎です。<br />
なぜかリスト一覧の時は止まってくれたので、vueのルーター機能でコンポーネント化すれば見れたかもしれません。<br />
ここはもう少し掘り下げて学習が必要です。</p>
<p>ただPHP側でデバックがやりにくいのはありましたが、Vue.js Devtoolsというクロームのアドオンを入れると持っているデータが見れるのでこれを使えば何とかなりました。</p>
<a rel="noopener" href="https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd" title="Vue.js devtools - Chrome Web Store" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://lh3.googleusercontent.com/Lu_6rc-5upC8g1v-SIBrYwQ8a-1blC81ZLSQss66IpTZ2_sinL7fP2ielWj3znVoIEtobNo-jlI39IV-7qnEvJWZb9A=s128-rj-sc0x00ffffff" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Vue.js devtools - Chrome Web Store</div><div class="blogcard-snippet external-blogcard-snippet">DevTools browser extension for Vue.js</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">chromewebstore.google.com</div></div></div></div></a>
<p>・苦労した点2:値渡し<br />
今回全部vueで書いたかというとそうではなく結局jqueryも使っています。<br />
ボタンを押した時に自動でセクションの部分が変わるようにしたのですが、その情報をvue側のテンプレートで拾ってくれない・・・。<br />
vueに慣れてる方ならその方法も分かると思うのですが、今回はその部分とリスポンシブ実装の部分をガッツリjqueryで書いてしまいました。</p>
<p>個人的にはやっぱりjqueryって便利だなと再確認したのと、SPAを作るのに関してはvueはかなりお手軽かと思いました。</p>
<p>ただ今回作ったのはタスクを入力してDBに登録、リストを表示する時もDBを読みに行くのでvueで完全な？SPAを作るとしたらnuxt.jsというのを使うみたいです。<br />
検索するとvueはjavascriptのアプリケーション(jqueryとかと同じ)でnuxtはフレームワークみたいです。<br />
nuxtはvue派生ですが、書き方などが少し違うようです。</p>
<p>次学習するのはnuxt、react、swiftもしたい。<br />
この3つの自分の中のポジションは、<br />
■弱点が潰せる<br />
nuxt、react<br />
■強みになるかも<br />
swift</p>
<p>swiftで遊びたいところですが、弱点を潰すのが先かなぁ。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/765">vueの勉強の為に超シンプルなサイトを作りました</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/765/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravel8開発環境セッティング(docker編)</title>
		<link>https://blog.gorone.site/archives/672</link>
					<comments>https://blog.gorone.site/archives/672#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Sun, 07 Nov 2021 02:50:02 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=672</guid>

					<description><![CDATA[<p>目次 windowsの方を対象にしていますwindows homeでもdocker desktopが使える！hello docker windowsの方を対象にしています windowsの方を対象にしてしていますが、仮想 [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/672">laravel8開発環境セッティング(docker編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">windowsの方を対象にしています</a><ol><li><a href="#toc2" tabindex="0">windows homeでもdocker desktopが使える！</a></li><li><a href="#toc3" tabindex="0">hello docker</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">windowsの方を対象にしています</span></h2>
<p>windowsの方を対象にしてしていますが、仮想環境内でのインストールする物などは同じなので、Macの方も参考程度になるとは思います。</p>
<h3><span id="toc2">windows homeでもdocker desktopが使える！</span></h3>
<p>これまではwindows pro以上の環境が求められていましたが、windows homeでもdocker desktopが使える様になりました。<br />
docker desktopの何がいいって分かりやすさです。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-673 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg" alt="docker" width="1024" height="582" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-300x171.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-768x437.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-160x90.jpg 160w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
docker psしなくても何が動いているのか一目瞭然です。</p>
<p>ただdocker psは使う事にはなるんですけどね。<br />
しかしコマンドを覚えなければというより、docker psしたくなるのです。<br />
それは追々話しましょう。</p>
<p>まずはdocker desktopをインストールしましょう。</p>
<a rel="noopener" href="https://www.docker.com/products/docker-desktop" title="Docker Desktop" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.docker.com/app/uploads/2013/06/Docker-logo-01.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Desktop</div><div class="blogcard-snippet external-blogcard-snippet">Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.docker.com/products/docker-desktop/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.docker.com</div></div></div></div></a>
<p>すいません、インストールする際の画面で何が聞かれるか覚えていないです。<br />
基本的に[next]あるいは[次へ]で進めていって問題ないです。</p>
<p>少し時間がかかりますが、docker desktop(長いのでここからdockerと省略します)がインストール出来たと思います。<br />
かわいいクジラアイコンがデスクトップにありますね、あるいはインストール後開くで既に開いているかもしれません。</p>
<p>特に問題なく開けた方はおめでとうございます。<br />
これでdockerはあなたの物です。</p>
<p>しかし、開くと何かエラーが出て起動出来ないという方がいるんじゃないでしょうか。<br />
私もそうでした。<br />
windowsではdockerを動かす為にHyper-Vという機能をONにしてあげる必要があります。<br />
パワーシェルを管理者モードで開いて下さい。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-674 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg" alt="パワーシェル" width="786" height="582" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg 786w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2-300x222.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2-768x569.jpg 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></a></p>
<p>真っ青な画面が出てきましたね。<br />
そこに<br />
bcdedit /set hypervisorlaunchtype auto<br />
と打ち込んでエンターです。</p>
<p>成功しました的な文字が出ればOKです。<br />
一旦再起動しましょう。</p>
<h3><span id="toc3">hello docker</span></h3>
<p>おそらくdockerは正常に開けたと思います。<br />
チュートリアルでhello dockerが出てくると思いますが、操作になれておきたい人はやってみて下さい。</p>
<p>ちょっとだけdockerの説明をすると、dockerはイメージを元にコンテナを作成します。<br />
意味が分かりませんね。</p>
<p>あまり例えが上手くないのですが、ゲームのドラクエをイメージだとします。<br />
これを起動すると当然ドラクエがスタートする訳ですが、このドラクエいい所まで進んだら普通はセーブをしますね。<br />
dockerの場合はイメージをセーブするのです。<br />
次回からはセーブしたイメージを元にコンテナを作るとセーブした内容が残っているので続きからプレイ出来ます。</p>
<p>意味不明だったら突っ込んで下さい。<br />
要はコンテナは一時的な物で起動している間は内容を覚えてくれていますが、電源を落とすとリセットされてまっさらな状態からスタート出来ます。</p>
<p>ただソースコードやDBの内容などはwindows側にdockerとの共有フォルダを作れるので保存しておく事が出来ます。</p>
<p>では元となるイメージを探してみましょう。</p>
<a rel="noopener" href="https://hub.docker.com/" title="Docker Hub Container Image Library | App Containerization" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/2e6747c9c30c5373998b333d246cb277.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Hub Container Image Library | App Containerization</div><div class="blogcard-snippet external-blogcard-snippet">Welcome to the world&#039;s largest container registry built for developers and open source contributors to find, use, and share their container images. Build, push ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://hub.docker.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">hub.docker.com</div></div></div></div></a>
<p>今回もvagrant編と同じようにcentos7を使用します。</p>
<a href="https://blog.gorone.site/archives/650" title="laravel8開発環境セッティング(vagrant編)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png 160w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-120x68.png 120w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-320x180.png 320w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">laravel8開発環境セッティング(vagrant編)</div><div class="blogcard-snippet internal-blogcard-snippet">laravel8がインストール出来ないという方向けに書いてみます。まずは仮想環境を用意しましょう。というのも筆者がxamp環境でインストールした事が無いのでやり方が分かりません^^;仮想環境を使えばサクっと出来上がるので、まだやった事が無い人は挑戦してみましょう。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.gorone.site" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">blog.gorone.site</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
<p>また前回の記事を読んで頂けたならお気づきでしょうが、laravelが既にセットされているイメージもあります。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-675 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg" alt="larabel8" width="481" height="198" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg 481w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2-300x123.jpg 300w" sizes="auto, (max-width: 481px) 100vw, 481px" /></a></p>
<p>ただdockerはイメージを繋いで起動する事が出来るので、上記のイメージはlaravel8のフォルダがあるだけのイメージかもしれません。</p>
<p>そういえば重要な事を書いていなかったのですが、dockerは言語、webサーバー、DB、FWもしかしたらもっと小さい単位で細分化されたイメージがあります。<br />
イメージを使えばいちいち自分でインストールする事なくその環境を手に入れる事が出来るのですが、docker初心者の私からすると最初はベースのOSのイメージとDBの組み合わせが分かりやすいと思います。<br />
勿論慣れてる方ややってみたい方は細分化されたイメージを繋いで色んな言語、DBなどを繋いで遊んでもいいと思います。</p>
<p>なぜベースイメージ+DBをオススメするかと言うと前述した通りdockerのコンテナはストップさせると中の状態をリセットします。<br />
その際ソースコードやDBの中身もリセットされてしまうので共有フォルダに保存しておきます。<br />
そうする事でコンテナがリセットされても途中まで書いていたソースやDBの中身を再現する事が出来る訳です。</p>
<p>なので最低限この２つのイメージを組み合わせると便利という訳です。<br />
という事でcentos7とまたherokuにアップするのが目的なのでposgreのイメージをDLします。</p>
<p>すいません、その前にprojetフォルダを作っておいて下さい。<br />
Cの直下などがオススメです。<br />
そのフォルダの中にdockerなど好きな名前でフォルダを作って下さい。<br />
一応注意として半角英数字でのみで作ったフォルダのパスまでいける様にしておいた方がトラブルが無いと思います。</p>
<p>dockerフォルダでまたパワーシェルを開いて下さい。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-676 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg" alt="パワーシェル" width="552" height="330" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg 552w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000004-300x179.jpg 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /></a><br />
そこで<br />
docker pull centos7<br />
と入力してエンターです。</p>
<p>もし失敗してしまったらgitが入っていない可能性があります。<br />
その場合gitを入れて再トライしてください。</p>
<a rel="noopener" href="https://git-scm.com/" title="Git" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fgit-scm.com%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Git</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://git-scm.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">git-scm.com</div></div></div></div></a>
<p>さぁどうでしょうcentos7は落とせたでしょうか。<br />
パワーシェルで<br />
docker ps -a<br />
をしてあげたらcentos7が表示されていると思います。</p>
<p>またせっかくdocker desktopを入れたのでそちらで確認も出来ます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-677 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg" alt="docker" width="1024" height="575" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-300x168.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-768x431.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-160x90.jpg 160w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-320x180.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
centos7がイメージの中にありますね。</p>
<p>この要領でpostgresSQLの9.6もDLします。<br />
docker pull bitnami/postgresql:9.6</p>
<p>無事イメージの取得は出来たでしょうか。</p>
<p>さてdockerの起動にはいくつか方法があります。<br />
docker run -it centos7<br />
と書いてあげれば起動します。</p>
<p>これにDBを繋いで・・・。<br />
うんやり方が分からない。難しい。<br />
ちなみに上で起動したcentos7はshellの指定なども行わないと操作できません。<br />
毎回長いコマンドを打たないといけないなんて大変だ、docker難しい・・・。</p>
<p>そんな事はありません。<br />
毎回指定してあげないといけない物はdocker-composeファイルに書いて置いて、それを元に起動してあげればあら不思議。<br />
とっても簡単にDBとの連携も共有フォルダも全部やってくれます。</p>
<p>さぁさぁcomposeファイルを作りましょう。<br />
先ほど作成したdockerフォルダの中に<br />
docker-compose.yml<br />
というファイルを作りましょう。</p>
<p>このファイルはvisual studio codeで開けます。<br />
多分メモ帳でも開けるのですが、何かしらのエディタをオススメします。<br />
というのもこのymlファイルは段落で設定の重要さ？を判定しているので段落がずれると正常に起動しません。<br />
要は段落が分かればいいので、スペースなどが可視化できるエディターの方が書きやすいです。</p>
<p>では中身を見てみましょう。</p>
<p>↓ここから中身</p>
<pre>

version: '3.7'

services:
  web2:
    container_name: "centos"
    image: centos:centos7
    volumes:
      - C:\project\docker\data:/home/data
    privileged: true
    command: /sbin/init
    tty: true
    ports:
     - 8080:80

  postgres:
    image: bitnami/postgresql:9.6
    restart: always
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: pikatyuu4188
      PGPASSWORD: pikatyuu4188
      POSTGRES_DB: mydb
      TZ: "Asia/Tokyo"
    ports:
      - 5432:5432
    volumes:
      - C:\project\docker\postgres:/var/lib/postgresql/data
 
volumes:
  web1:
  postgres:
</pre>
<p>↑ここまで中身<br />
とりあえず上記をコピペして保存して下さい。</p>
<p>私も分かっていない部分があるので、全部は説明できないのですが、まず</p>
<div class="info-box">version: &#8216;3.7&#8217;←これは自分で好きに変えていい数字ではなくcomposeファイルの書き方が3.7だという事になります。<br />
web2:←ここは好きに変えてOKです。docketの中に入るときにコレを指定するので長すぎると覚えるのが大変だよねという位です。<br />
image: centos:centos7←これはそのイメージを使うよという意味になります。<br />
volumes:←これは左側がwindowsのパスで右側がdockerの中のパスになります。windows側は相対パスでもいけるかもしれませんが私はダメだったので絶対パスにしています。<br />
privileged: true<br />
command: /sbin/init<br />
tty: true　←この辺りは中で操作できる様のおまじないだと思って下さい。<br />
ttyは中でデーモンがゾンビ化するのを防ぐとかだったと思います。<br />
ports:←これはwebサーバーの通り道やDBの通り道になります。<br />
察しのいい方はwebサーバーのポートとposgreのポートだと分かりますね。</p>
<p>DB側の設定については何となく予想がつくと思います。<br />
laravelなどをインストールした後、この値でDBに繋ぐ事が出来ます。<br />
勿論ユーザー名モロモロ変えちゃってOKです。</div>
<p>そういえば大事な事を書き忘れていました。<br />
起動の前に共有フォルダをwindows側で作ってあげておかないとダメです。<br />
上の設定通りだとdockerフォルダの中に[data]と[postgres]フォルダを作ってあげてください。</p>
<p>さぁ準備が出来ました。<br />
パワーシェルで<br />
docker-compose up -d<br />
と打ってください。<br />
数秒でコンテナが出来上がります。</p>
<p>エラーが出た方は突っ込みお願いします。<br />
docker desktopでも起動しているのが分かりますね。<br />
※dockerコンテナは既にあって作れなかったのでcentosとしています<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-679 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg" alt="docker" width="1024" height="578" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-300x169.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-768x434.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-160x90.jpg 160w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-320x180.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>では中に入ってみましょう。<br />
パワーシェルで<br />
docker-compose exec web2 /bin/bash<br />
と打ち込んで下さい。<br />
[root@c5453bb31251 /]#　みたいな表示に変わったでしょうか。<br />
これで後はこの中でnginxを入れたり、phpを入れたりするだけです。</p>
<p>ただ気になる点がある方もいるかもしれません。<br />
パワーシェルで操作するのかよ！そうです、割とやりにくいです。<br />
私も最初tera-tarmで繋ごうと思ったのですが、ググったり設定している最中にdockerは外部から接続するのはナンセンスという事だったのでパワーシェルで操作しています。<br />
どうしても見た目が・・・という方はgit bashを使う方法があります。<br />
git bashはgitを入れると一緒についてくるコンソールツールで見た目もなかなかいいです。</p>
<p>これを使うにはgit bashのexeまで行ってまずショートカットを作ります。<br />
そのショートカットのプロパティで作業用フォルダの中を空にして今作ったdockerフォルダの中に入れてあげます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-680 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg" alt="git bash" width="415" height="597" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg 415w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1-209x300.jpg 209w" sizes="auto, (max-width: 415px) 100vw, 415px" /></a></p>
<p>これでOKらしいのですが、私の環境だとdockerの中の現在位置が表示されなかったのでなくなくパワーシェルで作業しています。<br />
パワーシェルだとディレクトリが非常に見にくいので(青背景に青文字)なんで青なんだ！と思いますが、コンテナを設定してイメージをセーブしてしまえば対して使わないのでめちゃめちゃ使う時が来たらその時また考えます。<br />
追記：少し調べたら背景色はすぐ変更出来ました。</p>
<p>Color Toolというのを使うとパワーシェルの表示が変えられるっぽいのですが、なぜかコマンドプロンプトがpopになりましたｗ<br />
まぁ背景色を変えるだけで大分みやすいので問題ないです。</p>
<a rel="noopener" href="https://mimimopu.com/windows-powershell-color-font-change/" title="https://mimimopu.com/windows-powershell-color-font-change/" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmimimopu.com%2Fwindows-powershell-color-font-change%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://mimimopu.com/windows-powershell-color-font-change/</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mimimopu.com/windows-powershell-color-font-change/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mimimopu.com</div></div></div></div></a>
<p>さて話が脱線してしまいましたが、コンテナで作業した後イメージにセーブしないといけません。<br />
今はdockerの中にいると思いますが、exitコマンドで一度抜けて下さい。<br />
その後docker ps してあげます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-681 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg" alt="docker" width="1024" height="440" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1-300x129.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1-768x330.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
今起動中のコンテナが表示されます。</p>
<p>何か作業をして残しておきたい時はイメージをセーブすればOKです。<br />
セーブするコマンドは、<br />
docker commit [コンテナのID] [好きな名前]<br />
です。</p>
<p>もし画像の状態のcentosをセーブするなら<br />
docker commit c5453bb31251 test<br />
の様になります。</p>
<p>正直この運用方法がdocker的に正しいのか分かりませんが、作業履歴が残せます。<br />
もっと正しい運用方法があれば教えてください！</p>
<p>さて上のコマンドでtestイメージが作られました。<br />
次回からはこのtestイメージを使う訳ですが、docker-composeを少し変えてあげるだけです。</p>
<pre>

version: '3.7'

services:
  web2:
    container_name: "centos"
    image: test:latest　←ココを変えただけ
    volumes:
      - C:\project\docker\data:/home/data
    privileged: true
    command: /sbin/init
    tty: true
    ports:
     - 8080:80

  postgres:
    image: bitnami/postgresql:9.6
    restart: always
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: pikatyuu4188
      PGPASSWORD: pikatyuu4188
      POSTGRES_DB: mydb
      TZ: "Asia/Tokyo"
    ports:
      - 5432:5432
    volumes:
      - C:\project\docker\postgres:/var/lib/postgresql/data
 
volumes:
  web1:
  postgres:
</pre>
<p>セーブする際に毎回同じイメージ名でコミットするなら常に最後のセーブポイントから復帰できますし、イメージを自動で上書きしてくれるので余計なイメージを量産する事にもなりません。<br />
逆に分けたい場合はイメージ名を変えてあげればOKです。</p>
<p>ちょっと長くなってしまいましたが、docker desktopの使い方は以上になります。<br />
もっと賢い使い方もあるかもしれませんが、私自身初級者なので是非教えて下さい。</p>
<p>肝心にlarabelのインストールについてですが、作業自体は全く同じなので、vagrant編の[まずはnginxを入れてみよう]あたりから参考にしてみて下さい。<br />
同じcentos7なので全く同じ作業で入るはずです。<br />
ここが分からないなどあれば突っ込みお願いします。</p>
<a href="https://blog.gorone.site/archives/650#toc4" title="laravel8開発環境セッティング(vagrant編)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png 160w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-120x68.png 120w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-320x180.png 320w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">laravel8開発環境セッティング(vagrant編)</div><div class="blogcard-snippet internal-blogcard-snippet">laravel8がインストール出来ないという方向けに書いてみます。まずは仮想環境を用意しましょう。というのも筆者がxamp環境でインストールした事が無いのでやり方が分かりません^^;仮想環境を使えばサクっと出来上がるので、まだやった事が無い人は挑戦してみましょう。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.gorone.site" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">blog.gorone.site</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
<p>投稿 <a href="https://blog.gorone.site/archives/672">laravel8開発環境セッティング(docker編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/672/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravel8開発環境セッティング(vagrant編)</title>
		<link>https://blog.gorone.site/archives/650</link>
					<comments>https://blog.gorone.site/archives/650#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Sat, 06 Nov 2021 03:19:48 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[vagrant]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=650</guid>

					<description><![CDATA[<p>目次 仮想環境を使うと便利vagrant編仮想環境の中に入ろうまずはnginxを入れてみようphpを入れてみようDBを入れよういよいよlaravel 仮想環境を使うと便利 laravel8がインストール出来ないという方向 [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/650">laravel8開発環境セッティング(vagrant編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">仮想環境を使うと便利</a><ol><li><a href="#toc2" tabindex="0">vagrant編</a><ol><li><a href="#toc3" tabindex="0">仮想環境の中に入ろう</a></li><li><a href="#toc4" tabindex="0">まずはnginxを入れてみよう</a></li><li><a href="#toc5" tabindex="0">phpを入れてみよう</a></li><li><a href="#toc6" tabindex="0">DBを入れよう</a></li><li><a href="#toc7" tabindex="0">いよいよlaravel</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">仮想環境を使うと便利</span></h2>
<p>laravel8がインストール出来ないという方向けに書いてみます。</p>
<p>まずは仮想環境を用意しましょう。<br />
というのも筆者がxamp環境でインストールした事が無いのでやり方が分かりません^^;<br />
仮想環境を使えばサクっと出来上がるので、まだやった事が無い人は挑戦してみましょう。</p>
<p>ちなみにwindows環境を想定しています。<br />
ですが、macでも仮想環境の下地は一緒なのでほぼ同じ作業で出来るはずです</p>
<h3><span id="toc2">vagrant編</span></h3>
<p>まずvagrantって何？という点ですが、vagrantは<span class="red">VirtualBox</span>などを拡張して使う事になります。<br />
<span class="red">VirtualBox</span>とは仮想環境を作る根本となるソフトです。</p>
<p>VirtualBoxを使えばwindowsの中にwindows、macの中にwindowsなどが出来ます。(bootcampで入れられるなどは一旦置いておいて)<br />
その様な使い方も出来ますが、開発環境を構築するのに向いています。<br />
VirtualBoxの中にlinux(大体がライセンスフリー)を入れて開発環境を構築出来ます。</p>
<p>VirtualBox単体だと下記の様な感じ。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-651 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000.jpg" alt="VirtualBox" width="767" height="576" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000.jpg 767w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-300x225.jpg 300w" sizes="auto, (max-width: 767px) 100vw, 767px" /></a><br />
勿論これにlinuxを入れて動かす事も出来ますが、OSのイメージを取得してきてインストールするのはめんどくさいですよね。</p>
<p>そこにvagrantというツールを合わせて使うとお手軽に仮想環境が出来ます。</p>
<p>まずは両方のソフトをインストールします。</p>
<a rel="noopener" href="https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html" title="Oracle VM VirtualBox - &#12480;&#12454;&#12531;&#12525;&#12540;&#12489;| Oracle Technology Network | &#12458;&#12521;&#12463;&#12523; | Oracle &#26085;&#26412;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.oracle.com%2Fjp%2Fvirtualization%2Ftechnologies%2Fvm%2Fdownloads%2Fvirtualbox-downloads.html?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Oracle VM VirtualBox - &#12480;&#12454;&#12531;&#12525;&#12540;&#12489;| Oracle Technology Network | &#12458;&#12521;&#12463;&#12523; | Oracle &#26085;&#26412;</div><div class="blogcard-snippet external-blogcard-snippet">Download the latest version of Oracle VM VirtualBox.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.oracle.com</div></div></div></div></a>
<a rel="noopener" href="https://www.vagrantup.com/" title="Vagrant by HashiCorp" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/ec7e376c0205de246d97e12f3c70fcf4.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Vagrant by HashiCorp</div><div class="blogcard-snippet external-blogcard-snippet">Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.vagrantup.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.vagrantup.com</div></div></div></div></a>
<p>最近はあまり無いとは思いますが、verによって上手くvagrantが動かない事があります。<br />
その場合はverを下げてみたりしてトライしてみて下さい。</p>
<p>早速起動といきたいところですが、windows側でも設定する事が1つあります。<br />
windowsのHyper-Vという機能を切ってあげます。<br />
後述しますが、dockerの場合はHyper-Vが必要で、vagrantの場合はHyper-Vがいりません。<br />
一緒に動かせれば一番有難いのですが、私の環境ではどちらか一方しか動かなかったのです。</p>
<p>Hyper-Vを切るには、パワーシェルを管理者として開くで開いて下さい。<br />
デフォルトだと青い画面が開かれたと思います。<br />
そこに下記をコピペして実行してあげてください。</p>
<div class="ao">bcdedit /set hypervisorlaunchtype off</div>
<p>これでハイパーVが切れました。</p>
<p>一旦再起動してください。</p>
<p>さてさて再起動が終わった所でいよいよvagrantの実行です。<br />
Cドライブの直下に「project」フォルダを作って下さい。<br />
正直フォルダ名は何でも大丈夫ですが、半角で英数字でないと上手く起動しないかもしれないです。</p>
<p>作ったフォルダの中に更に「test」というフォルダを作って下さい。<br />
これはvagrantがフォルダ毎に仮想環境を切り替えられるので、プロジェクト毎にフォルダを作った方が利便性が高い為です。<br />
testフォルダの中に入って右上のファイル→パワーシェル→管理者モードでまたパワーシェルを開いて下さい。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-652 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001.jpg" alt="パワーシェル" width="989" height="714" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001.jpg 989w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-300x217.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-768x554.jpg 768w" sizes="auto, (max-width: 989px) 100vw, 989px" /></a></p>
<p>また青い画面の登場です。<br />
その青い画面に<span class="ao">vagrand init</span>と入れて下さい。<br />
すると、testフォルダの中に<span class="bold">Vagrantfile</span>というファイルが作成されました。<br />
開いてみましょう。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-653 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003.jpg" alt="vagrant" width="757" height="905" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003.jpg 757w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-251x300.jpg 251w" sizes="auto, (max-width: 757px) 100vw, 757px" /></a></p>
<p>おーなんだか難しそうですね。<br />
でも実は簡単です。<br />
ほとんどがコメントアウトされている事にお気づきでしょう。<br />
説明が書いてあって、この機能使いますか？という感じに書かれています。</p>
<p>ここで重要なのは4点です。</p>
<div class="info-box"><span class="bold-red"><br />
・何をベースに仮想環境を作るか<br />
・tera-termなどで繋ぐ際のIP<br />
・ソースコードをwindowsで操作できる様に仮想環境⇔windowsの共有フォルダ<br />
・apacheやnginxなどでブラウザで見る時のポート<br />
</span><br />
・DBを専用ソフトなどで見る際のポート(これは無くてもいい)<br />
・使用するメモリ(これはデフォでコメントアウトされていないので残しておきましょう)</div>
<p>なので、いらない部分を削ると下記の様になります。(別に削らなくてもOK)</p>
<pre># -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.box = "centos7"　#←ベースのOS
  config.vm.network "forwarded_port", guest: 80, host: 8080　#←apacheなどのポート
  config.vm.network "forwarded_port", guest: 5432, host: 5432　#←DBのポート
  config.vm.network "private_network", ip: "192.168.33.100"　#←tera-termなどで繋ぐ際のIP
  config.vm.synced_folder ".", "/vagrant", type:"virtualbox"　#←共有フォルダ
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"　#←メモリ
  end
end
</pre>
<p><a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-655 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-1.jpg" alt="vagrant" width="898" height="565" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-1.jpg 898w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-1-300x189.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-1-768x483.jpg 768w" sizes="auto, (max-width: 898px) 100vw, 898px" /></a></p>
<p>上のままでも起動できると思いますが、ここでvagrantのイメージを見てみましょう。<br />
今回はまっさらなcentosの7というOSをイメージとして使いましたが、vagrantのイメージは他にもたくさんあります。</p>
<a rel="noopener" href="https://app.vagrantup.com/boxes/search" title="HashiCorp Cloud Platform" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fapp.vagrantup.com%2Fboxes%2Fsearch?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">HashiCorp Cloud Platform</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://app.vagrantup.com/boxes/search" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">app.vagrantup.com</div></div></div></div></a>
<p>linuxというのはwebサーバー向けのOSでwindowsの様にマウスを使ったり、ブラウザがあったりする物もあります。<br />
いわゆるGUIがついている物です。<br />
生粋のプログラマーの方だとwindowsやMacでなくlinuxを普段のPCとして使っている方もいます。<br />
そしてMacもまたUnixというLinuxの兄弟の様なOSをアップルが拡張して作った物になります。<br />
ただunixとlinuxが似ているのは確かでweb開発だと主にlinuxを使うので、そこで兄弟で相性のいいMacを使う方が多いです。</p>
<p>さて少し話がずれましたが、vagrantで使うイメージの話です。<br />
実のところlaravelを使いたいだけなら既にイメージがあります。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-656 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-1.jpg" alt="laravel" width="1024" height="260" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-1-300x76.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-1-768x195.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000002.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-657 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000002.jpg" alt="laravel" width="630" height="272" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000002.jpg 630w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000002-300x130.jpg 300w" sizes="auto, (max-width: 630px) 100vw, 630px" /></a></p>
<p>これをベースのOSに指定してあげればlaravelはそのまま使えます。<br />
ですが、あまり推奨しません。<br />
自分が使っていないので、どんな物か分からないのと、構築する楽しみが味わえないなんて勿体ない！</p>
<p>あと自分で構築した物だと最低限自分で入れたソフトウェアの設定箇所などが分かるので便利です。</p>
<p>ここから先は若干難しいですが、1時間ほどで出来ると思います。</p>
<h4><span id="toc3">仮想環境の中に入ろう</span></h4>
<p>OSを入れたての場合はまずOSを更新してあげましょう。<br />
windowsやmacで言うところの機能の更新です。<br />
linuxはサーバー用途で使う事が多いので、自動では機能の更新をしません。</p>
<p>その為、入れたてのlinuxはまず全体の更新をしてあげましょう。<br />
ここからはcentos7を入れた物として書きます。<br />
linuxにも種類がありますが、良くAWSのamazon linuxも同じコマンドで扱えるのでcentos(red hat系)で慣れておくと便利です。</p>
<p>まずはlinuxに接続する必要がありますね。<br />
私はtera-termというソフトを使いますが、これもコンソール系のアプリが色々あるので好きなのを選択して下さい。<br />
もしtera-termでいいよという方は下記からDLして下さい。</p>
<a rel="noopener" href="https://forest.watch.impress.co.jp/library/software/utf8teraterm/" title="窓の杜" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/2a584a58a364a0c2492c57fb1a357bfb.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">窓の杜</div><div class="blogcard-snippet external-blogcard-snippet">「Tera Term」定番のターミナルエミュレーター</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://forest.watch.impress.co.jp/library/software/utf8teraterm/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">forest.watch.impress.co.jp</div></div></div></div></a>
<p>Macの場合は、コンソールから出来ると思うのですいませんがググってみて下さい。<br />
又、実はwindowsの場合も先ほどのパワーシェルの画面から仮想環境の中に入れます。<br />
vagrant sshと入力すると仮想環境の中に入れます。</p>
<p>私はパワーシェルだとディレクトリが見にくいのと実際にAWSなどに接続する際もtera-termなどを使うのでコチラをオススメします。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-659 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-1.jpg" alt="tera-term" width="649" height="475" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-1.jpg 649w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-1-300x220.jpg 300w" sizes="auto, (max-width: 649px) 100vw, 649px" /></a></p>
<p>先ほど設定した<span class="bold">tera-termなどで繋ぐ際のIP</span>を入れて下さい。<br />
ポートは変更していないなら22でOKです。<br />
次に進むとパスワードを聞かれます。<br />
ここも何も設定していなければ、<br />
ユーザー：vagrant<br />
パスワード：vagrant<br />
で入れます。</p>
<p>どうでしょうか、入れたでしょうか。<br />
入れれば下記の画面の様になります。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-660 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005.jpg" alt="vagrant" width="647" height="476" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005.jpg 647w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-300x221.jpg 300w" sizes="auto, (max-width: 647px) 100vw, 647px" /></a></p>
<p>おめでとうございます！これでもう好き勝手に遊んでいい仮想環境が手に入りました！<br />
この中で何か不具合が起きてもwindowsやMacにも99%影響がないので安心して下さい(ファイルの容量は使いますけどねｗ)<br />
さてまずは先ほど書いたOSのアップデートを行いましょう。<br />
sudo yum update<br />
と入力してエンターを押してあげて下さい。<br />
途中で<br />
Is this ok [y/d/N]:<br />
と聞かれるので y と入力してエンターです。</p>
<p>何やら凄い量のファイルが表示されますね。<br />
でも安心して下さい。<br />
特殊な環境を除けばyum はファイルの互換性などを自動で調整してくれるので安心です。</p>
<div class="info-box">補足：sudo とは管理者権限で実行するという意味です。<br />
linuxはrootという管理者ユーザーが存在しますが、まずこのモードで操作する事はありません。<br />
その代わりにsudoというコマンドを入れてあげると管理者権限で実行できます。<br />
試しにyum update だけで実行してみましょう、多分実行出来なかったはずです。<br />
このsudoもどのユーザーに割り当てたりなど設定は出来ますが、今は置いておきます。</div>
<h4><span id="toc4">まずはnginxを入れてみよう</span></h4>
<p>まだ何やら文字列だらけで本当に動いているのか分からないですよね。<br />
まずはnginxを入れてブラウザで仮想環境が動いている事を実感しましょう。</p>
<p>nginxとは何ぞやという話ですが、apacheと近しい物という認識でOKです。<br />
nginxの方が大体の環境においてapacheより描写が早いのが特徴です。</p>
<p>sudo yum install nginx　でそのまま入るかもしれませんが、どうせなら最新の物を入れましょう。<br />
最新の物を入れるにはリポジトリを追加します。<br />
リポジトリとは何ぞやですが、yumコマンドで何かインストールする時はリポジトリを参照してインストールします。<br />
なのでリポジトリに無い物や新しいバージョンの物を入れたい時にはリポジトリを追加してあげます。</p>
<p>ここでviを使います。<br />
メモ帳みたいなもんです。<br />
ただこのメモ帳はクセが凄いので慣れが必要です。<br />
まずは<br />
sudo vi /etc/yum.repos.d/nginx.repo<br />
と入力しエンターを押してください。</p>
<p>何も書かれて無い画面が表示されましたね。<br />
まずは　a を押して下さい。<br />
左下の文字がinsertに変わりましたね。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-661 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006.jpg" alt="ターム" width="634" height="482" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006.jpg 634w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-300x228.jpg 300w" sizes="auto, (max-width: 634px) 100vw, 634px" /></a><br />
これで文字を入力する準備が出来ました。</p>
<p>そこに下記をコピペして下さい。<br />
windowsではコピペする時に「貼る」などを選択する必要がありますが、linuxでは右クリックするとコピペできます。</p>
<pre>[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
</pre>
<p>コピペ出来たらEscキー、キーボードの一番左上のキーを押して下さい。<br />
insertの文字が消えたらOKです。<br />
その次に :wq<br />
と入力して下さい。<br />
これで保存出来ました。</p>
<p>viには :　の次に色んなコマンドを入れてファイルを操作する事が出来ます。<br />
今回の場合は<br />
w ←保存<br />
q ←viを抜ける<br />
です。</p>
<p>vimerの方にはそれちょっと違うよと突っ込まれてしまいそうですが、vi,vimにはあまり慣れていないのでお許し下さい。</p>
<p>さてこれで最新のnginxを入れる用意が出来ました。<br />
sudo yum install nginx<br />
を実行しましょう。</p>
<p>またザザっと文字が出てきてy n が出ていると思いますが、yです。<br />
適当な翻訳：nginx入れるけどいいか？y(yes)n(no)どっちだ？です。</p>
<p>ちなみにそんなのyesだよという方は<br />
sudo yum install -y nginx<br />
と入れて下さい。<br />
お察しの良い方はyesだよと最初から指定出来ます。</p>
<p>さて入れただけではまだ動いていません。<br />
sudo systemctl start nginx<br />
と入れてあげると動きます。<br />
ついでに<br />
sudo systemctl enable nginx<br />
も入れておきましょう。</p>
<p>基本的にcentos7は<br />
systemctl start<br />
systemctl stop<br />
systemctl restart<br />
でソフトに命令を出せます。</p>
<p>systemctl enable　の方はwindowsでいうスタートアップみたいな物でcentosが起動したら一緒にそのソフトも起動させてくれます。</p>
<p>さて、これで仮想環境のnginx君は動いています。<br />
http://localhost:8080/<br />
又は、<br />
http://192.168.33.100:8080<br />
などをブラウザで開いてみて下さい。</p>
<p>おそらくnginxだよ！みたいな画面が出てくると思います。<br />
私の場合は既に設定があってファイルパスを変えただけだと上手く最初の画面が開けなくて悲しい画面でした。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-662 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007.jpg" alt="悲しい" width="278" height="119" /></a></p>
<h4><span id="toc5">phpを入れてみよう</span></h4>
<p>さてお次はPHPを入れてみましょう。<br />
これも好みはありますが、どうせなら最新の物を入れましょう。<br />
最新の物を入れるにはまず、リポジトリの追加ですね。<br />
これは先ほどより簡単、です下記のコマンドを実行しましょう。<br />
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm</p>
<p>これで最新のPHPを入れる事が出来ます。</p>
<p>一応レポジトリが入っているか確認してみましょう。</p>
<pre>[vagrant@localhost ~]$ ls -l /etc/yum.repos.d/
合計 116
-rw-r--r-- 1 root root 1664 7月 8 12:42 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 11月 23 2020 CentOS-CR.repo
-rw-r--r-- 1 root root 649 11月 23 2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 630 11月 23 2020 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 11月 23 2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 8515 11月 23 2020 CentOS-Vault.repo
-rw-r--r-- 1 root root 314 11月 23 2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 616 11月 23 2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1457 9月 4 19:37 epel-testing.repo
-rw-r--r-- 1 root root 951 7月 8 12:47 epel.repo
-rw-r--r-- 1 root root 1358 9月 4 19:37 epel.repo.rpmnew
-rw-r--r-- 1 root root 99 11月 6 01:50 nginx.repo
-rw-r--r-- 1 root root 446 9月 2 11:35 remi-glpi91.repo
-rw-r--r-- 1 root root 446 9月 2 11:35 remi-glpi92.repo
-rw-r--r-- 1 root root 446 9月 2 11:35 remi-glpi93.repo
-rw-r--r-- 1 root root 446 9月 2 11:35 remi-glpi94.repo
-rw-r--r-- 1 root root 855 9月 2 11:35 remi-modular.repo
-rw-r--r-- 1 root root 456 9月 2 11:35 remi-php54.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php70.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php71.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php72.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php73.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php74.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php80.repo
-rw-r--r-- 1 root root 1314 9月 2 11:35 remi-php81.repo
-rw-r--r-- 1 root root 750 9月 2 11:35 remi-safe.repo
-rw-r--r-- 1 root root 2605 9月 2 11:35 remi.repo
</pre>
<p>PHPの8.1版まで入れられますね。<br />
lalavel8はPHP7.3以上入れればいいので、安定版だと思われる74。最新の81どちらでも大丈夫です。<br />
私はdockerでは8.1でvagarantでは7.4ですがとくに意味は無いです。<br />
両方動きますし、本番環境と合わせてあげると良いです。</p>
<p>ではvagrantでは7.4なので7.4をインストールするコマンドです。</p>
<pre>
sudo yum -y install --enablerepo=remi,remi-<span class="red-under">php74</span> php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-fpm php-zip php-pgsql
</pre>
<p>最新の物を入れたい方は、赤のラインの所をphp81にして下さい。</p>
<p>これが入れ終わったら、</p>
<pre>
sudo yum install --enablerepo=remi-<span class="red-under">php74</span> composer
</pre>
<p>も入れて下さい。(一緒に入れても問題ないかもですが)</p>
<p>この<span class="bold">composer</span>なる物でlaravelを入れます。<br />
このcomposerですが、PHP版のyumみたいな物でlaravelに何か機能を追加する時に使うのと、laravel意外のFWを入れる時もPHPのこの機能が足りないよなどと教えてくれます。<br />
結構嫌いな人も居るみたいですが、最終的にherokuなどにアプリをアップする時は必要になるのでとりあえず入れておきましょう。</p>
<p>PHPは入れ終わったので、実際に動いているか確かめましょう。<br />
まずphp-fpmというプログラムを起動します。<br />
これは先ほどと同じ様に、<br />
sudo systemctl start php-fpm<br />
ついでに<br />
sudo systemctl enable php-fpm<br />
としてあげます。</p>
<p>次に共有フォルダの中にdataというフォルダを作って、その中にindex.phpというファイルを作ります。<br />
その中身に<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000010.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-669 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000010.jpg" alt="php" width="130" height="85" /></a><br />
※すいませんコードを書いたらエスケープが働いて表示されなかったので画像にしました<br />
とだけ書いて保存して下さい。</p>
<p>次にnginxの設定です。<br />
下記を開いて下さい。<br />
sudo vi /etc/nginx/conf.d/default.conf</p>
<p>余計な記述もありますが、とりあえず下記をコピペして下さい。</p>
<pre>
server {
listen 80;
server_name localhost;
root /vagrant/data;
charset UTF-8;
access_log /var/log/nginx/www.example.com.access.log main;
error_log /var/log/nginx/www.example.com.error.log;location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}}

</pre>
<p>保存して閉じて下さい。:wq</p>
<p>そうしたら、nginxを再起動します。<br />
sudo systemctl restart nginx</p>
<p>どうでしょう、下記の様な感じに表示されたでしょうか？<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-663 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008.jpg" alt="php" width="948" height="904" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008.jpg 948w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-300x286.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-768x732.jpg 768w" sizes="auto, (max-width: 948px) 100vw, 948px" /></a></p>
<p>表示されたらPHPちゃんは息をしております。</p>
<p>さて結構作業をしてお疲れかもしれませんが、laravelを入れる際にcomposerでメモリオーバーになるのでついでに設定しておきましょう。<br />
下記のファイルを開きます。<br />
sudo vi /etc/php.ini</p>
<p>そうしたら、　:/memory<br />
と入力してみて下さい。</p>
<p>おそらくmemory_limitの所へ飛べると思うので、<br />
aを押してインサートモードで　memory_limit = -1　として下さい。<br />
出来たら:wqで閉じて下さい。</p>
<h4><span id="toc6">DBを入れよう</span></h4>
<p>1時間で終わると書いておきながらもっと必要かもと思い始めましたｗ<br />
適度に休憩しながらしましょう。</p>
<p>さぁお次はDBです。<br />
普通ならmySQLといきたい所ですが、私がherokuにあげるつもりで作ったのでposgresSQLを使います。<br />
mySQL編はまた今度追記するのでお許し下さい。</p>
<p>ただlaravelを使うと分かりますが、mySQLでもposgreでも全く問題ない事に気づくはずです。<br />
今まで最新の物を入れていましたが、ここはyumで普通に入る物を使います。<br />
事情は別の記事にあるので良かったら探してみてください。<br />
posgreの最新の物にしたい方はリポジトリを追加して下さい。</p>
<p>ではサクっとインストールしちゃいます。<br />
sudo yum install -y postgresql-server<br />
sudo postgresql-setup initdb<br />
sudo systemctl enable postgresql.service<br />
sudo systemctl start postgresql.service</p>
<p>これでポスグレの起動はOKです。<br />
次にポスグレユーザーのパスワードを変更します。<br />
sudo passwd postgres<br />
ここは好きなパスワードでOKですが、上はlinux上のポスグレユーザーのパスワードでDB上のpostgresユーザーもパスワードも変更します。<br />
セキュリティ上よろしくは無いのですが、ごっちゃにならない様に同じパスワードにしておくのもありです。</p>
<p>su &#8211; postgres　と入力して先ほど設定したパスワードを入れて下さい。<br />
ユーザーの切り替えが出来たら、おそらく<br />
-bash-4.2$<br />
のようになっていると思います。</p>
<p>まずDBを作成してしまいます。<br />
createdb mydb;<br />
mydbの部分はお好きに変えて下さい。</p>
<p>この画面のまま　psql　と入力するとポスグレの中に入れます。<br />
中に入ってpostgresユーザーのパスワード変更を行います。<br />
alter role postgres with password &#8216;postgres&#8217;;<br />
&#8221;の中身がパスワードになります。</p>
<p>￥l←(小文字にして下さい)と入力すると作ったDBが見れます。</p>
<pre>
postgres=# \l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------+----------+------------------+------------+-------------------+-----------------------
mydb | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 |
postgres | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 |
template0 | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 行)
</pre>
<p>￥qでデータベースから抜けて更にpostgresユーザーからexitと入力して抜けて下さい。<br />
sudo systemctl restart postgresql.service<br />
をしておいて下さい。</p>
<h4><span id="toc7">いよいよlaravel</span></h4>
<p>お待たせしました。<br />
いよいよlaravelをインストールしましょう。<br />
まずlinuxとwindowsの共有フォルダに移動します。</p>
<p>かなーり初期に書いたvagrantの初期設定だと<br />
cd /vagrant/data/<br />
で共有フォルダに移動出来ると思います。<br />
data一応あった方がいいので、無い場合はwindows側で作ってリナックス上で上記のコマンドで移動できるようにしましょう。</p>
<p>おまんたせしました。<br />
ではlarabelを入れましょう。<br />
とは言ったものの１コマンドで作ってくれます。</p>
<pre>
composer create-project laravel/laravel example-app
</pre>
<p>testは好きに変えて下さい。</p>
<p>composerくんがぐんぐん色んなファイルを作成してくれます。<br />
Application key set successfully.<br />
が出たら、共有フォルダで作ったので、勿論ファイルが出来ています。</p>
<p>さぁ初期画面が見たいですよね。<br />
nginxでlarabelを指定してあげましょう。<br />
sudo vi /etc/nginx/conf.d/default.conf</p>
<pre>
server {
listen 80;
server_name localhost;
#ここは「sync」フォルダ以下にあるファイルを参照してほしいので、「sync」の同期先であるvar/wwwを指定。
root /vagrant/data/test/public;
charset UTF-8;
access_log /var/log/nginx/www.example.com.access.log main;
error_log /var/log/nginx/www.example.com.error.log;location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}

</pre>
<p>さぁどうでしょうかちゃんと表示されてますでしょうか。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000009.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-664 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000009.jpg" alt="larabel" width="1024" height="482" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000009.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000009-300x141.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000009-768x362.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
私は大丈夫でしたが、元々作った環境を見ながらこの記事を書いたので、何とも言えないのです。<br />
もし出来ないよーなどがあればお知らせください。</p>
<p>ちなみにvagrantではnpmが上手く機能しないと思います。<br />
すいません、ちょっと長くなりすぎたので、npmに関してはこちらの記事をご参照下さい。</p>
<a href="https://blog.gorone.site/archives/617" title="laravelで苦労した点3" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://blog.gorone.site/wp-content/uploads/2021/06/think-about-1217109_1280-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://blog.gorone.site/wp-content/uploads/2021/06/think-about-1217109_1280-160x90.png 160w, https://blog.gorone.site/wp-content/uploads/2021/06/think-about-1217109_1280-120x68.png 120w, https://blog.gorone.site/wp-content/uploads/2021/06/think-about-1217109_1280-320x180.png 320w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">laravelで苦労した点3</div><div class="blogcard-snippet internal-blogcard-snippet">laravelをインストールすると大量のvenderファイルとnode_modulesがを入れる事になります。venderファイルの方は問題ないのですが、node_modulesを入れるためのnpm installが多分動かないです。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.gorone.site" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">blog.gorone.site</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.10.18</div></div></div></div></a>
<p>投稿 <a href="https://blog.gorone.site/archives/650">laravel8開発環境セッティング(vagrant編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/650/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>開発環境構築の話</title>
		<link>https://blog.gorone.site/archives/647</link>
					<comments>https://blog.gorone.site/archives/647#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 12:29:31 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[vagrant]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=647</guid>

					<description><![CDATA[<p>目次 DBのデータって外に保存しない方が良い？ちょっと脱線visual stadio codelaravel DBのデータって外に保存しない方が良い？ あくまで開発環境の話であって、個人開発の話では無いです。 開発環境を [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/647">開発環境構築の話</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DBのデータって外に保存しない方が良い？</a><ol><li><a href="#toc2" tabindex="0">ちょっと脱線</a><ol><li><a href="#toc3" tabindex="0">visual stadio code</a></li><li><a href="#toc4" tabindex="0">laravel</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">DBのデータって外に保存しない方が良い？</span></h2>
<p>あくまで開発環境の話であって、個人開発の話では無いです。</p>
<p>開発環境を配る時ってDBにデータが投入されていた方が便利ですよね。<br />
前の会社では結構な規模だったので、開発環境はAWSの開発環境用のDBに繋がる様に設定されていました。<br />
前の会社が結構特殊で仮想環境などを使わずに一人1台？EC2を配るというなかなか豪快な環境だったので、かなりレアだと思うのですが、<br />
基本的にDBにはデータが投入されていた方がいいと思うのです。</p>
<p>seedsなどでテストファイルをDB作成時に作るのもいいですが、そこのファイル容量は手間を考えればあった方が良さそう。<br />
今、個人開発しているlaravelのアプリもデータ永続化の為にwindows上にデータを持たせていますが、DBのイメージをセーブすれば多分データは残るはず？</p>
<p>さすがに永続化のデータを配るならDBのイメージを共有した方がいいはず。<br />
ん～でも開発環境と言えど、新規のデータ、新鮮なデータを共有した方が良さそうなのでDBだけでクラウド上で共有した方がいいかもですね。</p>
<h3><span id="toc2">ちょっと脱線</span></h3>
<p>私は開発にブランクがあるので、開発に使うツール類の進化が凄いです。<br />
それはエディターにも言える事だし、FWもめちゃ進化してます。<br />
特にvisual stadio codeとlaravelにはびっくりしました。</p>
<h4><span id="toc3">visual stadio code</span></h4>
<p>ATOMではプラグインだったcssの色表示も標準で搭載されているし、なんかもっとカスタマイズするともっと便利になるみたい。<br />
コード自動実装機能は本当にあるし、マイクロソフトの本気ですね。<br />
元々visual stadioは便利だったので、その技術をweb向けにカスタマイズした感じですね。</p>
<p>tailwindのプラグインとCSSセットを使うと何やらもっと凄いっぽいですが、まだ試してないですね。<br />
bootstrap版とかもあるのでしょうか。</p>
<p>まだこのエディタの10%も使いこなせていないので、早く慣れない所です。</p>
<h4><span id="toc4">laravel</span></h4>
<p>web職人の為のFWとどこかでみた気がしますが、私が触ってみた感想としては、web初心者向きのFWですね。<br />
個人認証機能もガッチリした物がついていて、cssとかjavascriptもlaravel mixで構文をチェックしてくれる。<br />
まぁガッチリ触ってないので、何ともですが、フォルダのジャンル分けが分かりやすい。</p>
<p>とりあえずMVCの置き場所だけ覚えればいいし、rootファイルも分かりやすい。<br />
後地味に凄いのが<br />
Route::resource<br />
と書くと7?8種類のcludが自動生成される事です。</p>
<p>そのコントローラーも<br />
php artisan make:controller コントローラー名 &#8211;resource<br />
と書くと動きに合わせたコントローラーを自動生成してくれます(メソッドは定義してくれるけど、中身は空です)</p>
<p>良く使い方が分からず、無理やり作った部分もありますが・・・。</p>
<p>キレイに書くならresourceに合わせて書いて、力技でも実装出来るのがいい所ですね。<br />
ただ、その分表示速度は犠牲になっているみたいです。<br />
venderをオーバーライドしただけでモッサリしたので、何かチューニングが出来るのかな？<br />
モッサリ部分を感じさせない工夫が必要かもしれないですね。<br />
勿論いいサーバーを使えば早いでしょうが。</p>
<p>話は変わりますが、数年前にrailsを試した時はその便利さとチュートリアルのテストがかなり難しい。<br />
正直機能と同等かそれ以上のテストを書いた気がします。</p>
<p>laravelは必要部分だけつまみ食いしたのでテストは書いてないんですよね。<br />
書くとしてもDBの登録部分とかになるけど、やっぱり業務で使うとなるとテストは大事なのでそこは勉強しておきたいです。</p>
<p>正直PHPで新規でアプリを作るならlarabel一択だと思います。<br />
一応cakeとかも触ってますが、断トツで分かりやすい。<br />
といつつPHPはFWが豊富なのでまだ試していないのがたくさんあります。</p>
<p>PHPはアカデミックな言語ではないですが、HTMLに埋め込める部分が強いのかなと思います。<br />
あまり良い使い方では無いですが、viewの中でPHPを実行したりと結構めちゃくちゃできます、他の人に怒られます・・・。</p>
<p>とりあえずまずは、PHPとreactかvueを素で書ける様に勉強します（実際は遊んでるだけなのですが・・・）<br />
その次はせっかくmacもあるのでswiftを書けるようになりたいです。</p>
<p>以上、願望でした。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/647">開発環境構築の話</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/647/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravelで苦労した点3</title>
		<link>https://blog.gorone.site/archives/617</link>
					<comments>https://blog.gorone.site/archives/617#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Mon, 18 Oct 2021 06:41:13 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=617</guid>

					<description><![CDATA[<p>目次 苦労という感じでは無かったけれどもう少し続くよ 苦労という感じでは無かったけれど そういえばかなり初期に起きた出来事なので、忘れていましたが、vagarantで起きた珍事。 多分docker、もっと広く言うとwin [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/617">laravelで苦労した点3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">苦労という感じでは無かったけれど</a><ol><li><a href="#toc2" tabindex="0">もう少し続くよ</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">苦労という感じでは無かったけれど</span></h2>
<p>そういえばかなり初期に起きた出来事なので、忘れていましたが、vagarantで起きた珍事。<br />
多分docker、もっと広く言うとwindowsで仮想PCで作業していたら起きそうな事です。</p>
<p>laravelをインストールすると大量のvenderファイルとnode_modulesがを入れる事になります。<br />
venderファイルの方は問題ないのですが、node_modulesを入れるためのnpm installが多分動かないです。<br />
人によって開発の仕方は変わると思いますが、手っ取り早いのがvagrantとwindowsの共有フォルダにlaravelプロジェクトを作るとgitでもソースツリーが使えますし、エディターもwindows環境で動く物が使えます。<br />
なので大体の人は共有フォルダにプロジェクトを作ると思うのですが、node_modules内でシンボリックリンクがあるためnpm installが出来ません。</p>
<p>解決方法は色々とあるようですが、vagrant内のフォルダ(ディレクトリ)と共有フォルダ内でそれぞれnode_modulesフォルダを作りマウントコマンドでバインドする。</p>
<p>linuxでマウントというとUSBなどを繋いでマウントして使うという感じで使用するのが一般的な様ですが、マウント&#038;バインドするとnpm install出来る様になります。</p>
<p>linuxのhomeの下くらいにnode_modulesディレクトリを作って、共有フォルダ側でもnode_modulesディレクトリを作ってあげます。<br />
この2つをマウント&#038;バインドする事で動きます。<br />
若干まだマウント&#038;バインドがどういう仕組みなのか不明ですが、おいおい勉強します。<br />
多分マウントする事でlinux側のディレクトリではシンボリックリンクが作れるので動くのかなと。</p>
<p>さてさて言い訳はこのぐらいにしてやり方です。</p>
<p>linux側のディレクトリの作り方は調べて下さい。</p>
<div class="code">
sudo mount &#8211;bind /home/vagrant/vagrant_node_modules /vagrant/data/hoge/node_modules
</div>
<p>初回は割と時間がかかります。<br />
よくよく考えたらnpm無しでもlaravel自体は動く様な気がしますが、javascriptのエラーをチェックしてくれたり、scssをcssに変換してくれたりと多分最近の開発ではメジャーなので入れておいた方がいいでしょう。</p>
<h3><span id="toc2">もう少し続くよ</span></h3>
<p>そういえばnode自体はyumで入りますが、verが古いので更新してあげて下さい。<br />
この更新に古いnodeが必要なので必ず入れる事になります。<br />
nodeが入ったら、</p>
<div class="code">
npm i &#8211;save-dev laravel-mix@latest &#038;&#038;  npm i &#8211;save-dev sass-loader@latest &#038;&#038;  npm i &#8211;save-dev postcss@latest &#038;&#038;  npm i &#8211;save-dev webpack@latest
</div>
<p>で最新のバージョンにしてあげましょう。</p>
<p>多分これで最新なjavascriptフレームワーク&#038;scssなどがコンパイル出来ます。</p>
<p>一点謎なのが、javascriptをコンパイルすると、letやconstがvarになる^q^<br />
詳しい人教えて下さい！<br />
TypeScriptが何たらとあるのですが、letやconstって純粋なjavascriptだと無いのかな？</p>
<p>なんかモジュールを入れたらもしかしたら普通に変換するかもしれないし、無いかもしれない・・・フロントには詳しくないので謎です。</p>
<p>vueはちゃんと使えるようになりたいので、お勉強中です。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/617">laravelで苦労した点3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/617/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravelで苦労した点2</title>
		<link>https://blog.gorone.site/archives/605</link>
					<comments>https://blog.gorone.site/archives/605#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Sat, 16 Oct 2021 06:41:50 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=605</guid>

					<description><![CDATA[<p>laravelというかherokuのhttps化が原因です 前回jetstreamを入れましたが、この機能モリモリの認証パッケージにはプロフィール写真を変える機能があります。 宣伝：良かったら使って下さい。 https: [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/605">laravelで苦労した点2</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h2>laravelというかherokuのhttps化が原因です</h2>
<p>前回jetstreamを入れましたが、この機能モリモリの認証パッケージにはプロフィール写真を変える機能があります。</p>
<p>宣伝：良かったら使って下さい。</p>
<a rel="noopener" href="https://megapho-ne.com/" title="https://megapho-ne.com/" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmegapho-ne.com%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://megapho-ne.com/</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://megapho-ne.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">megapho-ne.com</div></div></div></div></a>
<p>で、https化をcloudflareで実現した訳ですが、新しいプロフィール写真をアップロードすると404が返ってくる。<br />
一時上手く動いていた気がしますが、先ほど触ったら404、ググっても外人さんも困っております。</p>
<p>ただその外人さんの意見の中で404ステータスを返す部分をコメントアウトしちゃえ！という物がありました。<br />
ローカル環境では問題なく動いてますし、何ならherokuの独自ドメインの場合でもちゃんと動きます。<br />
cloudflareを通してhttps化した時だけ上手く動かないのです。</p>
<p>やりましょう。<br />
やり方は至ってシンプル。<br />
コメントアウトすればいいだけです。<br />
ただ、そのファイルがベンダーファイルなのでオーバーライドして書く必要があります。</p>
<p>laravelのベンダーファイルのオーバーライドの仕方は、ググったらすぐ出て来ました。</p>
<div class="code">
&#8220;autoload&#8221;: {<br />
        &#8220;psr-4&#8221;: {<br />
            &#8220;App\\&#8221;: &#8220;app/&#8221;,<br />
            &#8220;Database\\Factories\\&#8221;: &#8220;database/factories/&#8221;,<br />
            &#8220;Database\\Seeders\\&#8221;: &#8220;database/seeders/&#8221;<br />
        },<br />
        &#8220;exclude-from-classmap&#8221;: [<br />
        &#8220;vendor\\livewire\\livewire\\src\\Controllers\\FilePreviewHandler.php&#8221;,　→変更点：１<br />
        &#8220;vendor\\livewire\\livewire\\src\\Controllers\\FileUploadHandler.php&#8221;　→変更点：２<br />
    ],<br />
    &#8220;files&#8221;:[<br />
        &#8220;app\\override\\livewire\\livewire\\src\\Controllers\\FilePreviewHandler.php&#8221;,　→変更点：１<br />
        &#8220;app\\override\\livewire\\livewire\\src\\Controllers\\FileUploadHandler.php&#8221;　→変更点：２<br />
    ]<br />
    },
</div>
<p>やり方はappフォルダの中にオーバーライド用のフォルダを作ってそのパッケージごとコピーして対象のファイルを上の様に書いてあげます。<br />
パッケージごとコピーするのでそこまで必要があるのか不明ですが、ファイル単位でも出来ないかやってみます。<br />
こんなんで404が消えるのか不安でしたが、無事オーバーライドされていました。<br />
ちなみに変更した点は本当に些細な部分で下記の通りです。</p>
<div class="code">
class FileUploadHandler<br />
{<br />
    public function getMiddleware()<br />
    {<br />
        return [[<br />
            &#8216;middleware&#8217; => FileUploadConfiguration::middleware(),<br />
            &#8216;options&#8217; => [],<br />
        ]];<br />
    }</p>
<p>    public function handle()<br />
    {<br />
        //abort_unless(request()->hasValidSignature(), 401);　→ここをコメントアウトしただけ</p>
<p>        $disk = FileUploadConfiguration::disk();</p>
<p>        $filePaths = $this->validateAndStore(request(&#8216;files&#8217;), $disk);</p>
<p>        return [&#8216;paths&#8217; => $filePaths];<br />
    }
</div>
<p>Stack Overflowなどを見るとnginxの設定で消せるのかもしれないです。<br />
今回は緊急措置という感じです。</p>
<p>やってみたら気持ちモッサリしたので、他の方法があれば知りたいです。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/605">laravelで苦労した点2</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/605/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravelで苦労した点</title>
		<link>https://blog.gorone.site/archives/596</link>
					<comments>https://blog.gorone.site/archives/596#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Thu, 14 Oct 2021 23:13:03 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=596</guid>

					<description><![CDATA[<p>目次 フォルダが多いモデルビューコントローラーlaravelは便利 フォルダが多い 最初にlarabelに触った感触としてそのフォルダ数に戸惑うと思います。 慣れてしまえば納得のフォルダ構成なのですが、MVCである所のモ [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/596">laravelで苦労した点</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">フォルダが多い</a><ol><li><a href="#toc2" tabindex="0">モデル</a></li><li><a href="#toc3" tabindex="0">ビュー</a></li><li><a href="#toc4" tabindex="0">コントローラー</a></li><li><a href="#toc5" tabindex="0">laravelは便利</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">フォルダが多い</span></h2>
<p>最初にlarabelに触った感触としてそのフォルダ数に戸惑うと思います。<br />
慣れてしまえば納得のフォルダ構成なのですが、MVCである所のモデル、ビュー、コントローラーがどのフォルダに当たるのか直感的ではありません。<br />
一番上位のフォルダですら下記の通りです。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000001.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-597 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000001.jpg" alt="フォルダ" width="151" height="320" srcset="https://blog.gorone.site/wp-content/uploads/2021/10/WS000001.jpg 151w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000001-142x300.jpg 142w" sizes="auto, (max-width: 151px) 100vw, 151px" /></a><br />
appの中に全部あるのかと思いきやそうではありません。</p>
<p>独学なので正解か分かりませんが、MVCに当たるフォルダを見てみましょう。</p>
<h3><span id="toc2">モデル</span></h3>
<p><a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000002.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-598 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000002.jpg" alt="モデル" width="173" height="264" /></a><br />
モデルは比較的に簡単に見つける事が出来ます。<br />
appの中にすぐmodelと書いてあるフォルダがあります。<br />
これはすぐ分かりますね。</p>
<h3><span id="toc3">ビュー</span></h3>
<p><a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000003.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-599 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000003.jpg" alt="ビュー" width="267" height="508" srcset="https://blog.gorone.site/wp-content/uploads/2021/10/WS000003.jpg 267w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000003-158x300.jpg 158w" sizes="auto, (max-width: 267px) 100vw, 267px" /></a><br />
ビューはリソースの中にあります。<br />
view配下で画面事にサブフォルダも作れるので便利ですが、そもそもappの中にあった方が分かりやすいかもと思いました。<br />
多分設定によっては移動させる事も出来そうですが、laravel初心者の私には難易度が高すぎなのでリソースの中で管理していました。</p>
<h3><span id="toc4">コントローラー</span></h3>
<p><a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000004.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-600 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000004.jpg" alt="コントローラー" width="262" height="432" srcset="https://blog.gorone.site/wp-content/uploads/2021/10/WS000004.jpg 262w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000004-182x300.jpg 182w" sizes="auto, (max-width: 262px) 100vw, 262px" /></a><br />
これはappの中にありますが、httpという一見関係なさそうなフォルダの中に眠っております。</p>
<p>触り始めの初期はこの配置に凄く違和感を覚えましたが、慣れてしまえばそうでもないです。<br />
あと分かりやすくする為のポイントとして、それぞれのファイルは</p>
<div class="code">artisan</div>
<p>コマンドで再生した方がいいでしょう。<br />
artisanコマンドで再生すれば必ず正しい位置に部品を置いてくれるので、間違いが少なくて済みます。</p>
<p>また必ずgitなどのver管理システムを入れて、エディタも新規のファイルを検知してくれる物がオススメです。<br />
私はATOMを使っていますが、今だとvisual studio codeの方が主流なのかな？<br />
Vimなどを使っている方は分かりませんが、私よりフレームワークの理解度が高いと思うので問題ないでしょう。</p>
<h3><span id="toc5">laravelは便利</span></h3>
<p>そんなlaravel君ですが、アドオン？が凄く充実しています。<br />
ユーザー登録や管理などjetstreamが凄く便利でかっこいいです。<br />
jetstreamは機能モリモリの認証系ライブラリなのでそこまで必要ない方は入れなくてもいいかもです。</p>
<p>jetstreamの入れ方は簡単です。<br />
プロジェクトのトップで</p>
<div class="code">composer require laravel/jetstream をするだけです。その後に以下のどちらかのコマンドを実行しましょう。<br />
php artisan jetstream:install livewire　→ライブワイヤーで動かす（オススメ）<br />
php artisan jetstream:install inertia　 →vueで動かす&#8211;teamとするとチーム機能が使える様ですが、私は今回入れてないのでどんな機能か分かりません。その後に以下を実行してDBに反映させましょう<br />
php artisan migrate
</div>
<p>DBとの接続方法をまだ書いて無いのでこの後書きますね</p>
<p>最後にjetstreamを動かす為のjsなどをコンパイルする為に<br />
npm install &amp;&amp; npm run dev<br />
としてあげましょう。<br />
これももしnodeを入れてないと出来ないので、もし入っていない方はyumなどで入れてあげて下さい。</p>
<p>jetstreamの導入でDBとの接続が必要になりましたが、これも簡単です。<br />
.envファイルにDB接続の情報を記す部分があるので、ここに書いてあげます。<br />
私の場合はポスグレを使ったので、mySQLの場合はその情報でOKです。<br />
先にlarabel用のDBは作っておいて下さい。</p>
<div class="code">DB_CONNECTION=pgsql<br />
DB_HOST=127.0.0.1<br />
DB_PORT=5432<br />
DB_DATABASE=mydb<br />
DB_USERNAME=秘密だよ<br />
DB_PASSWORD=秘密だよ
</div>
<p>これだけでDB接続OKです。<br />
繋がったか試す為にphp artisan migrateしてあげるといいでしょう。<br />
認証情報が違う場合は注意が出るのですぐ分かります。</p>
<p>またnodeの入れ方については下記の記事が凄く分かりやすいので見て下さい。</p>
<a rel="noopener" href="https://www.softel.co.jp/blogs/tech/archives/6490" title="nodejs、npm の最新版をインストールする（CentOS）   at softelメモ" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/081eb705ecdf4b3eb7aaf8bdae098344.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">nodejs、npm の最新版をインストールする（CentOS）   at softelメモ</div><div class="blogcard-snippet external-blogcard-snippet">問題 yum で npm をインストールすると、だいぶバージョンが古いのですが、新しいバージョンのをインストールするにはどうしたらよいですか。 $ npm -v 3.10.10 $ node -v v6.17.1 （Ce ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://tech.softel.co.jp/blog/archives/6490" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">tech.softel.co.jp</div></div></div></div></a>
<p>これでユーザー登録画面とユーザー管理などが出来ます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000005.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-601 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000005.jpg" alt="jetstream" width="494" height="592" srcset="https://blog.gorone.site/wp-content/uploads/2021/10/WS000005.jpg 494w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000005-250x300.jpg 250w" sizes="auto, (max-width: 494px) 100vw, 494px" /></a><br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/10/WS000006.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-602 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/10/WS000006.jpg" alt="jetstream" width="1024" height="389" srcset="https://blog.gorone.site/wp-content/uploads/2021/10/WS000006.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000006-300x114.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/10/WS000006-768x292.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>ツイッターの認証とグーグルの認証は別途設定が必要ですが、検索するとすぐ出てくるのでペペっと出来ます。<br />
機会があれば書いてみます。<br />
herokuの場合はユーザーの画像を保存出来ないので、一工夫必要です。<br />
私の場合は、cloudinaryというアドオンを入れてそこに保存される様にしています。<br />
cloudinaryの公式のアドオンもありますが、jrm2k6/cloudderというライブラリが使いやすいので、オススメです。<br />
cloudinary自体は10GBまで画像やvideoを保存できるので画像をバンバン使うサービスじゃない限りは大丈夫ですし、課金すれば10GB以上使える様になります。</p>
<p>という訳で今回はjetstream中心に書いてみました。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/596">laravelで苦労した点</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/596/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>laravelでデモアプリを作りました</title>
		<link>https://blog.gorone.site/archives/594</link>
					<comments>https://blog.gorone.site/archives/594#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Wed, 13 Oct 2021 09:52:37 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=594</guid>

					<description><![CDATA[<p>目次 laravelでデモアプリを作成しましたhttps化の仕組み何でherokuにしたの？herokuで苦労する事も laravelでデモアプリを作成しました https://megapho-ne.com/megaph [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/594">laravelでデモアプリを作りました</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">laravelでデモアプリを作成しました</a><ol><li><a href="#toc2" tabindex="0">https化の仕組み</a></li><li><a href="#toc3" tabindex="0">何でherokuにしたの？</a></li><li><a href="#toc4" tabindex="0">herokuで苦労する事も</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">laravelでデモアプリを作成しました</span></h2>
<a rel="noopener" href="https://megapho-ne.com/" title="https://megapho-ne.com/" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmegapho-ne.com%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://megapho-ne.com/</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://megapho-ne.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">megapho-ne.com</div></div></div></div></a>
<p>公開環境はherokuでドメインは1円なので運用費は年に1円です。<br />
何でドメインを取ったかというと、https化するには独自ドメインが必要だからです。<br />
もしかしたら無料でネームサーバーを設定出来るドメインサイトがあれば無料でいけるかも。<br />
まぁherokuで自動でつけてくれるドメインでもhtppsなんですけどね。<br />
ブログが独自ドメインなのでドメインってこんなに簡単に取得できるんだーと知ったので取ってみた次第です。</p>
<h3><span id="toc2">https化の仕組み</span></h3>
<p>今回お名前ドットコムでドメインを取得しましたが、多分追加料金を払わないとhttps化は出来ない？と思います。<br />
じゃあどうやったんだという話ですが、検索すれば良くあるcloudflareを利用しています。<br />
cloudflareはキャッシュを提供する無料のサービスですが、少し設定すればhttps化出来ます。<br />
自分のアプリにアクセスする際にcloudflareをクッションにしてhttps化してくれます。</p>
<h3><span id="toc3">何でherokuにしたの？</span></h3>
<p>herokuにこだわりがある訳じゃないですが、まず無料という事です。<br />
もちろんherokuもお金を払えば大規模アプリも作成出来ますが、商用サイトだったらアマゾンのEC2などサイトの規模も簡単に大きく出来るサービスがあります。<br />
herokuはしがらみが多いですが、個人でアプリをアップするにはお手軽なサイトです。<br />
無料で使うと30分アクセスがないとサーバーがスリープ状態になったり、画像が保存できないなど色々としがらみがあるのですが、DBだったり画像保存サービスなどアドオンで追加出来るので楽しいです。<br />
画像が保存出来ないというよりはファイルシステムで管理されてないファイルは半日に1回だけリブートされる様で消えちゃいます。<br />
ただDBだったり、色んなサービスを組み合わせると画像掲示板も作れますし、まぁ何でも作れます。</p>
<h3><span id="toc4">herokuで苦労する事も</span></h3>
<p>laravelでherokuにデプロイすると必ずコンポーザーが必要になりますし、基本的にベンダーファイルを保持してくれません(gitでvenderを含めると維持出来ます)<br />
私もベンダーファイルをいじっていましたが、途中からなるべく管理画面などもベンダーフォルダから切り離しました。<br />
ローカルとherokuで見た目が変わったりしちゃうので、必要なベンダーファイルだけオーバーライドすればOKです。</p>
<p>まぁ本当はlaravel8に慣れるのにかなり苦労しました。<br />
ショボイアプリですが、ここが苦労したよlaravelくん編を書こうかなーと思います。<br />
本当はもうちょっと色々と機能をつけたいですが、永遠に公開出来なさそうなので基本的な機能は出来たので公開しました。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/594">laravelでデモアプリを作りました</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/594/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravelが動く環境を整える3</title>
		<link>https://blog.gorone.site/archives/589</link>
					<comments>https://blog.gorone.site/archives/589#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Sun, 12 Sep 2021 01:57:12 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=589</guid>

					<description><![CDATA[<p>前回からどんだけ間隔あいてるんだよって話ですが、ようやく重い腰を上げて再度学習を始めました。 目次 postgresSQLはyumで入れた後はLaravelをインストールするだけcomposerを入れますlaravelを [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/589">Laravelが動く環境を整える3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>前回からどんだけ間隔あいてるんだよって話ですが、ようやく重い腰を上げて再度学習を始めました。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">postgresSQLはyumで入れた</a><ol><li><a href="#toc2" tabindex="0">後はLaravelをインストールするだけ</a><ol><li><a href="#toc3" tabindex="0">composerを入れます</a></li><li><a href="#toc4" tabindex="0">laravelを入れよう</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">postgresSQLはyumで入れた</span></h2>
<p>PostgresSQLを最新のverにするかしないかを迷いましたが、今回はyumで入る物を利用しました。<br />
最新の物にした方が新しい機能が使えたりといい事もあるのですが、yumで入る物ならセキュリティパッチもおそらく当てられているし、PostgresSQLを拡張して使う気は無いのでyumで入る物で十分です。</p>
<p>話がずれてしまいますが、postgresSQLはジオロケーションを使える様にしたり、add onと言っていいのか分かりませんが拡張が優れています。</p>
<p>正直に言うとこれを最新版にするかしないかで結構迷っていました。<br />
おそらくherokuにupすると最新版になるので、verがずれて大丈夫かなという迷いがありました。</p>
<p>その一方、昔最新版を入れてかなり苦労したので、迷いました。</p>
<h3><span id="toc2">後はLaravelをインストールするだけ</span></h3>
<p>laravelをインストールする為にcomposerを入れます。<br />
composerはlinuxで言う所のyum、PHP版のyumみたいな物です。<br />
composerを入れなくてもlaravelをインストールする事は出来ますが、足りないライブラリなどを教えてくれるので、入れておいた方がいいです。</p>
<h4><span id="toc3">composerを入れます</span></h4>
<p>つまずいたという程では無いのですが、laravelを入れる時に最初ライブラリが足りないと言われたので、そのライブラリをインストールしてもなぜか同じ警告が出る。<br />
処理を見ているとphpの5系をなぜか参照しようとしている箇所があったので、ググって見たので、下記の様にしてあげる事で回避出来ました。</p>
<div class="code">sudo yum install &#8211;enablerepo=remi-php74 composer</div>
<p>これで7系のphpを参照してcomposerが入ります。</p>
<h4><span id="toc4">laravelを入れよう</span></h4>
<p>composerを入れてあげたらいよいよlaravelのインストールです。</p>
<div class="code">composer create-project &#8211;prefer-dist laravel/laravel test</div>
<p>バージョンをつけてあげる事も出来る様ですが、今回はつけないで入れました。</p>
<p>で、また警告が出ました。<br />
今回はPHPのメモリが足りないと怒られました。<br />
ここはphp.iniをでサクっとメモリの量を上げてあげれば解決です。</p>
<p>数分でlaravelアプリが出来ます。</p>
<p>今回はherokuに最終的にアップしたいので、使うDBをpostgresSQLにしてあげます。<br />
これは非常に簡単でlaravel内の.envというファイルのDB情報を変えてあげるだけです。<br />
DBの接続情報自体はdatabase.phpというファイルにあるのですが、中を見ると.envの情報を参照するよと書いてあるので、.envの情報を変えてあげるだけでOKです。</p>
<p>ちゃんと接続出来たか確かめたいので、下記のコマンドを実行してあげます。</p>
<div class="code">php artisan migrate</div>
<p>ここで特にエラーが出なければちゃんとDBに接続出来ています。</p>
<p>後はlaravelの初期画面を見たい。<br />
ここで結構苦戦してphpの簡易サーバを使えばすぐ見れるとの事でしたが、vagrantを使用しているので、色々試しましたが見れません。<br />
一段飛び越えてnginxで直接見ることにしました。</p>
<p>それでも権限やら色々とありましたが、エラーログや検索を駆使して表示される様になりました。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/09/WS000000.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-590 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/09/WS000000.jpg" alt="laravel" width="1024" height="481" srcset="https://blog.gorone.site/wp-content/uploads/2021/09/WS000000.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/09/WS000000-300x141.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/09/WS000000-768x361.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>なんかlaravel8で画面が変わったらしい。<br />
確かに検索したサイトではもっと爽やかな感じだった。<br />
まぁとりあえず表示されたので、一安心です。</p>
<p>&nbsp;</p>
<p>投稿 <a href="https://blog.gorone.site/archives/589">Laravelが動く環境を整える3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/589/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravelが動く環境を整える2</title>
		<link>https://blog.gorone.site/archives/357</link>
					<comments>https://blog.gorone.site/archives/357#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Thu, 08 Jul 2021 13:29:08 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[vagrant]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=357</guid>

					<description><![CDATA[<p>最新か一歩手前の物までインストールしよう とりあえずPHPを入れよう。 そうだまずはPHPだという事で最新の物を入れようと思います。 とPHPのインストールは簡単だろうと思っていたのですが今まで出た事のないエラーが。 O [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/357">Laravelが動く環境を整える2</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h2>最新か一歩手前の物までインストールしよう</h2>
<p>とりあえずPHPを入れよう。<br />
そうだまずはPHPだという事で最新の物を入れようと思います。</p>
<p>とPHPのインストールは簡単だろうと思っていたのですが今まで出た事のないエラーが。</p>
<p><code>One of the configured repositories failed (不明),<br />
and yum doesn't have enough cached data to continue. At this point the only<br />
safe thing yum can do is fail. There are a few ways to work "fix" this:<br />
1. Contact the upstream for the repository and get them to fix the problem.<br />
2. Reconfigure the baseurl/etc. for the repository, to point to a working<br />
upstream. This is most often useful if you are using a newer<br />
distribution release than is supported by the repository (and the<br />
packages for the previous distribution release still work).<br />
3. Disable the repository, so yum won't use it by default. Yum will then<br />
just ignore the repository until you permanently enable it again or use<br />
--enablerepo for temporary usage:<br />
yum-config-manager --disable &lt;repoid&gt;<br />
4. Configure the failing repository to be skipped, if it is unavailable.<br />
Note that yum will try to contact the repo. when it runs most commands,<br />
so will have to try and fail each time (and thus. yum will be be much<br />
slower). If it is a very temporary problem though, this is often a nice<br />
compromise:<br />
yum-config-manager --save --setopt=&lt;repoid&gt;.skip_if_unavailable=true<br />
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again</code></p>
<p>検索すると、メモリがいっぱいかタイムアップのエラーらしい。<br />
検索しても結構作業が発生しそうな予感。<br />
PHPを入れるだけでここで躓くのか・・・。<br />
とりあえずepelリポジトリーのミラーを切ってみましたが、今度は通信が届かないとのエラー、どうしたものか。<br />
ダメかと思ったのですが、色んなミラーを自動で試してくれるようで何とかなりました。</p>
<p>とりあえずPHPの7.4系を入れました。<br />
8系は新しすぎるので安定のverにしました。<br />
そういえばnginxを入れるので、PHP-fpmを入れないとダメだ。</p>
<p>全部突っ込んでしまおうと思えば、<br />
sudo yum -y install &#8211;enablerepo=remi,remi-php74 php*<br />
で入るのですが、それはお作法的に良くないので、使う物を入れるのが良いです。<br />
多分この時点でPHPの付属品としては足りない物が多いですが、lalavelを入れる際に多分Composerを使うと思うので、足りない物はその時に教えて貰えます。<br />
ComposerはPHP版の依存関係をよしなに教えてくれる物でlinuxのredhat系で言う所の yum に近いです。<br />
じゃあyumは何なんだという話になりますが、例えばPHPを動かす時に実はPHPだけをインストールしただけじゃ動かないので、いい感じに必要な物を入れてくれるサポーター？みたいな感じです。</p>
<p>linuxでかなり専門的な事をやろうとするとパッケージから入れる事もあると思いますが、まずはyumで出来ないか調べた方がいいです。<br />
過去にyumで解決出来ない事も1度ありましたが、1度しかありません。<br />
その時はパッケージから入れて、yum のアップデートでその入れた物だけ除外してアップデートを行う様にしていました。<br />
ほぼ無いと思いますが、yumも万能ゆえに例外的な事が出来ない時もあるので、その時は先輩エンジニアかteratailという掲示板で聞いてみましょう。<br />
teratailは先輩にわざわざ聞くのも忍びないという心配症なあなたに速攻で答えを答えを教えてくれるサイトです。<br />
私もバリバリエンジニアの時は良く聞いていました。<br />
最近は活発か分かりませんが、約数十分で答えが返ってくるので有難い掲示板です。<br />
会社が近かったこともあり、最初のオフ会に参加したこともあります(自慢・・・なのか)<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/07/WS000000-5.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-358 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/07/WS000000-5.jpg" alt="teratail" width="765" height="456" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/WS000000-5.jpg 765w, https://blog.gorone.site/wp-content/uploads/2021/07/WS000000-5-300x179.jpg 300w" sizes="auto, (max-width: 765px) 100vw, 765px" /></a></p>
<a rel="noopener" href="https://teratail.com/" title="teratail【テラテイル】｜ITエンジニア特化型Q&amp;Aサイト" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/bc04f2415c5118ce2a37ba959747a2ea.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">teratail【テラテイル】｜ITエンジニア特化型Q&Aサイト</div><div class="blogcard-snippet external-blogcard-snippet">teratail（テラテイル）はプログラミングに特化したQ&amp;Aサイトです。実現したい機能や作業中に発生したエラーについて質問すると、他のエンジニアから回答を得られます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://teratail.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">teratail.com</div></div></div></div></a>
<p>まぁこの話はいいとして、PHPが入れ終わりました。<br />
次はnginxを入れましょう。<br />
またどうでもいい話ですが、このnginx、最初なんて呼ぶか分からず自分の中でンギンクスと呼んでいました。<br />
まさかエンジンＸなんてかっこいい呼び方に見えないですよね。</p>
<p>nginxはそのままyumの標準リポジトリで入れちゃいます。<br />
勿論最新の物の方がいいのですが、herokuに上げる際にある程度最新の物に差しかわるので、表示を見る分にはverをあまり気にする必要が無いからです。</p>
<p>とりあえず一通りの設定を終えて自サーバーにアクセスした所、案の定見えない。<br />
こういう時はlogを見るのが一番。</p>
<blockquote><p>&#8220;location&#8221; directive is not allowed here in /etc/nginx/conf.d/default.conf:1</p></blockquote>
<p>vagrantで共有フォルダを使っていた場合、良くあるエラー。<br />
いつもこのエラーを解消する為に四苦八苦していた様な気がする。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/07/nginx.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-359 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/07/nginx.jpg" alt="nginx" width="1872" height="905" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/nginx.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/07/nginx-300x145.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/07/nginx-768x371.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/07/nginx-1536x743.jpg 1536w" sizes="auto, (max-width: 1872px) 100vw, 1872px" /></a></p>
<p>おしい・・・のか？<br />
まだファイルが読み取れていないようです。<br />
ここでいつも詰まるのですが、ファイアーウィールなどをオフにしても見れない・・・。<br />
何だ、何が悪いんだ→ファイルのパスが間違っていました。</p>
<p><a href="https://blog.gorone.site/wp-content/uploads/2021/07/WS000001-4.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-360 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/07/WS000001-4.jpg" alt="vagrant" width="945" height="895" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/WS000001-4.jpg 945w, https://blog.gorone.site/wp-content/uploads/2021/07/WS000001-4-300x284.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/07/WS000001-4-768x727.jpg 768w" sizes="auto, (max-width: 945px) 100vw, 945px" /></a></p>
<p>とりあえず、PHPとnginxの連携だけは出来ました。<br />
このまま順調に行けばいいんですが、絶対postgresSQLのインストールで詰まります。<br />
詰まります・・・。</p>
<a rel="nofollow" data-atag-id="2" data-post-id="357" href="//ck.jp.ap.valuecommerce.com/servlet/referral?sid=3601201&amp;pid=887196493&amp;vc_url=https%3A%2F%2Ftechacademy.jp%2F%3Futm_source%3Dvaluecommerce%26utm_medium%3Daffiliate%26utm_campaign%3Dmylink"><img loading="lazy" decoding="async" src="//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=3601201&amp;pid=887196493" width="0" height="1" border="0" /><img decoding="async" src="https://blog.gorone.site/wp-content/uploads/2021/07/WS000011.jpg" border="0" /></a>
<p>投稿 <a href="https://blog.gorone.site/archives/357">Laravelが動く環境を整える2</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/357/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
