ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2011年5月20日金曜日

Apache を起動するときは TeamViewer の着信ポートの設定を変更する

PC を遠隔操作するための TeamViewer を起動していると、ポート 80 が使われる。このため、同ポートを利用している Apache にアクセスできなくなる。

TeamView が利用するポート番号を変更するには、メニューより、

  • その他 > オプション > 詳細 > 詳細なネットワーク設定

において、「着信ポート80および443を使用しないでください」にチェックを入れる。

CropperCapture[184]

Skype もポート80 を利用するので設定に気をつける

2010年5月2日日曜日

PHP の開発環境を整える (2010.5) - CakePHP の準備

1. 開発環境の一覧

この時期、恒例になってきた開発環境の整備。変なエラーに煩わされないことを祈りつつ設定 (+_+)

利用するツールとバージョンは以下の通り。

 

2. CakePHP を利用するための準備

今回、開発環境を新しくした理由は、修正したいコードがあったため。修正対象のソースコードで、PHP が使われている部分は、

  1. パーツに分割した HTML を結合する処理と ( cf. フレームの代わりにPHPを使う ) 、
  2. フォームでの問い合わせの処理。

DB は使用していない。処理はシンプルなので、テンプレートエンジンを使わず、自前で MVC ライクに書いている。しかし、いくら単純でも、Web ページの数が増えてくると、重複した部分が徐々に気になってくる。フレームワークを使うように変更しようか、検討中。

以前に、CakePHP を試してみようと環境を整えたことがある。

軽量なフレームワーク

も良さげだけれど、 PHP で他のフレームワークを使ったことがないので、とりあえず CakePHP への移行が無難かな。

PHP はたくさんのフレームワークが乱立している。なるべくシンプルでコンパクトなものを使いたい。以下の図による説明を見ると、今回の自分のやりたいことに対して、CakePHP は、妥当な選択に思えた。

ちなみに、調べていたら、 symfony からのつながりで、Twig というテンプレートエンジンが気になった。一度、使ってみたい。

http://www.twig-project.org/

Twig via kwout

 

使用する CakePHP のバージョン

CakePHP のバージョンを確認したら、1.3.0 と 1.2.7 がリリースされている。1.3 はまだ出たばかりのようなので、今回は 1.2.7 を利用することにした。

現時点では、1.2 の方がドキュメントが充実している。

 

PDT へ CakePHP のソースコードをインポート
  1. cakephp / cakephp1x より、1.2.7 をダウンロードして解凍。
  2. PDT で新規に testCakePHP2 プロジェクトを作成。
  3. 解凍した CakePHP のソースコードを testCakePHP2 プロジェクトに D&D。
  4. プロジェクトのプロパティで Resource > Text file encoding を UTF-8 に変更。

 

Apache の設定

Apache の httpd.conf で以下の記述がコメントアウトされているのを確認。 ( cf. Apacheとmod_rewrite )

LoadModule rewrite_module modules/mod_rewrite.so

テスト用のアプリケーションの設定のために以下の記述を追加。

Alias /testCakePHP2/ "C:/develop/tool/eclipse/workspace/testCakePHP2/"
<Directory "C:\develop\tool\eclipse\workspace\testCakePHP2/">
    Options FollowSymLinks 
    AllowOverride All
    Allow from All
</Directory>

ただし、PDT が利用する workspace は、

C:/develop/tool/eclipse/workspace/

であるとする。また、アプリケーションのルートの URL は、

http://localhost/testCakePHP2/

とする。上記の設定中 Options FollowSymLinks を有効にしているのは、Old Nabble - CakePHP - Forbidden Error によると、

In order for mod_rewrite to work you have to have:
Options FollowSymLinks
Put that right under the AllowOverride All and it should work. :)

 

CakePHP の .htaccess に RewriteBase を追加

次に CakePHP on XAMPP でちょっとはまった « 43HR を参考にして、PDT にインポートした CakePHP のソースコードの以下の各々のファイルに内容に RewriteBase を追加。

  • testCakePHP2/.htaccess に RewriteBase /testCakePHP2
  • testCakePHP2/app/.htaccess に RewriteBase /testCakePHP/app
  • testCakePHP2/app/webroot/.htaccess に RewriteBase /testCakePHP2/app/webroot

 

debugger.php の設定

これで http://localhost/testCakePHP2/ にアクセスすることができるようになった。ただし、以下の警告が表示される。

Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 548]

CakePHPブログチュートリアル :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook によると、

security saltは、ハッシュの生成に用いられます。/app/config/core.phpの153行目を編集し、デフォルトのsalt値を変更してください。

これにより、警告が消える。

 

3. MySQL の設定

今回は DB を使う予定はない。しかし、http://localhost/testCakePHP2/ にアクセスすると警告がでるので、ついでに DB の設定もしておく。

XAMPP のコントロールパネルで MySQL の Start ボタンを押す。

Admin ボタンで phpMyAdmin を起動。(phpMyAdmin を使いたくない場合は、MySQL Workbench を利用するとよい。)

データベース」タブを選択し、新規にデータベース testcakephp を作成。

img05-02-2010[2]

XAMPP の MySQLと PHP の説明によると、

MySQLは "root" に対するパスワード無しで起動します。したがってPHPではMySQLサーバを以下で接続できます: mysql_connect("localhost","root","")
MySQLの"root" に対するパスワードを設定したい場合は、コンソール(Console)の下の"mysqladmin"を使ってください。

testCakePHP2\app\config の database.php.default を database.php に名前を変更。 database.php で $default 変数のハッシュのキーに対する値において、

  • login を root
  • password を空
  • database を 上記で作成した testcakephp

に変更する。これで、http://localhost/testCakePHP2/ にアクセスすると警告が消える。

データベースで、アプリケーション専用のユーザを作成してアクセスしたいなら、phpMyAdmin の「特権」タブにおいて、test ユーザを作成。パスワードを test とする。その際、グローバル特権にデータと構造に全てチェックを付けておいた。

img05-02-2010[3]

上記の database.php に戻り、

  • login を test
  • password をtest
  • database を 上記で作成した testcakephp

と設定する。

http://localhost/testCakePHP2/ にアクセスすると、オールグリーンで準備完了。

img05-02-2010[1] 

 

4. 分散バージョン管理に移行しようかな…

分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT (2009/1/14) によると、

分散バージョン管理システムでは、ローカルのブランチに対して作業を行い、テストまできちんと終了した作業のまとまりを中央リポジトリへ反映できます。

出先で、ノート PC を利用してバージョン管理をしたいので、そろそろ分散バージョン管理に移行しようかな。

個人的には Haskell で作られている Darcs を使ってみたい。

 

関連記事

2008年12月3日水曜日

XAMPP を入れなおしたら、Apache, MySQL が起動しない

1. XAMPP をインストール

久しぶりに XAMPP を入れ直した。バージョンは 1.6.8。

 

2. Apache が起動しないのは、Skype が原因

XAMPP のコントロールパネルを使って、Apache が起動を試みた。しかし起動しない。

問題は、以前と同じように Skype が邪魔をしていた

Skype において、 ツール > 設定 > 詳細 > 接続 の「上記のポートの代わり、ポート80を使用」のチェックをはずした。

 

3. MySQL が起動しない

次に、MySQL を起動しようとしても起動せず。 (+_+)

次のようなエラーが表示された。

ローカルコンピュータのMySQLサービスを開始できません。エラー1067: プロセスの途中で強制終了しました。

WEB+DBプログラミングの基礎FAQ - [データベース]All About によると、

この問題が発生した場合は、winmysqladminを停止し、
C:\WINDOWSフォルダ内(*注1)にあるmy.iniファイルを削除します。

上記に従い、C:\WINDOWS\my.ini を削除。

次に、C:\xampp\mysql\bin\winmysqladmin.exe を起動。username と パスワードを設定するように促されるので設定。

しかし、今度もまたエラーが。 (@_@;)

Access violation at address XXXXXXX in module 'LIBMYSQL.dll'. Read of address 00000000.

以前にも同じエラーが表示されたことがある。。

WinMySQLadmin 1.4 を起動し、my.ini タブを選択。

`user= , password= ' に文字が記入されていたので、これを削除し、Save Modification ボタンを押した。

同じ対処をしたら、 MySQL が動いてくれた。

 

4. MySQL Administrator のインストール

追記 (2008.12.3) : お手軽に GUI から操作できる

をインストールした。ダウンロードするとき、ユーザ登録を促されるが、

を選択。

デフォルトでは以下の場所にインストールされる。

C:\Program Files\MySQL\MySQL Tools for 5.0\MySQLAdministrator.exe

しかし、MySQLAdministrator を起動しようと思ったけれど、root のパスワード忘れてもうた… (o_ _)o~†

 

root のパスワードを変更

の説明に従い、コマンドラインから、xampp の mysql フォルダにある C:\xampp\mysql\bin\ に移動してから、

mysqladmin -u root password パスワード

により、パスワードを変更。

これに伴い phpMyAdmin における設定も変更。

  • C:\xampp\phpMyAdmin\config.inc.php の root のパスワード

を設定した。

$cfg['Servers'][$i]['password']      = 'パスワード';

 

my.ini の指定

これで MySQLAdministrator を root 権限で起動できるかと思いきや、次のようなエラーメッセージが表示された。

Either the server service or the configuration file could not be found. Startup variables and service section are therefore disabled.

Beautiful Dreamer ~ ばしっ子ドットコム Returns ~::2008年02月 によると、

これは、単純に設定ファイルのパス指定の問題。
なので、レジストリ・エディタで簡単に対応。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MySQL\ImagePath
C:\mysql\bin\mysqld.exe MySQL

"C:\mysql\bin\mysqld.exe" --defaults-file="C:\WINDOWS\MY.INI" MySQL

説明に従い、レジストリエディタ (regedit)で

C:/xampp/mysql/bin/mysqld-nt.exe --defaults-file="C:\WINDOWS\MY.INI" MySQL

上記で問題になっていた my.ini ファイルを指定するようだ。

mysqld.exe と mysqld-nt の違いはあったけれど、これは NT 系の OS の違いということなのかな。

あ~、これでやっと MySQLAdministrator が問題なく起動してくれた。 ^^

2008年4月28日月曜日

CakePHP の環境を整える

前提となるツール

  • PDT が使えること。
  • XAMPP がインストールされていること。

(cf. PHP の開発環境を整える)

 

CakePHP を利用するための手順

CakePHPで高速Webアプリ開発:第4回 CakePHPでの開発環境を構築する の説明に従った。

(この連載の第12回 を読むと、CakePHP の概略をざっと把握できる。)

CakeForge: CakePHP: Project Filelist より Stable の cake_1.1.19.6305.zip をダウンロードして、解凍した。

 

PDT の設定

PDT で PHPProject を作成する。(testcake とした。)

File > import で、先ほど解凍した cake_1.1.19.6305 フォルダ をインポート。

インポートしたらエラーが表示されたので、プロジェクトのプロパティで、文字コードを UTF-8 に変更した。

testcake プロジェクト直下の index.php で右クリック > Run As > Open Run Dialog... を選択。 以下のように設定して実行する。

Image1

Eclipse に内蔵されたブラウザに、以下のように表示された。この表示は、Apache の mod_rewrite が設定されてないときの表示。

Image2

 

Apache の設定 - mod_rewrite

Cookbook :: 1.2 Collection :: The Manual :: Developing with CakePHP :: Installation :: Apache and mod_rewrite を参考にし、D:\xampp\apache\conf\httpd.conf の以下の行をコメントアウトした。

LoadModule rewrite_module modules/mod_rewrite.so

再度、上記と同じように index.php を実行したら、以下のように表示された。

Image4

 

データベースの設定

app/config/database.php.defaultをコピーまたはリネームして,app/config/database.php を作成します。

(http://gihyo.jp/dev/serial/01/cakephp/0004?page=2 より)

http://localhost/phpmyadmin/ にアクセスして、 ユーザ cake を作成した。

Image5

再度、上記と同じように index.php を実行したら、以下のように表示されるようになった。

Image6

2008年4月20日日曜日

Windows の Subversion にネットワーク経由でアクセスする

同一ネットワーク上にある他の PC 上の Subversion にアクセスしたい。

Subversion の動作 によると、次のいくつかの方法がある。

file://
ローカルないしネットワークドライブのリポジトリに直接アクセスします。

http://
Subversion を組み込んだ Apache サーバに WebDAV プロトコルでアクセスします。

https://
http:// と同じですが、SSL 暗号化を用います。

svn://
svnserve サーバと独自プロトコルで行う、認証されていない TCP/IP アクセス。

svn+ssh://
svnserve サーバと独自プロトコルで行う、認証・暗号化された TCP/IP アクセス。

Apache との連携がお手軽そうだ。

 

方法

Apache2(Windows版)でSubversionをネットワークに対応 に従って設定を行った。

まずはじめに、Subversion のインストーラを使って、 Apache の設定をさせようとした。ネットワークに対応させたい PC (192.168.11.2) は、Apache2.0.55 。Subversion は 1.4.3 。(svn --version で確認。) インストーラは削除してしまっているので、再度、Win32 packages built against Apache 2.0 から svn-1.4.3-setup.exe を再度ダウンロードした。インストーラを使って、設定をさせようと思ったが、デフォルトで Apache との連携がされるように設定がされるようチェックがされていた。

080420-001

 

Apache の httpd.conf を確認したところ、

LoadModule dav_module modules/mod_dav.so

は、コメントアウトされており、

#LoadModule dav_fs_module modules/mod_dav_fs.so

は、コメントアウトされてなかったので、コメントアウトした。

以下は記述がされていた。

LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

Subversion のある位置情報を追加し、Apache を再起動。 http://localhost/svn にアクセスして動作を確認した。今回は、認証をかけない設定で行った。

<Location /svn>
  DAV svn
  SVNPath "d:/develop/svn"
</Location>

当初、上記の SVNPath を SVNParentPath と記述していたら動作しなかった。また、svn を snv と書くとエラーで起動しない。 ^^; 書き間違えに注意。

他の PC 上から TortoiseSVN を利用して、URL を http://192.168.11.2/svn としてアクセスができた。

 

参考

2007年3月20日火曜日

サイトに簡易パスワードを設定 - Apache でBasic認証

パスワードファイルの作成

Apacheのbinディレクトリに移動して、

htpasswd -c htpasswd ユーザ名

htpasswd とは任意の名称のパスワードファイル。


認証を動作させるためのファイルの作成

htaccess という名称のファイルを作成し、以下の記述をする。(Xreaの場合)

AuthUserFile /virtual/アカウント名/public_html/制限をかけたいディレクトリ/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted"
AuthType Basic
require valid-user

<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>

htpasswd と、htaccess をアクセス制限したいディレクトリにアップロードし、各々のファイル名の接頭辞として `.' を付ける。

参考

- 認証、承認、アクセス制御 - Apache HTTP サーバ
http://httpd.apache.org/docs/2.0/ja/howto/auth.html

- XREA FAQ[私設応援団] - hp_build
http://xreafaq.com/hp_build.html#10

2007年1月30日火曜日

Apache に Eclipse で開発してるディレクトリを認識させ PHP を実行

PHPの開発環境を整える」の続き。

Eclipse で開発する際、以下のディレクトリにソースコードを置いている。(workspace)

D:\develop\work\

このディレクトリを Apache に認識させ、ブラウザで

http://localhost/eclipsework

にアクセスしたときに PHP が実行されるようにする。

 

httpd.conf の設定

Apache の httpd.conf に以下を追加。

Alias /eclipsework "D:/develop/work/"
<Directory "D:\develop\work\">
   Options Indexes MultiViews
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

追記 (2011.4.27) : XAMPP 1.7.3 を使い、上記を httpd.conf に追加しても反映されなかった。代わりに

  • C:\xampp\apache\conf\extra\httpd-xampp.conf

に追記したら動作した。

追記 (2011.5.18) : C, D ドライブの両方に XAMPP をインストールしているのを忘れ、設定ファイルの記述が間違っていたのが上記動作の原因かも。

 

Eclipse の設定

Eclipse のメニューより Project > Properties > PHP Project Settings において use project setting を選択し、 localhost に

http://localhost/eclipsework

と設定する。

PHP で作業するためには、Window > Open Perspective > Other > PHP を選択。

これにより、PHP Browser が表示されるようになる。