31 October 2012

การติดตั้ง PHP + MySQL+ phpMyAdmin เพิ่มใน IIS

การติดตั้งภาษา PHP เพิ่มเติม
(ในที่นี้ทดสอบติดตั้งบน Windows XP SP2)

1. ก่อนอื่นให้ไปดาวน์โหลดตัวติดตั้ง php ได้ที่ http://www.php.net/downloads.php



2. คลิกเลือกดาวน์โหลดตัวติดตั้งแบบ zip package ในที่นี้ทดสอบ PHP เวอร์ชั่น php-5.1.2-Win32.zip

3. ทำการแตกไฟล์ด้วย WinRAR หรือ Winzip จะได้เป็น php-5.1.2-Win32



4. ทำการเปลี่ยนชื่อโฟลเดอร์ php-5.1.2-Win32 เป็น php

5. ทำการคัดลอกโฟลเดอร์ php ไปใส่ไว้ในไดร์ฟ C:\ หรือไดร์ฟอื่นที่ต้องการ



6. ทำการสร้างโฟลเ้ดอร์มา 2 โฟลเดอร์คือ sessiontmp และ uploadtmp
• sessiontmp ไว้สำหรับเก็บ session ชั่วคราวกรณีเราทำการเขียนโดยใช้ตัวแปร session เช่น ระบบ Login
• uploadtmp ไว้สำหรับเป็นที่พักไฟล์ชั่วคราวกรณีเราเขียนโค้ดและมีการส่งหรือแนบไฟล์ไปด้วย



7. ทำการเปลี่ยนชื่อไฟล์์ php.ini-dist เป็น php.ini แล้วคัดลอกไปไว้ในโฟลเดอร์ C:\Windows 
Note.ดาวน์โหลดไฟล์ php.inis-sdist
ดาวน์โหลดไฟล์ php.ini ที่แก้ไขเสร็จแล้ว
(คลิกขวา > save Traget As...)


8. ใช้ Edit Plus หรือ Notepad แก้ไขไฟล์ C:\Windows\php.ini
รายละเอียดที่ต้องแก้ไขมีดังนี้
ก่อนการแก้ไข
หลังการแก้ไข
คำอธิบาย
output_buffering = Offoutput_buffering = 4096Output buffering
   
register_globals = Offregister_globals = onปรับค่าเป็น on
   
magic_quotes_gpc = Onmagic_quotes_gpc = OnMagic quotes for incoming GET/POST/Cookie data.
   
doc_root =doc_root = C:\Inetpub\wwwrootห้องเก็บไฟล์สคริปต์
   
extension_dir = "./"extension_dir = "C:\php\ext"ห้องเก็บไฟล์ส่วนขยายความสามารถ php (extension)
   
; cgi.force_redirect = 1cgi.force_redirect = 0ปรับค่าเป็น 0
   
;upload_tmp_dir =upload_tmp_dir = C:\php\uploadtmpห้อง temp ชั่วคราวสำหรับการอัปโหลด
   
upload_max_filesize = 2Mupload_max_filesize = 10Mขนาดไฟล์สูงสูดที่ให้ user อัปโหลดได้ (สามารถปรับได้ตามความเหมาะสม)
   
;extension=php_gd2.dll
;extension=php_mysql.dll
;extension=php_mssql.dll
extension=php_gd2.dll
extension=php_mysql.dll     
extension=php_mssql.dll     
เพิ่ม extension ตามต้องการโดยการเอาเครื่องหมาย ; ออกphp_gd2.dll (GD Library)
php_mysql.dll 
( MYSQL)
php_mssql.dll ( MS SQL Server)
   
SMTP = localhost
smtp_port = 25; For Win32 only.
sendmail_from = me@example.com
SMTP = localhost
smtp_port = 25
; For Win32 only.
sendmail_from = me@localhost
หรือ
SMTP = mail.yourname.com
smtp_port = 25
; For Win32 only.
sendmail_from = name@yourname.com
รายละเอียด SMTP Server 
   
;session.save_path = "/tmp"session.save_path = "C:\php\sessiontmp"ห้องเก็บไฟล์ session
   

9 . เข้าไปปรับแต่ง IIS เพิ่มเติม โดยเข้าไปคลิกที่แท็บ Home Directory
10 . คลิกปุ่ม Configuration...



11 . คลิกปุ่ม Add แล้วปรับค่าดังนี้
Executable : ทำการ Browse ไปเลือกไฟล์ php-cgi.exe ในโฟลเดอร์ C:\php
Extension : เลือกนามสกุล .php





12 . คลิกที่ปุ่ม OK


แสดงพาทตัวคอมไพล์ภาษา php ที่ถูกเพิ่มเข้ามาแล้ว

13. คลิกที่ปุ่ม OK 2 ครั้ง

14. คลิกปุ่ม Stop และ Start 1 รอบ

 
 
ทดสอบเขียนโค้ดภาษา PHP

1. เปิดโปรแกรม Edit Plus หรือ NotePad แล้วพิมพ์โค้ดดังนี้

test1.php (ดาวน์โหลดไฟล์นี้)
<?php
// Test PHP Script
echo "<center> PHP Hello World <center> <hr> ";
phpinfo();

?>

2. ตั้งชื่อไฟล์ว่า test1.php แล้วบันทึกไว้ในห้อง <drive:\>InetPub\wwwroot

3. เปิดเว็บบราวเซอร์เพื่อทดสอบ โดยพิมพ์ URL ดังนี้ http://localhost\test1.php


ผลลัพธ์ที่ได้จากการรัน

Note.
กรณีต้องการไฟล์ Extension เพิ่มเติมให้ไปดาวน์โหลดที่ไซต์ php.net เช่น Collection of PECL modules for PHP 5.1.2
หลังการดาวน์โหลดมาแล้วให้ทำการแตกไฟล์แล้วคัดลอกไฟล์ *.dll ไปใส่ไว้ในโฟลเดอร์ C:\php\ext 
 
 
 
การติดตั้ง MySQL 

ก่อนอื่นให้ไปดาวน์โหลดตัวติดตั้งได้ที่เว็บไซต์ http://dev.mysql.com/downloads/
(ในที่นี้ทดสอบติดตั้งบน Windows XP SP2)


เว็บไซต์ http://dev.mysql.com/downloads


1. คลิกเลือกตัวติดตั้งแบบ Windows (x86) (เวอร์ชั่นที่ทดสอบเป็น mysql-5.0.18-win32.zip)
*กรณีติดตั้งบน Windows Server 2003 64 bit ก็ให้คลิกเลือกดาวน์โหลดตัวติดตั้งแบบ 64 bit



2. ทำการแตกไฟล์ด้วย Winzip หรือ WinRAR



3. ดับเบิ้ลคลิกเข้าไปในห้องตัวติดตั้ง เสร็จแล้วให้เริ่มติดตั้งโดยการดับเบิ้ลคลิกที่ไฟล์ setup.exe


4. ระบบแสดงข้อความต้อนรับสู่การติดตั้งให้คลิกที่ปุ่ม Next>



5. เลือกรูปแบบการติดตั้งแบบ Custom เสร็จแล้วคลิกที่ปุ่ม Next>



6. คลิกปุ่ม Change เพื่อเปลี่ยนห้องเก็บตัวติดตั้ง MySQL



ให้เปลี่ยน Folder name
จาก
C:\Program Files\MySQL\MySQL Server 5.0\
เป็น
C:\MySQL\MySQL Server 5.0\ 

7. คลิกปุ่ม OK



8. คลิกปุ่ม Next>

9. คลิกปุ่ม Install เพื่อเริ่มติดตั้ง



10. ขณะทำการติดตั้ง MySQL Server



11. คลิกเลือก Skip Sign-up
เสร็จแล้วคลิกปุ่ม Next>



12. คลิกเลือกที่ [ / ] Configure the MySQL Server now เพื่อเข้าสู่การปรับแต่งคอนฟิกเบื้องต้น
เสร็จแล้วคลิกที่ปุ่ม Finish



13. ระบบจะนำเข้าสู่หน้าปรับแต่งค่าคอนฟิก MySQL (MySQL Server Instance Configuration Wizard 1.0.8)
ให้คลิกที่ปุ่ม Next> เพื่อทำงานต่อ



14. คลิกเลือกออปชั่น Standard Configuration
เสร็จแล้วคลิกที่ปุ่ม Next>




15. ที่ Service Name : ให้เลือกเวอร์ชั่น MySQL ที่ใช้งานอยู่ในที่นี้เลือก MySQL5
ให้คลิกเลือกที่ [ / ] Include Bin Directory in Windows PATH
เสร็จแล้วคลิกที่ปุ่ม Next>



18. กำหนดรหัสผ่าน root ที่ต้องการ
New root password : xxxx   < รหัสผ่าน
Confirm : xxxx   < ยืนยันรหัสผ่าน
[ / ] Enable root access from remote machines (กรณีต้องการใช้งาน MySQL จากเครื่องภายนอกแบบ Remote)



19. คลิกปุ่ม Next>

20. คลิกปุ่ม Exceute ระบบจะทำการปรับคอนฟิก เขียนไฟล์ my.ini และ Start Service



21. คลิกปุ่ม Finish
Note.
กรณีที่มีการติดตั้งโปรแกรม MySQL หรือ Web Server Utility อาทิ AppServ, WMServer แล้วถอนโปรแกรมออก (Uninstall) จะต้องเข้าไปลบไฟล์ my.ini ในโฟลเดอร์ C:\Windows ออกก่อน เพราะัอาจทำให้คุณไม่สามารถ Start MySQL ได้

22. ห้องเก็บตัวติดตั้ง MySQL



ไฟล์ / โฟลเดอร์คำอธิบาย
binไฟล์เปิดใช้งาน MySQL เช่น mysqld.exe, mysqldump.exe, mysqlimport.exe, mysqld-nt.exe, mysqlshow.exe, MySQLInstanceConfig.exe
dataห้องเก็บฐานข้อมูล MySQL โดยหลังการติดตั้งระบบจะสร้างฐานข้อมูลมาให้สองตัวคือ
1. mysql < เก็บ user / password, สิทธิการใช้งานของผู้ดูแลฐานข้อมูล
2. test < ไว้สำหรับทดสอบ
Docsเก็บรายละเอียดลิขสิทธิ์ของ MySQL วิธีการติดตั้งอย่างง่าย, และไฟล์ Help (COPYING, INSTALL-BINARY, manual.chm)
shareภาษาที่สามารถสลับตอนใช้ MySQL (english, japanese, danish, polish, russian, portuguese, swedish, spanish, ...)
my.ini
my-huge.ini
my-innodb-heavy-4G.ini
my-medium.ini
my-small.ini
ไฟล์ปรับแต่งฐานข้อมูล MySQL ในที่นี้ใช้ไฟล์ my.ini
# เป็นบรรทัดที่ใส่คำอธิบาย(หมายเหตุ)


  

ปรับแต่งไฟล์ my.ini

ไฟล์ my.ini
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
#
# Installation Instructions
# ----------------------------------------------------------------------
#
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
#
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:\Program Files\MySQL\MySQL Server 4.1). To
# make sure the server reads the config file use the startup option
# "--defaults-file".
#
# To run run the server from the command line, execute this in a
# command line shell, e.g.
# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"
#
# To install the server as a Windows service manually, execute this in a
# command line shell, e.g.
# mysqld --install MySQL41 --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"
#
# And then execute this in a command line shell to start the server, e.g.
# net start MySQL41
#
#
# Guildlines for editing this file
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
#
# More detailed information about the individual options can also be
# found in the manual.
#
#
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]port=3306   # พอร์ต MySQL client ที่ใ้ช้งาน
[mysql]
default-character-set=latin1

# SERVER SECTION

# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306    # พอร์ต MySQL Server ที่ใ้ช้งาน


#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/MySQL/MySQL Server 5.0/"    # ห้องเก็บตัวติดตั้ง
#Path to the database root
datadir="C:/MySQL/MySQL Server 5.0/Data/"    # ห้องเก็บฐานข้อมูล
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1    # ภาษาหลักที่ใช้งาน
# The default storage engine that will be used when create new tables when
default-storage-engine=MYISAM
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"   
# โหมดการใช้งาน

# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=100   # จำนวนเครื่องลูกข่ายที่สามารถเข้าใช้งานได้พร้อมๆ กัน
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=0
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=256
# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=21M

# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before. This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache_size=8
#*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=41M
# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=61M
# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K

# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
sort_buffer_size=256K

#*** INNODB Specific options ***

# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
skip-innodb
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M
# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1
# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=8M
# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=10M
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8

Note.
หลังการติดตั้งระบบจะเซ็ต MySQL ให้อัตโนมัติและทำการเซ็ตฐานข้อมูลโดยใช้ไฟล์ my.ini ให้อัตโนมัติ ซึ่งเพียงขอแล้วสำหรับท่านที่ต้องการแค่ทดสอบระบบบน Windows XP

* กรณีที่ต้องการเปลี่ยนให้รองรับฐานข้อมูลขนาดใหญ่ขึ้นก็สามารถเปลี่ยนแปลงได้โดยการเข้าไปสั่งงานทาง command line โดยใช้คำสั่ง
1. Start > Run > cmd > OK
2. cd  \
3. cd  mysql\my*
4. cd  bin

mysqld --install MySQL--defaults-file="C:\MySQL\MySQL Server 5.0\my-large.ini"


5. สั่ง Start Service ทาง Command line
net start MySQL5

23. ทดสอบเข้าใช้งานฐานข้อมูล MySQL
Start > Programs > MySQL > MySQL Server 5.0 > MySQL Command Line Client



24.ทำการป้อนรหัสผ่าน   แล้วกดปุ่ม Enter
ระบบจะนำเข้าสู่ Prompt ใช้งานโปรแกรม MySQL เป็น mysql>



25. คำสั่ง MySQL พื้นฐาน
คำสั่งคำอธิบาย
้help หรือ ?ขอความช่วยเหลือ
statusดูสถานะโปรแกรม MySQL
quitออกจากโปรแกรม mysql
show databases;แสดงฐานข้อมูลทั้งหมด
use mysql;
use db1;
เลือกใช้งานฐาน้ขอมูลชื่อ mysql
เลือกใช้งานฐานข้อมูลชื่อ db1
show tables;แสดงชื่อตารางข้อมูล
select host,user,password from user;แสดงชื่อ host, user, password จากตาราง user
 
 
การบริหารฐานข้อมูล MySQL ออนไลน์ด้วย phpMyAdmin

phpMyAdmin เป็นเป็นโปรแกรมที่พัฒนามาจากภาษา PHP ลักษณะสคริปต์ ใช้ในการบริหารฐานข้อมูลออนไลน์ผ่านทางหน้าเว็บไซต์ โดยทั่วไปท่านที่ใช้บริการ Hosting อยู่จะมีโปรแกรมนี้ใช้งานอยู่แล้ว ส่วนท่านที่ติดตั้ง PHP และ MySQL เองจำเป็นติดตั้งโปรแรมตัวนี้ด้วยตนเอง

ขั้นตอน1. ก่อนอื่นให้ไปดาวน์โหลดโปรแกรมได้ที่ http://www.phpmyadmin.net


เว็บไซต์ www.phpmyadmin.net


เวอร์ชั่นที่ทดสอบเป็น phpMyAdmin-2.7.0-pl2.zip

2. ทำการแตกไฟล์ด้วย WinRAR หรือ Winzip

3. เข้าไปในโฟลเดอร์ที่แตกมา ให้ทำการเปลี่ยนชื่อโฟลเดอร์
จาก phpMyAdmin-2.7.0-pl2.zip เป็น phpMyAdmin
>>


4. คัดลอกโฟลเดอร์ phpMyAdmin ไปไว้ในห้องเก็บเว็บไซต์ C:\Inetpub\wwwroot\




5. เข้าไปในโฟลเดอร์  C:\Inetpub\wwwroot\phpMyAdmin 



6 ใช้ Editor ใดๆ (อาจใช้ EditPlus หรือ Notepad) เข้าไปแก้ไขไฟล์ config.default.php

เปลี่ยนจาก (อยู่ประมาณบรรทัด 71)
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed
// with 'config' auth_type)
เป็น
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'รหัสผ่านมายเอสคิวแอล'; // MySQL password (only needed
// with 'config' auth_type)


7 . ทดสอบเข้าใช้งาน
http://localhost/phpMyAdmin/
หรือ
http://192.168.1.8/phpMyAdmin/


หน้าตาโปรแกรม phpMyAdmin

กรณีต้องการเปลี่ยนรายละเอียดเป็นภาษาไทย ให้คลิกภาษาที่ Language เป็น Thai (th-utf-8)


หน้าตาโปรแกรม phpMyAdmin ภาษาไทย

--------------------------------------------------------------------------
credit 
http://www.cmsthailand.com/docs/iis_php_mysql_phpmyadmin.html
--------------------------------------------------------------------------

No comments:

Post a Comment