※当サイトの記事には、広告・プロモーションが含まれます。

EclipseでPHP開発の環境構築

IDE統合開発環境)にEclipseを使ってPHPの開発環境を構築してみたので、メモしてみます。環境はwindows7(64bit)です。

 

Eclipse 4.5 MarsのPleiades All in Oneセットをインストール

http://mergedoc.osdn.jp/ に行って『Eclipse 4.5 Mars Pleiades All in One』を選択します。Pleiades All in One ダウンロードの際の注意点は下記です。

Pleiades All in One

統合開発環境 Eclipse 本体と Pleiades プラグインおよび便利なプラグインを開発対象となるプログラミング言語別にパッケージングした Windows 向けのセットです。

ダウンロードした zip ファイルを解凍 (zip 解凍時の注意) し、eclipse.exe を起動すれば、すぐに日本語化された Eclipse を利用できます。

LinuxMac などで日本語化する場合は、Pleiades All in One ではなく Pleiades プラグイン本体をダウンロードします。

f:id:ts0818:20160223181437j:plain

今回は『PHP(64bit Full Edition)』を『Download』します。

f:id:ts0818:20160223181438j:plain

ダウンロードされたzipファイルを解凍する際には注意が必要で、これはwindowsの仕様によるのが原因のようです。(zip 解凍時の注意

今回は、miyawareさんのブログを参考にさせてもらいました。

  詳しくは下記サイトへ

MiyaWare Blog: eclipseを解凍しようとした時にファイルやパスが長すぎてエラーになった時の対処。

 

ダウンロードされたzipファイル上で右クリックし、『プログラムから開く(H)』>『エクスプローラー』を選択します。

f:id:ts0818:20160223182555j:plain

『ファイルをすべて展開』を選択します。

f:id:ts0818:20160223182556j:plain

展開先のフォルダのパスが長いので短くします。

f:id:ts0818:20160223182557j:plain

今回は『C:¥』(Cドライブ直下)にしました。

f:id:ts0818:20160223182558j:plain

C:¥pleadesというフォルダに『eclipse』や『xampp』といったフォルダがインストールされました。

f:id:ts0818:20160223183449j:plain

eclipse』>『eclipse.exe』をダブルクリックでeclipseが起動します。

f:id:ts0818:20160223183450j:plain

ワークスペース』に『C:¥xampp¥htdocs』を選択します。

f:id:ts0818:20160223184634j:plain

PHPエクスプローラー』ができます。

f:id:ts0818:20160223184633j:plain

ここで、一からプロジェクトを作る場合は、下の画像のように『ファイル(F)』>『新規(N)』>『PHPプロジェクト』を選択する流れですが、今回は、既にプロジェクトが始まってると仮定して、そのプロジェクトをインポートして作業するという方法です。

f:id:ts0818:20160223184635j:plain

なので、今回は、仮のプロジェクトを別に作っておくのですが、その前にGitというバージョン管理システムの話に脱線します。

Gitというバージョン管理システムVCS:Version Control System)

プロジェクトが大きくなるほど、大勢の人が作業を分担することになり、作業量も増え、どこをどう修正したかなどが把握しきれなくなってくるようです。

そこで、役立つのがバージョン管理システムというものです。

バージョン管理システムVCS:Version Control System)

ファイルに対して「誰が」「いつ」「何を変更したか」というような情報を記録することで、過去のある時点の状態を復元したり変更内容の差分を表示できるようにするシステムのことです。

バージョン管理システムには大きく分けて、 

の2つがあるようで、Gitは分散型バージョン管理システムとして有名のようです。

  集中型と分散型の違いについては下記サイトへ 

ガチで5分で分かる分散型バージョン管理システムGit (3/6) - @IT

 

Gitは、gitクライアントとgitサーバー(Git Hubが有名)によって成り立っているようです。

GitはLinux OS上でC言語シェルスクリプトで記述されており、Windows環境ではMSYSというPOSIX APIWindows API上で模擬するラッパーを介して移植したmsysgit(Git for Windows)を使います。

Windows環境でGitを使う

何はともあれ、Gitを利用するには、gitコマンドが必要で、gitコマンドを使えるようにするために、gitクライアントソフトをインストールする必要があります。

windowsでgitクライアントソフト『msysgit(Git for Windows)』をインストールするには、

の方法があるようです。

 

  Windowsにgitクライアントソフトをインストールする方法は下記サイトへ

WindowsにGitをインストールする | 株式会社グランフェアズ

  Macでgitクライアントソフトをインストールする方法は下記サイトへ

はじめてでもOK!Gitをインストールする方法 | TechAcademyマガジン

 

Git Hubを利用するまでのイメージ図

f:id:ts0818:20160226122432p:plain

gitクライアントソフト『msysgit(Git for Windows)』をインストールすると、CUICharacter User Interface)、GUIGraphical User Interface)の両方がデフォルトで用意されてるのですが、GUIに関してはサードパーティ製のものがよく使われるそうで、

  • TortoiseGit(Windows専用?みたいです。)
  • SourceTree(WindowsMacどちらでも使えるようです。)

などが有名で、今回はGUIとしてTortoiseGitをインストールし利用します。 

TortoiseGitをインストール

Download – TortoiseGit – Windows Shell Interface to Git に行きます。

今回は、windows7(64bit)を使っているので『for 64-bit OS』を選択します。(お使いのパソコンに合わせてください。)

f:id:ts0818:20160223205404j:plain

『Language Packs』は、『Language』が『Japanese』の『64Bit』の『Setup』を選択します。

f:id:ts0818:20160223205405j:plain

ダウンロードされた『TortoiseGit-1.8.16.0-64bit.msi』ファイルをダブルクリックします。

  拡張子が『.msi』のファイルについての説明は下記サイトへ 

セットアップファイル(MSIとEXE)の違い - その他(プログラミング) 解決済 | 教えて!goo

f:id:ts0818:20160223204902j:plain

『Next>』を選択クリックします。

f:id:ts0818:20160223204903j:plain

『Next>』を選択クリックします。

f:id:ts0818:20160223204904j:plain

『Next>』を選択クリックします。

f:id:ts0818:20160223204905j:plain

『Next>』を選択クリックします。

f:id:ts0818:20160223204906j:plain

『Install』を選択クリックします。

f:id:ts0818:20160223204907j:plain

インストールが開始されます。

f:id:ts0818:20160223204908j:plain

『Finish』でインストールが完了します。

f:id:ts0818:20160223204909j:plain

続いて『TortoiseGit-LanguagePack-1.8.16.0-64bit-ja.msi』をダブルクリックします。

f:id:ts0818:20160223211231j:plain

『次へ(N)』を選択クリックします。

f:id:ts0818:20160223211232j:plain

『完了(F)』を選択クリックします。

f:id:ts0818:20160223211233j:plain

 

gitの設定ファイル「.gitconfig」の場所

Gitには、git configと呼ばれるツールが付属します。

これで、どのようにGitが見えて機能するかの全ての面を制御できる設定変数を取得し、設定することができます。

これらの変数は三つの異なる場所に格納されてます:

  1. /etc/gitconfig file: システム上の全てのユーザーと全てのリポジトリに対する設定値を保持します。もし--systemオプションをgit configに指定すると、明確にこのファイルに読み書きを行ないます。
  2. ~/.gitconfig file: 特定のユーザーに対する設定値を保持します. --globalオプションを指定することで、Gitに、明確にこのファイルに読み書きを行なわせることができます。
  3. 現在使っている、あらゆるリポジトリのGitディレクトリの設定ファイル(.git/configのことです): 特定の単一リポジトリに対する設定値を保持します。それぞれのレベルの値は以前のレベルの値を上書きするため、.git/configの中の設定値は/etc/gitconfigの設定値に優先されます。

2. の説明のファイル『~/.gitconfig file』が置かれてる場所が、 

『C:¥Users¥ユーザー名¥.gitconfig』で、『ユーザー名』『E-mailアドレス』の設定をすることをgit のdocumentatinでも推奨してます。

Gitをインストールしたときに最初にすべきことは、ユーザー名とE-mailアドレスを設定することです。全てのGitのコミットはこの情報を用いるため、これは重要で、次々とまわすコミットに永続的に焼き付けられます:

Git - 最初のGitの構成

ということで、コマンドプロンプトで下記コマンドを実行します。

ユーザー名とメールアドレスは適宜読み替えてください。

git config --global user.name "ts0818"
git config --global user.email ts0818@gmail.com

 

SSH Keyを用意

Gitサーバーに push(ローカルのデータをサーバに反映させる)や pull(サーバのデータをローカルに反映させる)するにはSSH(Secure Shell)というプロトコルを使うため、ここでSSH Keyを用意する必要があります。

SSH Keyは、Git HubだけでなくSFTPなどでも使われるため、既に作成済みの場合はそれを使っても大丈夫のようです。

SSH Keyは、『C:¥Users¥ユーザー名¥.ssh』に作られます。

コマンドプロンプトで作っていきます。

SSH Key作成手順

  1. コマンドプロンプトを起動し、『mkdir』コマンドを実行しフォルダを作成します。
    mkdir ~/.ssh

    『~/』はホームディレクトリ(C:¥Users¥ユーザ名¥)のこと。そこに『.ssh』フォルダを作成してます。(C:¥Users¥ユーザ名¥.ssh
  2. 『cd』コマンドで『.ssh』フォルダへ移動
    cd ~/.ssh
  3. SSH Keyの作成
    ssh-keygen -t rsa

    コマンド入力後、『どこになんて名前で鍵を保存する?』と聞かれますが、特に変えなくてもいい人は何も入力せず『Enterキー』を押します。(その場合、デフォルトの名前『id_rsa』で保存されます。)
    その後、『パスワードはどうする?』と聞かれますが、何も入力せず『Enterキー』を押すのが良いようです。
    これでSSH Keyが作成されました。

C:¥Users¥ユーザ名¥.sshエクスプローラーで開く 

『id_rsa』が自分のパソコンに保管する鍵情報のファイルで『秘密鍵(private key)』と呼ばれるそうです。

『id_rsa.pub』がサーバーに登録する鍵情報のファイルで『公開鍵(public key)』と呼ばれるようです。

f:id:ts0818:20160226143200p:plain

※『 . 』 (ドット)から始まるフォルダ名は、不可視ファイルと呼ばれWindowsでは『フォルダオプションの設定項目で、不可視ファイルを表示する設定』にしていないと表示されません。

不可視ファイルを見えるようにする

f:id:ts0818:20160226143201p:plain

f:id:ts0818:20160226143202p:plain

 

Git HubにSSH key(公開鍵のほう)を登録する

Git Hubに『Sign in』したら、右上のアイコンをクリックし『Settings』を選択クリックします。

f:id:ts0818:20160226153834j:plain

SSH keys』を選択すると、『New SSH key』ボタンが表示されるので選択クリックします。

f:id:ts0818:20160226153622p:plain

『Title』は自由に付け、『Key』の項目に、『id_rsa.pub』ファイルに記述されてるものをコピーし貼り付けます。『Add SSH key』ボタンをクリックして完了です。

f:id:ts0818:20160226153623p:plain

『公開鍵(public key)』がSSH keyとしてGit Hubに登録されました。

f:id:ts0818:20160226153621p:plain

 

ローカルの秘密鍵(private key)の設定

Git Hubにアクセスする時は、この秘密鍵(private key)を使うという設定をする必要があります。

『.ssh』フォルダ内で新規ファイルを作成し『config』(拡張子は付けない)という名前で保存します。

この『config』フォルダに下記のように記述し保存します。

Host github.com
  User git
  identityFile ~/.ssh/id_rsa

SSH keyのファイル名を変更してる人は、『id_rsa』の部分を変更した名前にしてください。

TortoiseGitのPuttygen

sshキーファイルをPutty用のファイル(「.ppk」形式)に変換したものを別に作ることで、TortoiseGitでのGitサーバーへのpushやpullを可能にします。

SSH接続には、Git標準のOpenSSH(ssh.exe)や、Tortoise SVN/CVSまたはPuttySSHクライアントに収録されているPlink.exeといったように、クライアントによって使用されるsshキーが異なるようです。

『スタート』から『プログラムとファイルの検索』に『TortoiseGit』と入力し、そのフォルダをクリックし『PuTTYgen』を選択します。

f:id:ts0818:20160227002355j:plain

『Load』を選択クリックします。

f:id:ts0818:20160227002356j:plain

『C:¥Users¥ユーザー名¥.ssh』の場所を開き、『id_rsa』を選択します。 

f:id:ts0818:20160227003409p:plain

『OK』を選択クリックします。

f:id:ts0818:20160227002220j:plain

『はい(Y)』を選択クリックします。

f:id:ts0818:20160227002221j:plain

適当な名前をファイル名に入れて、保存します。

f:id:ts0818:20160227003410p:plain

ダイアログを閉じます。

f:id:ts0818:20160227002223j:plain

『.pkk』の拡張子のファイルが作成されました。

f:id:ts0818:20160227002224j:plain

  Puttygenについて詳しくは下記サイトへ

Windowsでgitを使う方法

WindowsのGitbashで、Githubをssh経由で操作できるようにセットアップした - yuhei.kagaya 

 

これで、Gitサーバー(Git Hubなど)を使う準備もできました。

 

  Gitサーバーを自作する方法などは下記サイトへ 

自分専用の git サーバーを作ろう

  サーバーをGit対応にさせるもの様々については下記サイトへ 

GitHubのようなサイトを独自に運用できる「GitLab」や「GitBucket」を使ってみよう - さくらのナレッジ

 

プロジェクトをcloneする

よくネットとかで、『Git Hubからclone(クローン)しましょう。』とかいう言葉を見かけたりしたのですが、これは、Git Hub上のリポジトリのコピーを自分のパソコンに持ってくることらしいです。

リポジトリは、プログラムなど(ファイルに加えた修正などの履歴を含めたもので、1日目のプロジェクト、2日目のプロジェクト、・・・n日目のプロジェクトまでのように経過まで含めた全ての情報を格納したもの)が体系だてて保管されている場所です。

リポジトリのイメージ図

f:id:ts0818:20160226175417p:plain

リポジトリをクローンするには、

git clone [url] 

とします。

Git Hubでcloneしたいリポジトリのページに行きます。

f:id:ts0818:20160226181122j:plain

SSH』『HTTPS』どちらの形式でcloneするか選んでURLをコピーします。

f:id:ts0818:20160226183038p:plain

 

cloneする際に気をつけたいこと

C:¥xampp¥htdocsに「cd」コマンドで移動後に下記コマンドを実行しました。 

git clone git@github.com:ts0818/Hello.git

C:¥xampp¥htdocs内は下記のような感じです。

f:id:ts0818:20160226194458j:plain

『Hello』フォルダの中身です。

f:id:ts0818:20160226194459j:plain

その結果たるや、

『fatal: destination path 'Hello' already exists and is not an empty directory.』

自分はこのエラーが出てどうしたもんかとGoogle検索と長考すること1日にも及びました。 

英語をちゃんと読みなさいよ、ということなのでしょうが、これはどういうことかというと、

「git clone git@github.com:ts0818/Hello.git」というコマンドは、『Hello』というフォルダを作成し、その中で.gitフォルダを初期化してリポジトリの全てのデータ(ファイルなど)を盛り込んで、最新バージョンの作業コピーをチェックアウトしたものを、パソコンに複製するということらしいです。

なので、パソコン側(ここではC:¥xampp¥htdocsのフォルダ内)で『Hello』フォルダがあるなら中身は空っぽにしてくださいってことらしいです。

ちなみに、『Hello』フォルダじゃなくて『Evening』という名前のフォルダでcloneしたい場合は、

git clone git@github.com:ts0818/Hello.git Evening

とします。

f:id:ts0818:20160226195904j:plain

C:¥xampp¥htdocs』に『Evening』フォルダでcloneされました。最初に『Evening』フォルダを作っている場合でも同じ結果になります。

f:id:ts0818:20160226195903j:plain

ですが、『Evening』フォルダを作成していて、『C:¥xampp¥htdocs¥Evening』の場所で「git clone git@github.com:ts0818/Hello.git Evening」コマンドを実行すると『Evening』フォルダの中に『Evening』フォルダという状態になります。

f:id:ts0818:20160226195907j:plain

『Evening』の中に『Evevning』が作成されます。 

f:id:ts0818:20160226201542j:plain

一般的には、ローカルにフォルダを作っておいて、その中にcloneするという説明がネットでは多いので、フォルダが入れ子になるのが正しいと思うのですか、ちょっと判断がつきません。 

CloneできたのでEclipseワークスペースにプロジェクトをインポート

今回は、『Hello』というフォルダに『CakePHP3』をインストールしたものをプロジェクトとしてます。

CakePHP3は、Composerというパッケージ管理ツールを使ってインストールするのが一般的なようです。

なぜ、Composerが使われるようになったかというと、PHPの開発が複雑さを増し、開発時間を短縮するために、サードパーティのライブラリをじゃんじゃん使うようになったらしいのですが、ライブラリ同士の依存関係を処理しきれなくなってきたため、2人のPHP開発者によってPHPの依存関係処理の新しいソリューションとしてComposerが開発されたようです。

 

  Composerが使われるに至った経緯について詳しくは下記サイトへ 

一新された PHP: Composer による PHP 依存関係の処理

  CakePHP3.xのインストールについては下記サイトへ

インストール — CakePHP Cookbook 3.x ドキュメント

 

Eclipseにプロジェクトをインポート

PHPエクスプローラー』上で右クリックし、『インポート(I)』を選択します。

PHPエクスプローラー』が表示されていない場合は『ウィンドウ(W)』>『ビューの表示』>『PHPエクスプローラー』で表示されます。

f:id:ts0818:20160227011603p:plain

『Gitからプロジェクト』を選択します。 

f:id:ts0818:20160227012953j:plain

『既存ローカル・リポジトリー』を選択し、『次へ(N)>』をクリックします。

f:id:ts0818:20160228010036j:plain

リモートからcloneしてきたリポジトリを選択し、『次へ(N)』をクリックします。 

f:id:ts0818:20160228010037j:plain

『Import using the New Project wizard(P)』を選択し、『完了(F)』をクリックします。

f:id:ts0818:20160228010039j:plain

PHPプロジェクト』を選択し、『次へ(N)>』をクリックします。

f:id:ts0818:20160228010038j:plain

『プロジェクト名(P)』を入力し、『PHP バージョン』を『PHP 5.6』にして、『完了(F)』をクリックします。

f:id:ts0818:20160228010040j:plain

無事インポートされました・・・ってむちゃくちゃエラー出てます。

f:id:ts0818:20160228010041j:plain

CakePHP3のvenderフォルダがエラーの原因のようです。

PHPエクスプローラー』でプロジェクト(ここでは『Hello[Hello master]』)を選択し、『プロジェクト』>『プロパティー(P)』を選択クリックします。

f:id:ts0818:20160228134552j:plain

『プロジェクト固有の設定を可能にする(O)』にチェックをし、『HTML 構文バリデーター(PHPファイル用)』の『設定』をクリックします。

f:id:ts0818:20160228134545j:plain

『除外グループの追加(E)』を選択クリックします。

f:id:ts0818:20160228134546j:plain

『除外グループ』が追加されます。

『除外グループ』を選択し、『ルールの追加(U)』をクリックします。

f:id:ts0818:20160228134547j:plain

『フォルダーまたはファイルの名前(O)』にチェックし、『次へ(N)>』を選択クリックします。

f:id:ts0818:20160228134548j:plain

ここでは、『ファイルまたはフォルダー(E)』に『Hello/vender』と入力し『完了(F)』を選択クリックします。

『ファイルまたはフォルダー(E)』は『PHPエクスプローラー』側で『×』のあるフォルダを指定します。 

f:id:ts0818:20160228134549j:plain

『OK』を選択クリックし、『プロパティ』のウィンドウを閉じます。

f:id:ts0818:20160228134551j:plain

無事エラーが・・・って、エラー(1項目)消えてないし、警告(189項目中100項目)ってなってるんですけど。

f:id:ts0818:20160228134553j:plain

とりあえず、エラーの出てるリソース『invalid.xml』ってのを見てみます。

Hello/vender/symfony/config/Tests/Fixtures/Util/invalid.xmlにあります。

『invalid.xml』をダブルクリックし、『invalid.xml』が表示されたら、最初は『設計』で開かれると思うので、『ソース』をクリックしてソースファイルが見れるようにします。

f:id:ts0818:20160228152721p:plain

ソースファイルの3行目の×印にカーソルを持っていくと、

XML文書構造は同じエンティティー内で開始および終了しなければなりません。』って下の『問題』って画面の『説明』と同じ内容が表示されるんですが、Google検索してもよくわかりませんでした。

 

エラーと警告は依然として残ったままですが、XAMPPを起動した状態で、http://localhost/Helloにアクセスすると、CakePHP3の画面は表示できました。

f:id:ts0818:20160228212946j:plain

とりあえず、解決方法が分かり次第追記したいと思います。

解決方法をご存知の方がいらっしゃったらお助け願います。

 

  同じような問題を抱えていたと思われるサイトは下記サイトへ

EclipseとXAMPPでCakePHP3の開発環境を構築する手順 - Qiita

今回はこのへんで。