TeamViewer via kwout
PC を遠隔操作するための TeamViewer を起動していると、ポート 80 が使われる。このため、同ポートを利用している Apache にアクセスできなくなる。
TeamView が利用するポート番号を変更するには、メニューより、
- その他 > オプション > 詳細 > 詳細なネットワーク設定
において、「着信ポート80および443を使用しないでください」にチェックを入れる。
書いて忘れて頭スッキリ
TeamViewer via kwout
PC を遠隔操作するための TeamViewer を起動していると、ポート 80 が使われる。このため、同ポートを利用している Apache にアクセスできなくなる。
TeamView が利用するポート番号を変更するには、メニューより、
において、「着信ポート80および443を使用しないでください」にチェックを入れる。
ラベル: Apache , Skype , TeamViewer
この時期、恒例になってきた開発環境の整備。変なエラーに煩わされないことを祈りつつ設定 (+_+)
利用するツールとバージョンは以下の通り。
今回、開発環境を新しくした理由は、修正したいコードがあったため。修正対象のソースコードで、PHP が使われている部分は、
DB は使用していない。処理はシンプルなので、テンプレートエンジンを使わず、自前で MVC ライクに書いている。しかし、いくら単純でも、Web ページの数が増えてくると、重複した部分が徐々に気になってくる。フレームワークを使うように変更しようか、検討中。
以前に、CakePHP を試してみようと環境を整えたことがある。
PHPフレームワーク ちいたん via kwout
も良さげだけれど、 PHP で他のフレームワークを使ったことがないので、とりあえず CakePHP への移行が無難かな。
PHP はたくさんのフレームワークが乱立している。なるべくシンプルでコンパクトなものを使いたい。以下の図による説明を見ると、今回の自分のやりたいことに対して、CakePHP は、妥当な選択に思えた。
ちなみに、調べていたら、 symfony からのつながりで、Twig というテンプレートエンジンが気になった。一度、使ってみたい。
CakePHP のバージョンを確認したら、1.3.0 と 1.2.7 がリリースされている。1.3 はまだ出たばかりのようなので、今回は 1.2.7 を利用することにした。
現時点では、1.2 の方がドキュメントが充実している。
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 は、
とする。上記の設定中 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 on XAMPP でちょっとはまった « 43HR を参考にして、PDT にインポートした CakePHP のソースコードの以下の各々のファイルに内容に RewriteBase を追加。
これで 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値を変更してください。
これにより、警告が消える。
今回は DB を使う予定はない。しかし、http://localhost/testCakePHP2/ にアクセスすると警告がでるので、ついでに DB の設定もしておく。
XAMPP のコントロールパネルで MySQL の Start ボタンを押す。
Admin ボタンで phpMyAdmin を起動。(phpMyAdmin を使いたくない場合は、MySQL Workbench を利用するとよい。)
「データベース」タブを選択し、新規にデータベース testcakephp を作成。
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 変数のハッシュのキーに対する値において、
に変更する。これで、http://localhost/testCakePHP2/ にアクセスすると警告が消える。
データベースで、アプリケーション専用のユーザを作成してアクセスしたいなら、phpMyAdmin の「特権」タブにおいて、test ユーザを作成。パスワードを test とする。その際、グローバル特権にデータと構造に全てチェックを付けておいた。
上記の database.php に戻り、
と設定する。
http://localhost/testCakePHP2/ にアクセスすると、オールグリーンで準備完了。
分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT (2009/1/14) によると、
分散バージョン管理システムでは、ローカルのブランチに対して作業を行い、テストまできちんと終了した作業のまとまりを中央リポジトリへ反映できます。
出先で、ノート PC を利用してバージョン管理をしたいので、そろそろ分散バージョン管理に移行しようかな。
個人的には Haskell で作られている Darcs を使ってみたい。
久しぶりに XAMPP を入れ直した。バージョンは 1.6.8。
XAMPP のコントロールパネルを使って、Apache が起動を試みた。しかし起動しない。
Skype において、 ツール > 設定 > 詳細 > 接続 の「上記のポートの代わり、ポート80を使用」のチェックをはずした。
次に、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 が動いてくれた。
追記 (2008.12.3) : お手軽に GUI から操作できる
をインストールした。ダウンロードするとき、ユーザ登録を促されるが、
を選択。
デフォルトでは以下の場所にインストールされる。
C:\Program Files\MySQL\MySQL Tools for 5.0\MySQLAdministrator.exe
しかし、MySQLAdministrator を起動しようと思ったけれど、root のパスワード忘れてもうた… (o_ _)o~†
の説明に従い、コマンドラインから、xampp の mysql フォルダにある C:\xampp\mysql\bin\ に移動してから、
mysqladmin -u root password パスワード
により、パスワードを変更。
これに伴い phpMyAdmin における設定も変更。
を設定した。
$cfg['Servers'][$i]['password'] = 'パスワード';
これで 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 が問題なく起動してくれた。 ^^
(cf. PHP の開発環境を整える)
CakePHPで高速Webアプリ開発:第4回 CakePHPでの開発環境を構築する の説明に従った。
(この連載の第1,2回 を読むと、CakePHP の概略をざっと把握できる。)
CakeForge: CakePHP: Project Filelist より Stable の cake_1.1.19.6305.zip をダウンロードして、解凍した。
PDT で PHPProject を作成する。(testcake とした。)
File > import で、先ほど解凍した cake_1.1.19.6305 フォルダ をインポート。
インポートしたらエラーが表示されたので、プロジェクトのプロパティで、文字コードを UTF-8 に変更した。
testcake プロジェクト直下の index.php で右クリック > Run As > Open Run Dialog... を選択。 以下のように設定して実行する。
Eclipse に内蔵されたブラウザに、以下のように表示された。この表示は、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 を実行したら、以下のように表示された。
app/config/database.php.defaultをコピーまたはリネームして,app/config/database.php を作成します。
http://localhost/phpmyadmin/ にアクセスして、 ユーザ cake を作成した。
再度、上記と同じように index.php を実行したら、以下のように表示されるようになった。
同一ネットワーク上にある他の 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 との連携がされるように設定がされるようチェックがされていた。
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 としてアクセスができた。
参考
ラベル: Apache , Subversion , Windows
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
「PHPの開発環境を整える」の続き。
Eclipse で開発する際、以下のディレクトリにソースコードを置いている。(workspace)
D:\develop\work\
このディレクトリを Apache に認識させ、ブラウザで
http://localhost/eclipsework
にアクセスしたときに PHP が実行されるようにする。
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 に追加しても反映されなかった。代わりに
に追記したら動作した。
追記 (2011.5.18) : C, D ドライブの両方に XAMPP をインストールしているのを忘れ、設定ファイルの記述が間違っていたのが上記動作の原因かも。
Eclipse のメニューより Project > Properties > PHP Project Settings において use project setting を選択し、 localhost に
http://localhost/eclipsework
と設定する。
PHP で作業するためには、Window > Open Perspective > Other > PHP を選択。
これにより、PHP Browser が表示されるようになる。