負けてたまるか。

脳トレ、プログラミング、PHP、WEB製作などのメモ

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) | Edit
基礎からのmysqlで初めて詰まったwwwwwwwwwwwww
もうわけわからんwwwwwwwwwwwwwwwwwwwwwwwwwww

ていうかまじでVISTA市ね

エラー情報(ブラウザ)
Fatal error: Call to undefined function mysql_connect()

[意訳] mysql_connect() なんて関数しらねーよアホ


エラー情報(error.log)
Starting the Apache2.2 service
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_msql.dll'
…以下変な文字の羅列が続くので省略…
in Unknown on line 0

[意訳] php_msql.dllが読み込まれてねーんだよボケ共
(もちろんphp_msql.dllは存在しているので、
どっかの設定を直せば解決するはずだが…)




httpd.confの追加の順番を以下のように変更
(なんか順番が違うと動作しないとかあるらしいので)

AddType application/x-httpd-php .php
PHPIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"


結果→やっぱり失敗


sys32にlibmysql.dll追加
(再起動めんどいので直で追加)

結果→またもや失敗


さあてどうするか。。。

◆23:05 追記
これは久々に駄目だな。
ていうかphpからmysql動かせるテスト環境作らなきゃ、どうしようもないじゃん!

うーん、アンインスコってXAMPP入れるかぁ
XAMPPでも確かエラー出てApache起動しなかったけど、
iniとconfいじって少しは設定とかわかるようになったから、
なんとか動かせるようにできるはず。。

しっかし、まさかこんなところに鬼畜ポイントがあるとは思わなかったぜ
サーバ管理の知識ないと解決不可能っぽいからなー。
よし、とりあえず全部アンインストール!

◆14:40追記
今XAMPPインスコして動作確認したら、こいつ動くぞ!?
http://localhost にもアクセスできる。
もしかして、前やったとき動かなかったのは

UACをオフにした後に面倒だったので再起動しなかった

のが原因か?
だとしたら俺あほすwwwwww

よーし続けてphpからのmysql操作やってみるかー

◆16:04追記
phpからのデータ追加に成功
しかし文字化けしてる。
DOSから追加したのは文字化けてないが、txtとphpから追加したデータは文字化け。
またなんか設定し直さなきゃならんのか・・

◆18:14追記
文字化け解決せず。
しかも my.cnfが無い。
my に短縮されてるとかそういうんじゃなくてマジで無いから困る。
my.ini ならあるけどもうよくわかんね

さらにコマンドプロンプトの設定が常にInsert状態になりやがったw
(再起動しても設定戻らず。。いちいちInsertボタン押さないといけなくなった)

しょうがないので、Mysqlの勉強は英語でやることにしましたw
phpから動かせるんだからいっか別にw
スポンサーサイト
【MySQLのダウンロード】

ダウンロードは以下のサイトで。
http://dev.mysql.com/downloads/

(1)mysql-essential-xxx.x.xx-win32.msiをダウンロード ※最新バージョンをDLしてください。

【MySQLのインストール】

(1)Setup Type → Typical のままでOKです。

(2)インストールを開始します。

(3)インストールが終わると"Configure MySQL Server now"が表示されるので、そのチェックを外してインストールを終了します。
※理由 → Vistaの場合コンフィギュレーションってのが正常に行われないため。XPの場合はチェックしてOK。

【Configurationの実行】

(1)Configurationを実行します。
[スタート]-[MySQL]-[MySQL Server x.x]-[MySQL Server Instance Config Wizard]

(2)Configuration Typeを選びます。どっちを選んでもOKな気がするので、今回はStandardを選ぶことにします。
※詳細に設定したい場合にはDetailedを選択するようです。
(Standardは初心者向け、Detailedは上級者向けってことですかね?)

(3)Windowsのサービスに追加します。
[3-1] Install As Windows Service と Launch the MySQL Server Automatically にチェックが入っていることを確認します。
※理由 → Windowsを起動すると自動的にMySWLが起動してくれるので

[3-2] Include Bin Directory in Windows PATH にチェックを付けます。
※理由 → わかりませんが、便利らしいので

[3-3] プルダウンメニューの Service Name を自分のMySQLのバージョンに設定します。
(今回のバージョンは5.1なのでメニューからMySQL51を選択しました) 

(4)セキュリティ対策のため、管理者パスワードを追加します。
Modify Security Settingsに好きなパスワードを設定してください。

(5)これで設定の準備ができました。Executeボタンを押して設定を開始します。

【バグ?】
configurationのService Name を自分のMySQLのバージョンに設定がMYSQL51にしたのになぜか
上手くいかなかった。他のバージョンでも試したがダメだったので、仕方なくサービス登録のチェックを外したところ、設定を完了することができました。

【動作確認】

(1)[Program Files]-[MySQL]-[MySQL Server 5.1]-[bin] にフォルダ内にある MySQL Command Line Client を実行してMySQLを起動します。

(2)MySQL では、インストール時にテスト用のデータベース test が作成されています。これに接続してみます。
[2-1] コマンドプロンプトに mysql test と入力し、実行します。
[2-2] データベース test に接続できれば以下のような文字列が表示されます。

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.34-community MySQL Community Server (GPL)

(3)MySQLを終了します。
[3-1] コマンドプロンプトに \q と入力し、MySQLを終了します。

(4)MySQLの動作確認は以上で終了となります。ここまで見てくださってお疲れ様でした。
なぜ動くのか全く理解してませんが、ApacheとPHPをくっつけることに成功しました。
とりあえずメモっときます。

※この方法はPHPを動作させることができない初心者向けのものです。
PHPを動作させることはできますが、最善の方法ではありません。
不具合が発生するかもしれませんが、そこんところは自己責任でお願いします。

【PHPのインストール】
(1)どっかでインストールします。保存フォルダはCドライブ直下にして、フォルダ名は php とします。
※Apacheのフォルダ名は apache とします。

【PHPの設定】

(1)php5ts.dllとphp5apache2_2.dllをSystem32へコピーします。
どちらか1つコピーすればいいような気もしますが、後でチェックするのが面倒なので両方書いておきます。

※Apache2.xの場合は、環境変数を使う方法もありますが、再起動するのがまたまた面倒なのでこちらの方法を採用します。

(2)phpフォルダ内の php.ini-dist ファイルを php.ini と拡張子を変更して、phpフォルダ内ではなく、Cドライブ直下に保存します。( PHPIniDir が記述されて無い場合に php.ini を最後に探すのがCドライブらしい)

※ PHPIniDir "【php.iniのあるディレクトリを指定】" というのをApacheのhttpd.confファイルに記述すれば php.ini ファイルをCドライブ直下に保存する必要はありませんが、面倒なのでC直下にします。


【Apacheのhttpd.confファイルを編集】
PHPとドッキングするために編集しなければならないようです。
Apacheのconfフォルダ内にある httpd.conf ファイルをテキストで開いてください。

(1)PHPをモジュールとしてApacheに登録します。
LoadModule php5_module "C:/php/php5apache2_2.dll"をhttpd.confファイルの好きな場所に追加します。
(で、モジュールって何ですか??)

(2)別の拡張子に対するMIMEタイプを追加で登録します。
AddType application/x-httpd-php .php

(で、MIMEタイプって何ですか??)

(3)php.iniのある場所を指定します。
PHPIniDir "【php.iniのあるディレクトリを指定】"

※まあ、Cドライブ直下にコピってあるから指定する必要ないんですけど、一応書いとく?

【php.iniの編集】
php.iniをテキストで編集します。

(1)ドキュメントルートをApacheのhtdocsフォルダに設定します。
doc_root = "C:\apache\htdocs"

(で、ドキュメントルートって何ですか?)

(2)拡張モジュールのディレクトリを指定します。
extension_dir = "c:\php\ext"

(これも意味不明。設定しなかったらどうなんの?)

(3) ;extension=php_mbstring.dll のコメントを外します。
extension=php_mbstring.dll

(4) output_buffering を Off に設定します。
output_buffering = Off

※出力バッファリングを無効にします。出力バッファリングとはいったん出力する内容を貯めておいてから一気に出力するってことですたぶん。
チャットとかすぐに反映されるのは出力バッファではないですたぶん。

(5) default_charset をコメントアウトします。
;default_charset = EUC-JP

※デフォルトの文字コードのことではなく、出力時にHTTPヘッダとして送信する文字コード名のことだそうです。default_charset が有効になっていると、メールとかやるときに困るらしいです。

(6) mbstring.language に Japanese を設定します(デフォルト)
mbstring.language = Japanese

※ mbstring の言語を設定します。

(7) mbstring.encoding_translation を off に設定します。
mbstring.encoding_translation = off

※入力されるHTTPクエリを内部文字コードへの自動変換を行うかどうかを設定します。
自動変換されると文字化けの原因になるので off に変更します。

(8) mbstring.http_input に pass を設定します。
mbstring.http_input = pass

※HTTPの入力文字コードを設定します。何でかわかりませんがpassにします。

(9) mbstring.http_output に pass を設定します。
mbstring.http_output = pass

※HTTPの出力文字コードを設定します。何でかわかりませんがpassにします。

(10) mbstring.internal_encoding に EUC-JP を設定します。
mbstring.internal_encoding = EUC-JP

※mbstringの内部文字コードを設定します。

(11) mbstring.substitute_character に  none を設定します。
mbstring.substitute_character = none

(12) mbstring.detect_order に SJIS,EUC-JP,JIS,UTF-8,ASCII と複数のユニコードを設定します。
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII

※文字コードを読み取る順番を設定します。あまり使わないであろう ASCII を後ろに追いやるのがポイント

(13) output_handler に mb_output_handler を設定します。
output_handler = mb_output_handler

※よくわかりません

(14)MySQLを使用できるようにします。
 extension= の項目の mysql と文字の入った行のコメントを全て外してください。

extension=php_mysql.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll

【動作テスト】

(1)動作しているかどうか確認のために、Apacheのhtdocsフォルダ内にphpファイルを作成します。
phpファイル内には、以下のように、phpの情報を表示するタグを書きます。
<?php phpinfo(); ?>

(2)ブラウザに、「http://【php名】.php」と記述してアクセスします。
phpが正常に動作していればphpの情報が表示されます。
※もちろんApacheをオンにしないと表示されないので注意!

・・・これで動作するはずです。皆さん長い時間お疲れ様でした。

主な参考ページ
http://hain.jp/index.php/tech-j/2007/02/13/p125
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_mbstring.html#php_ini
http://www.aconus.com/~oyaji/www/apache_win_php.htm
とりあえずPHPやりたくなったので、テスト環境作るためにApacheインストールしたんですが、かなり大変でした。
教えてgooとかApacheメーリングリストとかに質問しまくって皆さんに迷惑をかけつつもなんとか解決できました。
ただ、パソコンのシステムとかサーバ関係に少し詳しくないと解らないような問題だったので、忘れないためにもメモっときます。

[準備]
1.UACを無効にする
コントロールパネル-システム辺りから無効にできます
2.ウイルス対策ソフトをオフにする。
一応オフっといてもいいです
3・ポート80番をチェック(skype使ってる人は要注意)
よくわからんが、コマンドプロンプトに 「netstat -a -o」 と入力して、そこに表示されるPIDってのを見ればいいらしいです。※方法が間違ってるかもしれないので注意
4.localhostが127.0.0.1を返すかチェック(重要)
なんかよくわからんけどhttp://localhost=127.0.0.1に設定しないと接続できないらしいです。
Vistaの場合セキュリティソフト?のdefenderの不具合かなんかで127.0.0.1の記述を勝手に削除されてしまうようなので、これを修正します。
まずはコマンドプロンプトを使ってlocalhostが127.0.0.1に設定されているかどうかをチェックします。
コマンドプロンプトにピングを飛ばします。「ping localhost」
●●からの応答:時間 < 1ms の●●が127.0.0.1と表示されていれば問題ないようです。
もし、::1からの応答:時間 < 1msと「::1」が表示されていた場合は127.0.0.1が設定されていない可能性があります。そこで、Windows/System32/drivers/etc/hosts のhostsファイルをテキストで開いて編集します。(System32内を編集するのは危険らしいので、くれぐれも自己責任でお願いします)
一番下に「::1 localhost」という記述があるかと思いますのでその辺りに「127.0.0.1 localhost」と追加して保存してください。これでhostsファイルの編集は終わり。これでたぶん動くはずです。

[インストール]
あとは以下のページに書いてあるからそっちみればOKです!
http://www.hidekik.com/adminpage/dmb.cgi?mode=viewthread&id=171

あとPHPとMYSQLとApacheのconfを設定すれば年賀んのPHPが使えるぞ~わくわく。
| ホーム |

カレンダー

08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近の記事

月別アーカイブ

タグリスト

ブログ内検索

カテゴリー

RSSフィード

リンク

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。