販売仕入在庫管理システム (データベース) 実習 Windows XP バージョン MySQL, Apache, PHPのインストール 販売仕入在庫管理システムの インストール 2007年10月26日 2007/10/26 販売仕入在庫管理システム実習
使用するオープンソフトウェアのバージョン MySQL:4.1.21 Apache:2.0.55 PHP:5.0.5 準備 もって回るUSBメモリをC直下にすべてコピー MySQL5.0.15も入っているが、今日は使用しない 2007/10/26 販売仕入在庫管理システム実習
まずはコマンドプロンプトで使用できるようにする 次にWebアプリケーションとして、PHPと連携して動くようにする 1.MySQLのインストール まずはコマンドプロンプトで使用できるようにする 次にWebアプリケーションとして、PHPと連携して動くようにする アプリケーションとして、販売仕入在庫管理システムを構築する(復元する) 2007/10/26 販売仕入在庫管理システム実習
1.1.MySQLのバージョン 4.1.21 2007/10/26 販売仕入在庫管理システム実習
「コントロールパネル」、「プログラムの追加削除」、「MySQLの削除」、「残っているMySQL関連フォルダの削除」 アンインストール 既にインストールしていれば、アンインストール(バージョンに注意、うまくいかないケースがある、4.1.12から4.1.21はOK、4.0.13から4.1.12はうまくいかない) サービスの停止 「コントロールパネル」、「プログラムの追加削除」、「MySQLの削除」、「残っているMySQL関連フォルダの削除」 再起動 2007/10/26 販売仕入在庫管理システム実習
1.3.MySQLのインストール MySQL4.1.21フォルダの中のsetup.exeを実行する Configuration Typical Skip (コミュニティへのサインアップ) Configuration Detail Configuration Developer Machine Multifunctional Database InnoDB Tablespace Setiing (Next) Decision Support(DSS)/OLAP TCP/IP Manual Selecte Default Character Set / Collation sjis (文字セット) Include Bin Directory in Windows Path (コマンドプロンプトからの使用) パスワード “secret” Finish 2007/10/26 販売仕入在庫管理システム実習
1.3.MySQLのインストール 再起動 MySQLの確認 コマンドプロンプトでmysqlを実行 mysql –u root –p Enterpassword secret(root用に設定したパスワード) 復元するdatabaseをcreateしておく(後で使用) create database whdbprotected; 2007/10/26 販売仕入在庫管理システム実習
1.4.MySQLの実行(コマンドプロンプト) コマンドプロンプトを実行 MySQLを実行(データベースユーザはrootのみ) mysql –u root – p Enter password: secret と入れる どのようなデータベースが存在するか調べる show databases; セミコロンに注意 ダンプデータを復元する場合には、「1.7.2 復元」へ データベースの作成 create database whdbprotected; use database whdbprotected; テーブルの作成 product, customer, provide, provider, inventory, rsvtable, warehouse, selorder, seldtl, buyorder, buydtl, 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(1) productテーブルの作成 create table product( prdid char(10) primary key, category1 char(20), category2 char(20), category3 char(20), maker char(20), prdname char(20), model char(20), regdate date, deldate date, comment char(40)); テーブルの確認 show columns from product; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(2) providerテーブルの作成 create table provider( pvrid char(2) primary key, pvrname char(20), tel char(20), fax char(20), email char(20), person char(20), regdate date, deldate date, comment char(40)); テーブルの確認 show columns from provider; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(3) provideテーブルの作成 create table provide( prvid char(12) primary key, prdid char(20), pvrid char(2), price int(10), regdate date, deldate date, comment char(40)); テーブルの確認 show columns from provide; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(4) inventoryテーブルの作成 create table inventory( invid char(2) primary key, pvrid char(10), whsid char(2), rstockno int(10), lstockno int(10), regdate date, deldate date, comment char(40)); テーブルの確認 show columns from inventory; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(5) warehouseテーブルの作成 create table warehouse( whsid char(2) primary key, whsname char(20), tel char(20), fax char(20), email char(20), person char(20), regdate date, deldate date, comment char(40)); テーブルの確認 show columns from warehouse; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(6) rsvtableテーブルの作成 create table rsvtable( rsvid smallint(5) unsigned primary key auto_increment, prdid char(20), whsid char(2), noi int(10), regdate date, comment char(40)); テーブルの確認 show columns from rsvtable; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(7) buyorderテーブルの作成 create table buyorder( buyid int(10) primary key auto_increment, pvrid char(2), totalprice int(10), buystate tinyint(2) unsigned< regdate date, buydate date, buypaydate date, buypaiddate date, shipdate date, shippeddate date, delivdate date, deliveddate date, paytype tinyint(2) unsigned, comment char(40)); テーブルの確認 show columns from buyorder; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(8) buydtlテーブルの作成 create table buydtl( buydtlid int(10), buyid char(10), buydtlstate tinyint(2) unsigned, prdid char(20), noi int(10), unitprice int(10), lineprice int(10), whsid char(2), テーブルの確認 show columns from buydtl; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(9) customerテーブルの作成 create table customer( cstid varchar(10) primary, cstname varchar(20), president varchar(20), zipcode varchar(10), address varchar(60), tel varchar(20), fax varchar(20), email varchar(40), cstdep varchar(20), cstperson varchar(20), ourdep varchar(20), ourperson varchar(20), paytype tinyint(2) unsigned, closeday tinyint(2) unsigned, cststate tinyint(2) unsigned, regdate date, deldate date, comment char(40)); テーブルの確認 show columns from customer; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(10) selorderテーブルの作成 create table selorder( selid int(10) primary key auto_increment, cstid char(10), totalprice int(10), selstate tinyint(2) unsigned, selname char(20), regdate date, seldate date, selpaydate date, selpaiddate date, shipdate date, shippeddate date, delivdate date, deliveddate date, paytype tinyint(2) unsigned, comment char(40)); テーブルの確認 show columns from selorder; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(11) seldtlテーブルの作成 create table seldtl( seldtlid int(10) primary key auto_increment, selid int(10), prdid char(20), noi int(10), unitprice int(10), lineprice int(10), comment char(40)); テーブルの確認 show columns from seldtl; 2007/10/26 販売仕入在庫管理システム実習
1.5.テーブルの作成(12) テーブルの一覧確認 use whdbprotected; show tables; 2007/10/26 販売仕入在庫管理システム実習
1.6.データの入力(1) 方法1 insert into product set prdid=‘10100’, category1=‘PC’, category2=‘SubNotePC’, category3=‘Driveless’, maker=‘Lenovo’, prdname=‘ThinkPad_X41’, model=‘2525-5AJ’ ; 2007/10/26 販売仕入在庫管理システム実習
1.6.データの入力(2) 方法2(1つのタプルの追加) insert into product (prdid, category1, category2, category3, maker, prdname, model) values (‘10100’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’, ‘ThinkPad_X41’, ‘2525-5AJ’) ; 方法2(複数タプルの追加) insert into product (prdid, category1, category2, category3, maker, prdname, model) values (‘10200’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’, ‘ThinkPad_X32’, ‘2672-M8J’), (‘10300’, ‘PC’, ‘SubNotePC’, ‘Driveless’, ‘Lenovo’, ‘ThinkPad_X32’, ‘2672-MUJ’), ; 2007/10/26 販売仕入在庫管理システム実習
1.7.データの復元と保存 USBメモリ →保存フォルダ(DatabaseEngineeringxxxxxx) →dataを復元する C:\DatabaseEngineeringxxxxxx\warehousedata から C:\Program Files\MYSQL\data へコピー ただし、MySQLサービスをとめておくこと コピー後、MySQLサービスを再起動 dataを保存 C:\MYSQL\data から C:\DatabaseEngineeringxxxxxx\warehousedata へコピー 上記の方法はうまくいく場合といかない場合があるので、mysqldumpを使用することを推奨(特にOSがLinuxの場合) 2007/10/26 販売仕入在庫管理システム実習
1.7.1 データの保存 保存 mysqldumpを使用する(特にOSがLinuxの場合)場合の保存方法 Windowsの場合のmysqldumpが格納されているディレクトリを指定する (PATHが設定されていれば、不要ゆえ、そのままやってみるのもよい) ユーザがrootでパスワードがsecretの場合 (cd c:\Program Files\MySQL\MySQL Server 4.1\bin) mysqldump –u root – – password=”secret” データベース名 > ダンプ先ファイル名(例 dbdump.txt) パスワードの指定は必ず”で囲む。(’ではだめ)、 ファイル名の後に;をつけない。 例: mysqlのwhdbprotectedデータベースをwhdbprotected2007xxxx.txt に保存する場合 ユーザがrootでパスワードがsecretの場合 (cd c:\Program Files\MySQL\MySQL Server 4.1\bin) mysqldump –u root – – password=”secret” whdbprotected > whdbprotected2007xxxx.txt 保存した日付を入れておく(例 whdbprotected20070220 )と便利 2007/10/26 販売仕入在庫管理システム実習
1.7.2 データの復元 準備 復元すべきデータベース(例whdbprotected)をDROPしてCREATEしておく、ユーザがrootで、パスワードがsecretの場合 mysql –u root –p EnterPassword:secret drop database whdbprotected; create database whdbprotected; 復元(ダンプデータがある場合) コマンドプロンプトのカレントディレクトリの下(またはディレクトリを指定 C:\)に前記のdbdump.txt(例 whdbprotectedxxxxxx.txt)をコピー mysql –u root –p データベース名 < dbdump.txt Enter Password:secret パスワードがsecretの場合 例1 mysql –u root –p whdbprotected < whdbprotectedxxxxxx.txt Enter Password:secret パスワードがsecretの場合 例2 mysql –u root –p whdbprotected < C:\whdbprotectedxxxxxx.txt Enter Password:secret パスワードがsecretの場合 2007/10/26 販売仕入在庫管理システム実習
mysql –u root –p Enter password:secret 1.7.3 DBユーザの登録 前記の復元はwhdbprotectedの復元のみであり、DBユーザを登録する必要がある。 ログイン時に指定する。 DB名: whdbprotected DBユーザ名:dbuser01 パスワード:dbuser01 mysql –u root –p Enter password:secret grant all on whdbprotected.* to dbuser01@localhost identified by ’dbuser01’; 2007/10/26 販売仕入在庫管理システム実習
1.8.データの取り出し Select文 select * from product where prdid=‘10200’; select prdid, category1, prdname from product; 2007/10/26 販売仕入在庫管理システム実習
1.9.データベース、テーブルの削除 データベースの削除 drop database whdbprotected; テーブルの削除 use whdbprotected; drop table product; 2007/10/26 販売仕入在庫管理システム実習
1.10.テーブルの変更(属性の追加、削除) 属性名の変更 ALTER TABLE テーブル名 CHANGE 現在のカラム名 新カラム名 データ型; 属性の追加 ALTER TABLE テーブル名 ADD カラム名 データ型 FIRST; ALTER TABLE テーブル名 ADD カラム名 データ型 AFTER カラム名; 属性の削除 ALTER TABLE テーブル名 DROP カラム名; 2007/10/26 販売仕入在庫管理システム実習
2.Apacheのバージョン ApacheはWebサーバである 2007/10/26 販売仕入在庫管理システム実習
2.0.55 古いバージョンのアンインストール フォルダも削除 2.1.Apacheのバージョン 2007/10/26 販売仕入在庫管理システム実習
2.2.Apacheのインストール インストール手順 インストール用のファイルを準備(適当なフォルダに) apache_2.0.55-win32-x86-no_ssl.msiをダブルクリック 「Next」 「 I accept the terms in the license agreement」選択 Network Domain [localhost] Server Name [localhost] Administrator’s Email Address [webmaster@example.com] 架空のもの ◎for All Users, on Port 80,……. Setup Type [Typical] Next インストール先:デフォルト Next C:\Program Files\Apache Group\Apache2 Install ………. Finish 2007/10/26 販売仕入在庫管理システム実習
インストール手順 2.2.Apacheのインストール 確認方法 http://localhost/ または(LANが接続されている場合には) http:// IPアドレス でデフォルトの画面表示 C:\Program Files\Apache Group\Apache2\htdocs Index.html.ja.iso2022-jp 2007/10/26 販売仕入在庫管理システム実習
PHPはWebアプリケーション向けのプログラミング言語 conf関係設定のため、準備としてTeraPad(テキストエディタ テラパッド)をインストール USBメモリにtpad089aフォルダあり、 その中のTeraPad.exeをデスクトップにコピー 2007/10/26 販売仕入在庫管理システム実習
3.1.PHPのバージョン 5.0.5 2007/10/26 販売仕入在庫管理システム実習
3.2.PHPのインストール インストール手順 php.iniファイルの内容変更(修正済みのphp.iniあり、それをコピー) ファイルの取得、適当なフォルダに php-5.0.5-Win32.zip ダブルクリックにより解凍(既に解凍済み、フォルダ名:“phpインストール”) できたフォルダをCの直下に移動し、フォルダ名をphpに変更する フォルダができない場合には、C直下にphpフォルダを作成し、解凍した中身を全部phpフォルダに移動する dllをコピーする C:\php\php5ts.dll→C:\WINDOWS\system32 dllをコピーする C:\php\libmysql.dll→C:\WINDOWS php.iniファイルの作成 C:\php\php-ini-dist→ C:\WINDOWSにコピーし、 名前をphp.iniに変更する php.iniファイルの内容変更(修正済みのphp.iniあり、それをコピー) ;をはずす、インクルードパス 443行 ;include_path= ”.;c:\php\includes” ドキュメントルートへのパスを設定 450行 doc_root=”C:\Program Files\Apache Group\Apahce2\htdocs” ;をはずす、mysqlを使うに設定 587行 extention=php_mysql.dll 2007/10/26 販売仕入在庫管理システム実習
3.2.PHPのインストール php.iniファイルの内容変更(前ページからの続き) 拡張モジュールへのパスを設定 458行 extention_dir=”C:\php\ext” ;をはずすmbstring 563行 extention=php_mbstring.dll 101行(旧 Off) output_buffering = On 429行 (旧 iso-8859-1) default_charset = ”Shift_JIS” 1115行 mbstring.language = Japanese 1120行 (旧 EUC-JP) mbstirng.internal_encoding = SJIS 1123行 mbstring.http_input = auto 1127行 mbstring.http_output = SJIS 1134行(旧 Off) mbstring.encoding_translation = On 1138行 mbstring.detect_order = auto 1142行 mbstring.substitute_character = none; 2007/10/26 販売仕入在庫管理システム実習
httpd.confファイルの内容変更(修正済みのhttpd.confあり、それをコピーする) 3.3.PHP、Apacheの連携設定 httpd.confファイルの内容変更(修正済みのhttpd.confあり、それをコピーする) C:\Program Files\Apache Group\Apache2\conf ディレクトリ httpd.conf ファイル 最後に (956行以降に) LoadModule php5_module c:/php/php5apache2.dll (区切りは \ ではなく、ここは / であることに注意) AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps を追加 2007/10/26 販売仕入在庫管理システム実習
ドキュメントルートにphpフォルダを追加 C:\Program Files\Apache Group\Apache2\htdocs \php phpフォルダに次のプログラムを作成 ファイル名 test.php <?php phpinfo(); ?> 再起動 ブラウザから http://localhost/php/test.php 2007/10/26 販売仕入在庫管理システム実習
4.販売仕入在庫管理システム アプリケーションプログラムのインストール ドキュメントルートにSPIMDesignedフォルダを追加(ここでDesignedと名付けた意味はスタイルシートを使用するバージョンであることを意味している) C:\Program Files\Apache Group\Apache2\htdocs \SPIMDesigned USBメモリから復元 DatabaseEngineering2007xxxxフォルダの中にある SPIMDesigned2007xxxxフォルダの中の全てのプログラムを 上記SPIMDesignedフォルダの中にコピーする 確認 http://localhost/SPIMDesigned/login.html を起動 2007/10/26 販売仕入在庫管理システム実習
4.販売仕入在庫管理システム アプリケーションプログラムのインストール クッキーを使えるようにする(2007/10/11追加) php.ini(USBの中のphp.ini は修正済み) 888行 session.save_path=“c:/Windows/temp 2007/10/26 販売仕入在庫管理システム実習
参考書籍 Spencer K Ogawa 「MySQL/PHP5によるWebデータベース構築」 秀和システム,2005 星野努 「PHP5.0+MySQL5.0で構築する最速Webシステム」 技術評論社,2006 2007/10/26 販売仕入在庫管理システム実習