軽量で柔軟性に優れいていると話題のFuelPHPをWindows環境にインストールしてみます。
FuelPHP » A simple, flexible, community driven PHP5.3 framework.
今回検証した環境は以下の通りです。
- FuelPHP 1.7.2
- PHP 5.4.19
- xampp 1.8.2
- Windows 7
PHPはxamppのものを使います。
FuelPHPはPHP 5.3以上で動作するという事なので、要件は満たしています。
パッケージをダウンロード・インストール
上記の公式サイトから最新のパッケージをダウンロードします。
今回の最新版は1.7.2でした。
ダウンロードしたパッケージを展開します。
Composerでライブラリダウンロード
FuelPHPのライブラリはComposerで管理されているので、Composerを実行して必要なライブラリをダウンロードします。
コマンドプロンプトを起動して、パッケージのディレクトリに移動ます。
cd C:xxxfuelphp
Composerを実行します。
※ここで、Windowsにgitがインストール済みで、環境変数Pathでコマンドphpとgitへのパスが設定済みであることを前提とします。
php composer.phar update
すると以下のエラーが発生しました。
Warning: This development build of composer is over 30 days old. It is recommended to update it by running "composer.phar self-update" to get the latest version.
composerの設定ファイルが古いので、アップデートしてから実行してくださいという事のようです。
php composer.phar self-update php composer.phar update
そうすると問題なく処理が完了しました。
ちなみにソースのダウンロードも含めて3分ほど要します。
Composerダウンロードエラーについて
WindowsのコマンドラインからComposerを実行する際に、さまざまなエラーが発生します。
以下、想定されるエラーと対策を書き溜めておきます。
[RuntimeException] The .git directory is missing from C:xxxfuelphpfuelvendorcomposerinstallers, see https://getcomposer.org/commit-deps for more information
上記のフォルダに問題があるようなので、一旦フォルダ「C:xxxfuelphpfuelvendorcomposer」を削除して、もう一度「php composer.phar update」を実行します。
[RuntimeException] The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true.
PHPの拡張機能「openssl」が必要だと言っているので、php.iniファイルを開き「extension=php_openssl.dll」の部分のコメントアウトを外して有効にします。
Could not fetch https://api.github.com/repos/fuelphp/upload/zipball/xxx, please create a GitHub OAuth token to go over the API rate limit Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+uncover-PC+xxxx-xx-xx+0900 to retrieve a token. It will be stored in "xxx/Composer/auth.json" for future use by Composer. Token (hidden):
匿名ユーザからのGitHubへのアクセスについては制限が設けられているようです。
そこで、GitHubのアカウントを持っている場合、GitHubのサイトにログインし「Settings」をクリック、メニュー「Personal settings」の「Personal access tokens」画面からボタン「Generate new token」を押して、tokenを取得します。
上記のメッセージが表示されたところに、取得したtokenをコピペすると「Token stored successfully.」と表示され、処理が続行されるはずです。
ちなみにGitHubのアカウントを持っていない場合の対処はいまのところ不明です。。
Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for fuelphp/upload 2.0.2 -> satisfiable by fuelphp/upload[2.0.2]. - fuelphp/upload 2.0.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
PHPの拡張機能「fileinfo」が必要だと言っているので、php.iniファイルを開き「extension=php_fileinfo.dll」の部分のコメントアウトを外して有効にします。
もう少しディレクトリ構成をスッキリさせる
展開した初期のディレクトリ構成は以下のような状態です。
fuelphp/ docs/ fuel/ public/ composer.json(など各種設定ファイル)
「/fuelphp/fuel」がFulePHP本体で、「/fuelphp/public/」がドキュメントルートにあたる公開フォルダです。
セキュリティの面からfuelフォルダはドキュメントルート配下には設置しない構成になっています。
ここで、FulePHPのファイルが散らばらないように、各環境のドキュメントルートに合わせたディレクトリ構成に変更します。
例えばドキュメントルートが「/public_html/」の場合、「/fuelphp/public/」内のファイルを全て「/public_html/」にコピーします。
fuelphp/ docs/ fuel/ public/ composer.json(など各種設定ファイル) public_html/ assets/ .htaccess favicon.ico index.php web.config
FuelPHP関連ファイルは、公開されないフォルダ「/fuelphp/」フォルダにまとめられています。
次に、index.phpをテキストエディタで開き、以下のパスをつながるように編集します。
// define('APPPATH', realpath(__DIR__.'/../fuel/app/').DIRECTORY_SEPARATOR); define('APPPATH', realpath(__DIR__.'/../fuelphp/fuel/app/').DIRECTORY_SEPARATOR); // define('PKGPATH', realpath(__DIR__.'/../fuel/packages/').DIRECTORY_SEPARATOR); define('PKGPATH', realpath(__DIR__.'/../fuelphp/fuel/packages/').DIRECTORY_SEPARATOR); // define('COREPATH', realpath(__DIR__.'/../fuel/core/').DIRECTORY_SEPARATOR); define('COREPATH', realpath(__DIR__.'/../fuelphp/fuel/core/').DIRECTORY_SEPARATOR);
最後にpublic_htmlにブラウザからアクセスして、以下の初期画面が表示されればFuelPHPのインストールは成功です。
さて、ここからスタートだ!
コメントする