EntityFramwork -> 実践

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-21 (日) 20:14:57 | 最終更新:2018-01-25 (木) 22:58:45

お試し で大分理解できたので
実際に挑戦!

【環境】
Visual C#: 15.5.4(2017)
プロジェクト作成

お試し との変更点は
メインをフォームアプリにしたこと。

参照設定

フォームアプリプロジェクトへ、NuGet パッケージ管理から、下記をインストール。

  • SQLitePCLRaw.bundle_e_sqlite3
  • SQLitePCLRaw.bundle_sqlcipher
  • SQLitePCLRaw.bundle_green
スタートアッププロジェクト

上記3つのプロジェクトについて、何をするかによって
スタートアッププロジェクトを切り替えないければならない。

  • フォームプロジェクト
    • フォームアプリを動かすときは、これがスタートアッププロジェクト
  • ビジネスロジックプロジェクト
    • マイグレーションをするときは、これがスタートアッププロジェクト
  • ビジネスロジックテストプロジェクト
    • テストをするときは、これがスタートアッププロジェクト
初回マイグレーション
エラー1

Add-Migration Initial
More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.
原因

DbContext クラスが複数あったため。

解決

対象 DbContext クラスを指定してコマンド実行。


Add-Migration Initial -Context MyAppSystem.EmployeeModel
To undo this action, use Remove-Migration.
Update-Database -Context MyAppSystem.EmployeeModel
Applying migration '20180121111141_Initial'.
Done.
エラー2

Add-Migration Initial -Context MyAppSystem.EmployeeModel
Could not load assembly 'MyApp'. Ensure it is referenced by the startup project 'MyAppSystem'.
原因

パッケージ マネージャー コンソール上部にある
「既定のプロジェクト」が、MyApp になっていた。

解決

「既定のプロジェクト」を、MyAppSystem に変更。

フォームイベント

今回は、フォームロード時に走らせる処理として Main_Load メソッドとした。
Main の部分は、フォームクラス名を入れるのが通例らしい。

フォームプロパティのイベント一覧(雷マーク)において
Load => Main_Load
と設定するだけ。

射影

Entity の中から、特定のプロパティを取得する=表示カラムを絞る。
このことを「射影」というらしい。


var arrayEmployees = db.Employees
    .Select(record => new {
        record.EmployeeCode,
        Name = record.FamilyName + " " + record.FirstName
    })
    .ToArray();
  • record へ新しい配列をセットするよ~
  • 配列のプロパティは、record.EmployeeCode と Name だよ~
  • record.EmployeeCode はそのままでいいけど、Name は、record の FamilyName と FirstName を半角スペースで連結して戻してね~

という風に、計算や加工も含めて自由に取得できる。

record

この部分の表記方法を勉強中。

LINQ の考え方としては「配列の要素」を指していると思う。

foreach (var value in array) の value に当たる感じ?

今回は、DB から抽出したレコード群が要素なので
record としてみたけど、何でもよさそう。

Count()

データの個数。


db.Employees.Count()
カラム名指定

上記例に合わせると、こうなる。


dgvEmployees.Columns[nameof(Employee.EmployeeCode)].HeaderText = "従業員コード";
dgvEmployees.Columns[nameof(Name)].HeaderText = "氏名";

ここで面白いのが
Employee.EmployeeCode を EmployeeCode とするとエラー。
record.EmployeeCode としてもエラー。
Name は、何も付けなくてもエラーにならないどころか、想定通りに動く。

まだまだ意味がわかっていない。

参考サイト

Qiita:Entity Framework6で単純なデータ表示フォームを作成(2015-09-08)
→DataGridView へのデータの登録の仕方。DataGridView のカラム名の変更の仕方

Keibalight プログラミングを淡々と:【LINQ】要素の個数を取得するには(Count集計演算子)(2011-07-19)
→LINQ による、データ個数の数え方

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-21 (日) 20:14:57 | 最終更新:2018-01-25 (木) 22:58:45

GitFlow for Visual Studio 2017

Posted by muchag | Git,Library & PlugIn & AddIn,Visual Studio |
初回投稿:2018-01-21 (日) 18:49:35 | 最終更新:2018-01-21 (日) 19:00:16

Visual Studio に GitFlow を導入するための機能拡張。

マーケットプレイス:GitFlow for Visual Studio 2017

【環境】
Visual C#: Community 2017
導入

上記ページから、.vsix ファイルを DL して開けば、
インストール作業が始まる。

その前に VS を閉じておくとスムーズ。

インストール後、チーム エクスプローラーのメニューに
「GitFlow」が追加される。

初期設定

「GitFlow」へ移動して [Initialize]
[OK]

運用

「GitFlow」へ移動
[Start Feature]
[Start Release]
[Start Hotfix]
[Other]

作成

[Start Feature]
Feature 名を入力
[Create Feature]

その他

[Finish Feature]
[Finish Release]
[Finish Hotfix]

Posted by muchag | Git,Library & PlugIn & AddIn,Visual Studio |
初回投稿:2018-01-21 (日) 18:49:35 | 最終更新:2018-01-21 (日) 19:00:16

EntityFramwork -> お試し

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-20 (土) 15:57:34 | 最終更新:2018-01-25 (木) 22:58:33

今ひとつピンとこないので
勉強のため、テストプロジェクトを作成。

【環境】
Visual C#: 15.5.4(2017)
経緯

EntityFramework なるものを見つけて
ぜひ挑戦したいと思った。

ただ、慣れない VS 環境であることもあり
なかなかピンとこない。

そこで、参考サイトをそのまま実践してみることにした。

SlideShare:「Entity Framework Coreを使ってみる」 公開用(2017-03-07)

プロジェクト作成
Model プロジェクト

[ファイル]-[新規作成]-[プロジェクト]
「新しいプロジェクト」
左ペイン [インストール済み]-[Visual C#]-[Windows クラシック デスクトップ]
右ペイン [クラス ライブラリ(.NET Framework)]
名前:KptBoardSystem
場所:任意
ソリューション名:「名前」から自動入力
[ソリューションのディレクトリを作成] にチェック
[新しい Git リポジトリの作成] にチェックなし
[OK]

参照設定

プロジェクトコンテキストメニューから [NuGet パッケージの管理]
Microsoft.EntityframeworkCore で検索
Microsoft.EntityframeworkCore.Sqlite 2.0.1
Microsoft.EntityframeworkCore.Tools 2.0.1

テストプロジェクト

ソリューションのコンテキストメニューから [追加]-[新しいプロジェクト]
後は前述同様に KptBoardSystemTest プロジェクトを作成。

参照設定

前述同様に、下記を設定。
Microsoft.EntityframeworkCore 2.0.1
xunit 2.3.1
xunit.runner.visualstudio 2.3.1
Moq 4.8.1

初回マイグレーション
クラス作成

P.12 User
P.13 KptBoardModel

コマンド

Enable-Migrations
Enable-Migrations is obsolete. Use Add-Migration to start using Migrations.
Add-Migration setp00
To undo this action, use Remove-Migration.
  1. マイグレーションを可能にする
  2. マイグレーションを追加する
ファイル生成

こんな感じで2ファイルが自動生成された。


KptBoardSystem
┗ Migrations
  ┣ 20180120074120_setp00.cs
  ┗ KptBoardModelModelSnapshot.cs
データベース生成
コマンド

Update-Database
Applying migration '20180120074120_setp00'.
Done.

参考サイト P.15 のように処理がズラズラ並ぶのではなく
とても簡素なリアクションでしたw

ファイルの場所

参考サイトには「ソリューション直下に「kpt.db」が作成される」とあったけど
実際には、ソリューションの2つ上に作成された。

後述の試行錯誤に見られた、テストとの階層の差分があるということは
コマンドを打つ際に、階層を設定するべきなのではないかと思うけど
現在は手法不明。

パス変更

そこで、

KptBoardModel.cs

のパスを下記のように変更したところ、ソリューション直下に作成された。


- var connectionString = new SqliteConnectionStringBuilder { DataSource = "../../../kpt.db" }.ToString();
+ var connectionString = new SqliteConnectionStringBuilder { DataSource = "../kpt.db" }.ToString();

この件には、大きな落とし穴が。。。
詳細は、後述の「試行錯誤」コーナーにて。

注意

コマンドを打つ際に、パッケージ マネージャー コンソールにおいて
「既定のプロジェクト」で何を選択しているかでファイル出力場所が変わる。

“kpt.db” というパスの場合は
プロジェクト直下へ生成されるので
KptBoardSystem を選択していれば、

KptBoardSystem/KptBoardSystem/kpt.db

KptBoardSystemTest を選択していれば、

KptBoardSystem/KptBoardSystemTest/kpt.db

となる。

KptBoardSystem/KptBoardSystem/kpt.db

この場合、テストではファイルが見つからないエラーになってしまうので
「既定のプロジェクト」は注意。

配置

後述の如く、コマンドと実行でファイルパスの意味合いが変わるので
コマンドで生成された DB ファイルを手動で配置換えをした。

テストと本番で DB を分けることも考え
ソリューション直下ではなく、プロジェクト直下としてみる。

つまり、最終的な配置とファイルパスの指定は下記の通り。

KptBoardSystem/KptBoardSystemTest/kpt.db

var connectionString = new SqliteConnectionStringBuilder { DataSource = "../../kpt.db" }.ToString();
注意

このようなやり方にすることで
コマンドを打つ度に
ファイルの移動が必要。

テスト
参照設定

P.18
KptBoardSystemTest プロジェクト内「参照」のコンテキストメニュー [参照の追加]
「参照マネージャー」
左ペイン [プロジェクト]-[ソリューション]
中央ペイン [KptBoardSystem] にチェック
[OK]

クラス作成

P.19 KptBoardModelTest


using Xunit;

namespace KptBoardSystem.Test
{
    public class KptBoardModelTest
    {
        [Fact]
        public void TestInsertUser()
        {
            using (var db = new KptBoardModel())
            {
                var user = new User
                {
                    Name = "User01"
                };
                db.Add(user);

                db.SaveChanges();
            }
        }
    }
}
テスト エクスプローラー

[テスト]-[ウィンドウ]-[テスト エクスプローラー]
で、開くことができる。

実施

[テスト]-[実行]-[全てのテスト]
または、テスト エクスプローラーにて、対象テストを選択した上で
[テスト]-[実行]-[選択したテスト]
で、テストを開始。

P.38
例外

私の記述ミスのせいで、


var kptBoard = db.KptBoards.Where(b => b.Problem.Contains("続ける")).First();

こちらが空になってしまった。

その際、下記のエラーが出た。

[2018/01/21 12:28:10 Error] [xUnit.net 00:00:01.7574752] KptBoardを修正する [FAIL]
[2018/01/21 12:28:10 Informational] [xUnit.net 00:00:01.7585683] System.InvalidOperationException : シーケンスに要素が含まれていません
テストのデバッグ

[テスト]-[デバッグ]
から、テストのデバッグをできる。

まだ使い方はよくわからない。

LINQ

P.34 では、u が括弧書きだったのに
今回は括弧がつかない理由がわからない。


var user02 = db.Users.Where((u) => u.Name == "User02").Include("KptBoards").First();

var kptBoard = db.KptBoards.Where(b => b.Problem.Contains("続ける")).First();

LINQ を勉強すべし。

試行錯誤
テスト実施1
エラー

テスト初回実行時、下記のエラーが出た。

[2018/01/20 17:48:52 Error] [xUnit.net 00:00:01.4263057] KptBoardSystem.Test.KptBoardModelTest.TestInsertUser [FAIL]
[2018/01/20 17:48:52 Informational] [xUnit.net 00:00:01.4272062] System.Exception : You need to call SQLitePCL.raw.SetProvider(). If you are using a bundle package, this is done by calling SQLitePCL.Batteries.Init().
原因

Google 先生に質問したところ、どうやら下記パッケージが不足していることらしい。

解決

テストプロジェクトへインストール。


Install-Package SQLitePCLRaw.bundle_e_sqlite3 -Version 1.1.9
Install-Package SQLitePCLRaw.bundle_sqlcipher -Version 1.1.9
Install-Package SQLitePCL.bundle_green -Version 0.9.3

NuGet パッケージ管理からインストールしても OK だと思う。

参考サイト

stackoverflow:Cannot run SQLite.net PCL in ASP.NET MVC(2017-02-09)

テスト実施2
エラー

上記エラーが取れてホッとしつつテストを行うと
次は下記エラーが出た。

[2018/01/20 21:48:11 Error] [xUnit.net 00:00:01.5294057] KptBoardSystem.Test.KptBoardModelTest.TestInsertUser [FAIL]
[2018/01/20 21:48:11 Informational] [xUnit.net 00:00:01.5303380] Microsoft.EntityFrameworkCore.DbUpdateException : An error occurred while updating the entries. See the inner exception for details.
[2018/01/20 21:48:11 Informational] [xUnit.net 00:00:01.5304014] —- Microsoft.Data.Sqlite.SqliteException : SQLite Error 1: ‘no such table: Users’.

Users テーブルが見つからないってさ。。。

調査
DB

kpt.db の中には、確かに Users テーブルがある。

ファイルパス

上で、DB ファイルへのパスを変えたからかもしれないと思い
パスを戻すと、エラーが出ないときもあるけど、確実ではないし
値は書き込まれない。

DB 接続

そもそも DB 接続に失敗しているのかと思って
ファイルパスを存在しないパスにしてみたら
エラー内容が下記の通り変わったので、接続には成功しているみたい。

[2018/01/20 21:52:21 Error] [xUnit.net 00:00:01.3878517] KptBoardSystem.Test.KptBoardModelTest.TestInsertUser [FAIL]
[2018/01/20 21:52:21 Informational] [xUnit.net 00:00:01.3888267] Microsoft.Data.Sqlite.SqliteException : SQLite Error 14: ‘unable to open database file’.
ファイル実体

途方に暮れて、ソリューションディレクトリをあちこち見ていたら
想定外の場所に kpt.db ファイルが!!!

原因

コマンドで作成した kpt.db のファイルパスと
テストコードが参照する kpt.db のファイルパスが
異なることが原因だった。

と言っても、何かがおかしいので
いずれわかる日が来ると信じたい。

ともかく、下記のような検証結果だった。


GrandMother
┣ Mother
┃ ┣ KptBoardSystem
┃ ┃ ┣ KptBoardSystem
┃ ┃ ┣ KptBoardSystemTest
┃ ┃ ┃ ┣ bin
┃ ┃ ┃ ┃ ┣ Debug
┃ ┃ ┃ ┃ ┃ ┗ kpt.db // テスト "kpt.db"
┃ ┃ ┃ ┃ ┣ Release
┃ ┃ ┃ ┃ ┗ kpt.db // テスト "../kpt.db"
┃ ┃ ┃ ┗ kpt.db // コマンド "kpt.db"、テスト "../../kpt.db"
┃ ┃ ┗ kpt.db // コマンド "../kpt.db"、テスト "../../../kpt.db"
┃ ┗ kpt.db // コマンド "../../kpt.db"
┗ kpt.db // コマンド "../../../kpt.db"

つまり
コマンドは、プロジェクトディレクトリがルート。
テスト(実行)は、アセンブリ(.dll)本体のある場所がルート?

Posted by muchag | C#,Visual Studio |
初回投稿:2018-01-20 (土) 15:57:34 | 最終更新:2018-01-25 (木) 22:58:33

VBoxManage

Posted by muchag | VirtualBox,Windows |
初回投稿:2017-12-10 (日) 21:43:10 | 最終更新:2017-12-17 (日) 18:37:38

【環境】
VirtualBox グラフィカルユーザーインターフェース: 5.1.24 r117012 (Qt5.6.2)
Windows: 10 Pro
list

Windows コマンドプロンプトより
VirtualBox の現在の設定や情報を取得できる。

vms

登録されている仮想マシン一覧。


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
"VirtualMachineName1" {d8c214b5-df18-4cdf-9208-dd7b99fe1778}
"VirtualMachineName2" {48b8dabe-26af-450c-b549-21e226695f4b}
参考サイト

VirtualBox Mania:VBoxManage listコマンド

Posted by muchag | VirtualBox,Windows |
初回投稿:2017-12-10 (日) 21:43:10 | 最終更新:2017-12-17 (日) 18:37:38

AngularJS Eclipse 1.2.0

Posted by muchag | AngularJS,Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 11:21:41 | 最終更新:2018-11-18 (日) 18:59:30

AngularJS 用プラグイン。
eclipse marketplace:AngularJS Eclipse

【環境】
AngularJS Eclipse: 1.2.0.201606160950
Eclipse: Oxygen (4.7)
OS: Windows10 Pro 64bit
インストール

マーケットプレイスからインストール。

適用

プロジェクトのコンテキストメニュー
[構成]-[Convert to AngularJS Project…]

Term Plugin の
[モジュール] というダイアログが出るので [適用して閉じる]

設定
検証

プロジェクトのコンテキストメニュー
[プロパティー]

左ペン [検証]-[HTML 構文]
[プロジェクト固有の設定を可能にする] にチェック
[次の検証問題の重大度レベルを選択:]

要素

[不明なタグ名]-[無視]
[無効なタグ名]-[無視]

属性

[未定義の属性名]-[無視]
[未定義の属性値]-[無視]

[適用して閉じる]
[検証設定が変更されました] ダイアログがでるので [はい]

アウトライン

[ウィンドウ]-[ビューの表示]-[その他]
[JavaScript]-[Tern Outline]
で、専用アウトラインビューが開く。

参考サイト

Java Code Geeks:Eclipse IDE AngularJS Tutorial

Posted by muchag | AngularJS,Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 11:21:41 | 最終更新:2018-11-18 (日) 18:59:30

EPP Marketplace Client

Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 10:35:24 | 最終更新:2017-09-03 (日) 10:35:24

プラグイン配布所のクライアント。

【環境】
Eclipse:Oxygen (4.7)
EPP Marketplace Client:1.5.1.v20160929-1432
OS:Windows10 Pro 64bit
概要

Marketplace もプラグインなんだそうで
Oxygen インストール時には、存在しなかったので
手動で追加。

インストール

2017-09-03 現在
Oxygen 用マーケットプレイス配布ページ は、まだ存在しないようなので
Neon 用マーケットプレイス配布ページ からインストールした。

これによる不具合が起きませんように。。。

Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 10:35:24 | 最終更新:2017-09-03 (日) 10:35:24

remote: Invalid username or password.

Posted by muchag | Git |
初回投稿:2017-08-15 (火) 22:47:27 | 最終更新:2017-08-15 (火) 22:47:27

【環境】
SourceTree:2.1.10
経緯

2.1.10 へのアップデートダイアログが出たので
嫌な予感がしながらもアップデートしてみた。

プッシュはおろかプルもできなくなった。

前のアップデートでも壊れたので嫌な予感がしたのよね。。。

エラー文言は下記の通り。

エラー
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v –tags origin master:master
remote: Invalid username or password.
fatal: Authentication failed for ‘https://github.com/[user_name]/[repository_name].git/’
Pushing to https://github.com/[user_name]/[repository_name].git/
解決

試行錯誤は後で書くとして
まずは解決方法。

stackoverflow:Sourcetree remote: Invalid username or password(2017-08-11)

2.1.8.0 のバグだそうで。。。

[ツール]-[オプション]
[Git] タブ
[Git バージョン]-[内蔵 Git を更新]

「本当にいいの?」って聞かれるので「いいの!」と答える。
直りました。。。

せっかく4日前の書き込みなのに、
辿り着くまで時間がかかった。 😥

同じことに悩まされている方がいらっしゃるかしらね~。

試行錯誤

なんか色々とやって、メモしておきたいことがあるんだけど
時間がないので、スキップ。

Posted by muchag | Git |
初回投稿:2017-08-15 (火) 22:47:27 | 最終更新:2017-08-15 (火) 22:47:27

ファイルの関連付け

Posted by muchag | Eclipse |
初回投稿:2016-02-16 (火) 16:53:49 | 最終更新:2018-11-19 (月) 23:19:37

【環境】
Eclipse:Mars.1 (4.5.1) PHP
2017-08-15: Oxson(4.7)PHP
2018-10-01: Photon(4.8)PHP
OS:Windows7 SP1 64bit
手順

[ウィンドウ]-[設定]
[一般]-[エディター]-[ファイルの関連付け]
ファイルの関連付け
ファイル・タイプを選択。なければ追加
エディターの選択。なければ追加

ただし!

[ウィンドウ]-[設定]
[一般]-[コンテンツ・タイプ]
に登録済みだと、上記設定を無視する。

事例

CakePHP において、.ctp ファイルを開く際に
ダイアログで関連付けを聞かれた。

多分 HTML でいいか聞かれたんだと思う。

[OK] にしていたら、知らないうちに
[ウィンドウ]-[設定]
[一般]-[コンテンツ・タイプ]
の [テキスト]-[HTML] にファイル個別に登録されていた。
(Photon(4.8)PHP での話。Oxson では、UI が異なる)

「ファイルの関連付け」から当該ファイル群を削除したら
[ウィンドウ]-[設定]
[一般]-[エディター]-[ファイルの関連付け]
こちらで設定した、PHP コンテンツファイルの設定が反映された。

案件毎設定内容

[ウィンドウ]-[設定]
左ペイン [一般]-[コンテンツ・タイプ]
右ペイン [テキスト]-[(対象コンテンツ・タイプ)]
[追加]
「コンテンツ・タイプの関連付けを追加」
コンテンツ・タイプ:(対象拡張子)

CakePHP3

右ペイン [テキスト]-[PHP コンテンツ・タイプ]

コンテンツ・タイプ:.ctp

Vue.js

右ペイン [テキスト]-[HTML]

コンテンツ・タイプ:.vue

Posted by muchag | Eclipse |
初回投稿:2016-02-16 (火) 16:53:49 | 最終更新:2018-11-19 (月) 23:19:37

インストール 1.8.1 キャッシュ 編

Posted by muchag | Library & PlugIn & AddIn,XAMPP |
初回投稿:2016-01-24 (日) 16:49:20 | 最終更新:2016-01-24 (日) 17:14:42

インストール 1.8.1

キャッシュ用ライブラリの導入。

【環境】
XAMPP for Windows: 1.8.1
APC
DL

APC:Win Web Dev より DL。
いっぱいあってよくわからないので
参考サイトの説明書に従った。

表記にtsとあるのはthread safe、ntsとあるのはnon thread safeという意味。ということでApacheはtsバージョン、IISはntsバージョンを使います。

OXY NOTES:XAMPP1.8.2にAPCとmemcachedを導入する方法

2016-01-24 現在
php_apc_3114_beta_php54_win7-2008.zip

配置
解凍

DL してきた ZIP ファイルを解凍すると

php_apc_3114_beta_php54_win7-2008.dll

というファイルが出てくる。

リネーム
php_apc.dll

と、リネーム。

配置
D:\xampp\php\ext

内へ配置。

php.ini

php.ini へ下記のように追記。

  1. extension=php_apc.dll ; added 2016-01-24
  1. [APC]
  2. ; added 2016-01-24
  3. apc.enabled = 1
  4. apc.shm_size = 32M
  5. apc.ttl = 0
  6. apc.user_ttl = 0
  7. apc.gc_ttl = 3600
  8. apc.stat = 1
Memcached
参考サイト

OXY NOTES:XAMPP1.8.2にAPCとmemcachedを導入する方法

Posted by muchag | Library & PlugIn & AddIn,XAMPP |
初回投稿:2016-01-24 (日) 16:49:20 | 最終更新:2016-01-24 (日) 17:14:42

インストール 1.8.1 VirtualHost 編

Posted by muchag | XAMPP |
初回投稿:2016-01-20 (水) 19:09:30 | 最終更新:2016-04-13 (水) 14:37:28

インストール 1.8.1
の番外編記事。

前回の記事

【環境】
XAMPP for Windows: 1.8.1
別の設定方法

前回とは異なる設定方法。

  1. <VirtualHost *:80>
  2.     DocumentRoot "D:/xampp/htdocs/myapp"
  3.     ServerName localhost.myapp.com
  4.     ErrorLog "logs/localhost.myapp.comt-error.log"
  5.     CustomLog "logs/localhost.myapp.com-access.log" combined
  6. </VirtualHost>

時間が経ったから、新しい方法が出てきたのか
元々あったのか、わからないけど、
私としては、直感的でわかりやすかった。

Facebook などでローカル環境での動作確認をできるようになるみたい。
そちらはまだ試していない。

hosts

上記設定だけでは、localhost.myapp.com にアクセスしたときに
インターネットに接続しようとしてしまうとのことで
接続設定も必要。

C:\Windows\System32\drivers\etc\hosts
  1. 127.0.0.1 localhost.myapp.com

※hosts ファイルを編集するには、メモ帳を管理者として実行して
ファイルメニューから手動で開くこと。

参考サイト

OXY NOTES:XAMMP導入時にApacheのVirtualHostを設定する方法

Posted by muchag | XAMPP |
初回投稿:2016-01-20 (水) 19:09:30 | 最終更新:2016-04-13 (水) 14:37:28
« 前ページへ次ページへ »