普段、ただ単にファイルを置くために使っているNAS。
それに、Webサーバー機能が付いてて、PHPも使える、
さらにMySQLサーバー機能も付いてることを知ったので、
使ってみます。
自宅で使っているNASはこれです。
バッファロー LS-WSX1.0L
ファームウェア Ver. 1.73
BUFFALO リンクステーション mini 手のひらサイズのネットワークHDD(NAS) 省電力 データを守るRAID1搭載 1TB LS-WSX1.0L/R1J 新品価格 |
○Webサーバーの設定
設定画面を開いて、
「ネットワーク」タブ、「Webサーバー」タブを開き、
「設定変更」を押す。
「使用する」にチェック入れて、
ポートはとりあえずデフォルトの「81」でいいや。
公開フォルダを”share/www”に設定します。
(share以下にwwwフォルダをあらかじめ作っておく。)
そうすると、wwwフォルダ以下に、
勝手にhtdocs/index.phpが作られてましたw
(ちなみに中身は、phpinfo()関数が書かれている。)
さっそく、試しにアクセスしてみる。
ブラウザのURL欄に、”[NASのIP]:81″を打ち込み。[Enter]
おぉ、phpinfo出てきた。
バージョン5.2.10ね。
じゃあ、これでWebサーバ有効になって、
既にPHPも使えるようになったってことだね。
めっちゃ楽じゃんw
○MySQLサーバーの設定
続いて、DBサーバ。
設定画面「ネットワーク」-「MySQLサーバー」タブ
→「設定変更」
で、設定保存。(share/DBはあらかじめ作って置いた)
すると、同じように、
DBフォルダ以下にいろいろファイルとかできてる。
で、設定画面上で「phpMyAdminを開く」押すと、
phpMyadminでDBをいじれるみたい。
(ブラウザ上でDBをいじれるフリーソフト)
phpMyadmin:https://www.phpmyadmin.net/
○MySQLに外部ホストから接続
これがやってみたい。
参考:MySQLに外部ホストから接続できるように設定する
とりあえず、phpMyadminのページで、
DB:testを作る
SQLタブのページで以下を実行。
grant all privileges on test.* to user1@"192.168.11.%" identified by 'password' with grant option;
で、WindowsPC。
コマンドプロンプトから、
mysql -h 192.168.11.4 -u user1 -p Enter password:(パスワードを打ち込む)
ログインできた。
○外部ホストのphpプログラムからMySQLに接続
で、Windows側のApacheから、
NASのDBにアクセス。
参考:
https://www.phpbook.jp/tutorial/mysql/index2.html
https://www.dbonline.jp/phpmyadmin/
まず、DBの準備。
phpMyAdmin使って、
・データベース”phptest”の作成
・テーブル”hanbai”、”shouhin”の作成
・テーブルに要素を挿入
・ユーザー”phpuser”作成(グローバル権限全部付与)
で、WindowsPC側、
WindowsでphpとMySQLの連携で作った、
phpプログラムのコンストラクタのとこ、
‘localhost’→’192.168.11.4’
で、ページ開く。
→OK
○ついで
次に、このphpのプログラムを、
NASのhtdocs/php/mysql以下ににコピーして
開けるかどうか試してみる。
ブラウザで、192.168.11.4:81/php/mysql/main.php
→エラー
ソースを表示すると、
“Class ‘mysqli’ not found”
だって。
mysqliが入っていないっぽい。
入ってないというか、有効になってないのかな?
過去の経験を元に、mysqliを有効に。
WindowsでphpとMySQLの連携
設定画面、[ネットワーク]-[Webサーバ]の画面から、
php.ini内の、”extension=php_mysqli.dll”
の行のコメントアウト外す。→保存
で、もう一回ブラウザで、
192.168.11.4:81/php/mysql/main.php
→このサイトにアクセスできません
phpMyadminのページも開かないので、
多分、81番ポートが動作してないんだな。
再起動してもう一回。
→500 Internal Server Error
なんだろ?
php_mysqli.dllが入ってないとかかな?
ちょっと、extension_dirへの行き方とかもわからないし、
ログとかも見れないので、お手上げだなぁ・・・
とりあえず、php.iniをデフォルトに戻して、
一旦、この件はあきらめます。
API:mysqlだと使えるのかな?
→余裕があればやってみる