メイン | 2006年03月 »

2005年12月07日

PHP5でMySQLが動かない

PHP5は既定ではMySQLが有効になっていないので、PHP5にバージョンアップしたらMySQL関係が動かなくなったという方もいるはずである。

PHP5はMySQLのクライアントライブラリをバンドルしていない

PHP5でMySQLを有効にする(Windows)には次のように設定します。

1. PHP設定ファイル(PHP.ini)の「;extension=php_mysql.dll」のコメントをはずします。
2. 同じく、PHP設定ファイル(PHP.ini)のextension_dirにphp_mysql.dllの配置場所を追加します。(変更例: extension_dir = "c:\php\ext\")※「c:/php/ext/」だと上手くいかないことがあります。
3. PHPインストール先(例:c:\php)にあるlibmysql.dllをWindowsディレクトリ(例:c:\windows)にコピーします。
4. Apacheを再起動します。

これでPHP5でMySQLを使えるようになります。

投稿者 masato : 14:54 | コメント (5606)

lsコマンドをコマンドプロンプトで

コマンドプロンプト上で

C:\Documents and Settings>doskey ls=dir $*

と実行することで「ls」が「dir」と同じと認識される。

投稿者 masato : 14:52 | コメント (726)

XPでASPが動かない

ASPを動かすためにはIIS(Internet Information Server)のインストールが必要。XP Professionalでは標準で付いてくるが、XP Homeでは無理。

XP HomeでASPを動かしたい場合はWebMatrixを使用する必要がある。

投稿者 masato : 14:51 | コメント (903)

htmlファイルがダウンロードされてしまう

c:\Apache2\conf\httpd.confファイルの

Addtype text/x-server-parsed-html .shtml .html

という記述を削除することによって解決

投稿者 masato : 14:51 | コメント (683)

PHPでの文字化け2

PHPでは、Magic Quotes GPC(GPCとはGet Post Cookieの意味)という設定があります。この設定をonにすると、「'(シングル・クォテーション)」や「"(ダブル・クォテーション)」、「\」(「\」)を含む文字列があると、GetなりPostで受信した文字列に対して自動的にエスケープしてくれるというものです。例えば「John's name」を「John\'s name」と処理してくれるため、データベースなどに登録する際にエラーにならないというものです。一見すると非常に親切そうですが、実は厄介な問題を孕んでいます。この章で述べたとおり、Shift_JISでプログラミングすると、「5C = \」が現れる文字が存在します。このような場合、「十和田湖」「能力」「申し込み」「表示」などの文字列はPOSTなりGETで受信するたびに、「十\和田湖」「能\力」「申\し込み」「表\示」などのようにエスケープされていますから、そのまま表示してしまうと不細工極まりませんので、必ず stripslashesしなければなりません。

このMagic Quotes GPCの問題を考えても、Shift_JISでプログラミングするのは、文字コード全般の知識を有している場合やi-モードサイトの構築などでどうしても避けられない場合などを除いては避けるべきです。(もちろんMagic Quotes GPCをoffにすれば、この問題は発生しません。あなたがサーバの管理者でない場合も、.htaccessで設定可能です。「php_flag magic_quotes_gpc off」とすればOKです。データベース登録時には、addslashesなどの処理が必要です。)

投稿者 masato : 14:50 | コメント (1145)

PHPでの文字化け

php.iniファイルのdefault_charsetの項目を記述する

例)
default_charset = EUC-JP

などのように

投稿者 masato : 14:50 | コメント (918)

親のディレクトリに移動する場合

現在のディレクトリの親の親のディレクトリに移動する場合は

cd ..\..

投稿者 masato : 14:49 | コメント (1375)

パスワードの設定

MySQLへのインストールが済むと、自動的に root ユーザが作成されている。初期状態の root はパスワードが設定されていないから、度胸試しをしたいならともかく、まずはパスワードを設定したほうがいい。

rootでmysqlにログイン

# mysql -u root mysql

ログインが済んだら、SET PASSWORD 構文でパスワードの設定

mysql> SET PASSWORD FOR root=PASSWORD('new_password');

投稿者 masato : 14:48 | コメント (1022)