【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

Phalcon webtoolsを使ってみよう

こんにちは。
開発チームのワイルド担当、まんだいです。

以前、phalconコマンドについてのブログを書きましたが、いかんせんオプションが多く、使いこなすのに、時間が掛かりそうな気がします。

そんな時は、phalconコマンドを覚えるのは、後からぼちぼちやるとして、サクッと使えるphalcon webtoolsを使ってみるのがいいんじゃないでしょうか?

phalcon webtoolsを利用できるプロジェクトを作成

まだ作成していない新規のプロジェクトに最初からwebtoolsを使用可能にする場合のコマンドは以下のようになります。

1
phalcon project --name [project-name] --enable-webtools

 

phalcon webtoolsを既存のプロジェクトにインストール

既に作成済みのphalconプロジェクトにwebtoolsを追加することもできます。

1
phalcon webtools --enable

 

phalcon webtoolsをアンインストールする

設定が完了した、開発が完了した、などでwebtoolsが不要になる時がいずれ来ます。
その際も、phalconコマンドで手軽にアンインストールする事ができます。

1
phalcon webtools --disable

 

トップページを表示してみる

webtoolsを有効にしたら、ブラウザで表示してみます。
webサーバー側でドキュメントルートをプロジェクトのpublicに指定した場合は、http://localhost/webtools.phpでアクセスできます。

何か表示されはしたけれど、スタイルシートがうまく効いていない場合は、public/css と public/js に書き込み権限を追加し、再度webtools.php にアクセスします。

1
2
cd /path/to/project_root/public/
chmod a+w css js

CSSやJSの実体はphalcon-devtools内のresourcesディレクトリにあるのですが、それを初回リクエスト時に開発環境へコピーするという処理が実行されます。
この際、ディレクトリに書き込み権限がない場合はファイルが複製できないという訳です。

必要な要素が全て取り込まれた状態のトップページがこちら。

これは、Phalcon dev-toolsの3.0.4で作成されたもので、過去のバージョンと大幅にレイアウトが変わっています。

機能も一部変更があって、configの設定をwebtoolsからできなくなりました。
なので、DBの設定などは、予めwebtools外で実施しておく必要があります。

 

アクセスできない場合

パターンは幾つかあると思いますが、私が遭遇したパターンを挙げてみます。

 

webtools.config.phpで設定されたIPアドレス以外からのアクセス

この場合は、以下のような画面に遭遇します。

public 以下に生成されたwebtools.config.php というファイルでは、アクセス可能なIPアドレスが設定されています。

デフォルトでは、192.168.0.0/16 のレンジ指定になっています。
たまたまスクリーンショットを取りたくて、VirtualBox外からアクセスしたかったのですが、この設定に引っかかりました。

 

リンクがどうもおかしい場合

トップページに幾つかリンクがありますが、「/webtools.php/webtools.php?_url=/info」のような形になっている場合は、baseUriの設定を確認します。
ドキュメントルートを、「プロジェクトルート + public」まで設定している場合は、config/config.php の baseUri の設定は不要なので「/」にしてしまいます。

公式ドキュメントでも紹介されているinvoの場合は、/invo/を設定しています。

 

コントローラーやモデルを作成すると、「An unexpected error has occurred.」

これもCSSやJSがロードできないのと同じ理由で、controllerやmodelのディレクトリに書き込み権限がない事が原因です。

諸々ローカル環境の書き込み権限不足で悩まされる事が多いですが、開発時にディレクトリの権限を色々細工した後、本番環境に移行する際、戻したり再設定するのも面倒なので、webサーバー側の実行ユーザーを変更してしまうというのも一つの手かも知れません。
あと、/var/log/messages を「SELinux」でgrepして見つかった場合は、SELinuxが何か邪魔しているので

1
sudo setenforce 0

としてしまう禁じ手もあります。

以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
1,201
X facebook はてなブックマーク pocket
【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。