Apr 22, 2010

How to install PHP 5.1.6 (win32) + Apache 2.0.59 (win32) + MySql 5.0.22 (win32) + CodeIgniter 1.7.2

โดยปกติ ถ้าเราต้องการติดตั้งให้ มี Server ที่สามารถใช้รันภาษา PHP บนเครื่องได้ โดยทั่วไปนั้น

สามารถใช้ Appserv ซึ่งเป็นโปรแกรมสำเร็จรูป เมื่อลงเสร็จเรียบร้อย จะมีการ config มาให้ครบเสร็จสรรพ

ตั้งแต่ Server PHP จนกระทั่งฐานข้อมูล และตัวบริหารจัดการเล็กๆ อย่าง PhpMyAdmin

แต่บทความนี้จะพาท่านมาติดตั้งแบบแยก ทีละตัว เพื่อแก้ไขปรับแต่งในอนา่คตได้ง่ายขึ้น
---------------------------

ซอฟต์แวร์ ที่จำเป็นต้องใช้ และดิ้นรนหามาจากอินเตอร์เน็ตได้ง่ายๆ เนื่องจากเป็น open source

1. php-5.1.6-Win32.zip
2. apache_2.0.59-win32-x86-no_ssl.msi
3. mysql-5.0.22-win32
4. CodeIgniter_1.7.2

หมายเหตุ: หากต้องการใช้งานร่วมกันกับ Java หรือ jasperReport ให้ลงเวอร์ชั่นให้ตรงตามนี้

--------------------------

วิธีการติดตั้ง

1. ติดตั้ง apache_2.0.59-win32-x86-no_ssl.msi

2. ทำการ stop service apache

2.1 วิธีการ stop service apache ก็คือให้ไปที่ Control Panel => Administrative Tools => Services

2.2 เลือกจาก รายการ service ซึ่งจะชื่อว่า Apache2 คลิก และเลือก Stop

3. แก้ไข config ของ apache

3.1 วิธีการแก้ไข config ของ apache คือ เข้าไปที่ C:\Program Files\Apache Group\Apache2\conf

3.2 แก้ไขไฟล์ httpd.conf อาจจะแทนที่ของเดิมหรือ เพิ่มเข้าไปใหม่ตามโค๊ดด้านล่าง

---------------------------------------
DocumentRoot "C:/www"

<Directory "C:/www">
Options FollowSymLinks
AllowOverride FileInfo
</Directory>

<Directory "C:/www">

Options Indexes Includes FollowSymLinks MultiViews

DirectoryIndex index.html index.php index.html.var

LoadModule rewrite_module modules/mod_rewrite.so

<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

ScriptAlias /php/ "C:/PHP/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

<VirtualHost *>
ServerName localhost
DocumentRoot C:/www
<Directory C:/www>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</Directory>
</VirtualHost>

---------------------------------------

4. นำ php-5.1.6-Win32.zip ซึ่งถูกบีบอัด แตกไฟล์ออกมาวางไว้ที่ C:\PHP (ซึ่ง Folder PHP นี้ต้องสร้างขึ้นมาเอง)

5. เปลี่ยนชื่อไฟล์ php.ini-dist ให้เป็น php.ini แก้ไขไฟล์ตามด้านล่างแล้วนำไปวางที่ C:\windows

---------------------------------------------
extension_dir = "c:\PHP\ext"

extension=php_curl.dll

extension=php_mysql.dll
---------------------------------------------

6. ติดตั้ง MySQL และทำการ stop service

---------------------------------------------
MySQL Config
Username :: root
Password :: password
---------------------------------------------

7. คัดลอกไฟล์(ผมโหลดจากอินเตอร์เน็ต) "libmysql.dll" และ "libeay32.dll" ไปไว้ที่ C:\windows\system32\

8. แก้ไขไฟล์ my.cnf หรือ my.ini

---------------------------------------------
[mysql]
default-character-set=tis620

[mysqld]
skip-character-set-client-handshake
default-character-set=tis620
init_connect='SET collation_connection = tis620_thai_ci'
init_connect='SET character_set_results=tis620'
init_connect='SET NAMES tis620'

# created and no character set is defined
default-character-set=tis620

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
---------------------------------------------

9. สร้าง Folder C:\www

10. เขียนไฟล์ใหม่ขึ้นมา ชื่อ index.php โดยในไฟล์เขียนดังนี้ โดยบันทึกไว้เป็น C:\www\index.php

------------------------
<?php
phpinfo();
?>
------------------------

11. ทำการ start service Apache และ MySQL โดยทำวิธีเดียวกับการ stop service แต่ให้ start service แทน

12. ทดสอบ บน IE ว่าใช้ได้ไหมโดยพิมพ์ http://localhost/

13. หากมีข้อมูล phpinfo ขึ้นมา แสดงว่า ทำงานได้แล้ว ก่อนทำขั้นตอนต่อไปให้ลบไฟล์ C:\www\index.php ออกก่อน

14. ติดตั้ง CodeIgniter_1.7.2 โดยนำไฟล์ภายใน Folder ทุกไฟล์ไปวางที่ C:\www

15. เข้าไปแก้ไขข้อมูลที่กำหนดค่าฐานข้อมูลที่

---------------------------------------------
C:\www\system\application\config\database.php

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "password";
$db['default']['database'] = "database1";
$db['default']['dbdriver'] = "mysql";
---------------------------------------------

16. เนื่องจากเราอ้างไปยัง ฐานข้อมูลชื่อว่า "database1" แต่เรายังไม่ได้สร้างขึ้นจริง
จึงจำเป็นต้องเข้าไปสร้างใน MySQL

16.1 ไปที่ Start -> Run พิมพ์ cmd

16.2 เข้าระบบฐานข้อมูล

---------------------------------------------
mysql -u root -p (ทำการ Enter แล้วพิมพ์รหัสผ่านแล้ว Enter อีกครั้งจะเข้าระบบได้)
---------------------------------------------

16.3 พิมพ์คำสั่งสร้างฐานข้อมูล แล้วก็ออกจากระบบ

---------------------------------------------
mysql<create database database1;
exit (ออกจาก MySQL)
exit (ออกจาก cmd)
---------------------------------------------

16.4 สร้างไฟล์ .htaccess โดยมีข้อมูลตามด้านล่าง แล้ววางไว้ที่ C:\www

---------------------------------------------
RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteCond $1 !^(index\.php|images|css|js|video_files|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
---------------------------------------------

17. น่าจะใช้งาน Codeigniter ได้่แล้ว

อ้่างอิงจาก
http://www.dwdev.dwthai.com/setup/apache_php.htm

Aug 20, 2009

PHP/JAVA Bridge Error!

จากหัวข้อก่อนหน้านี้ซึ่งเกี่ยวข้องกับการนำ PHP กับ JAVA มาทำงานร่วมกัน

----

PHP Warning: PHP Startup: java: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=1
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
in Unknown on line 0

----

นี่คือ Error ที่เกิดจากการ ทำงาน ของ php_java.dll กับ php ซึ่งไม่รองรับกัน

วิธีแก้ก็คือ ต้อง หา php_java.dll ตัวเวอร์ชั่นที่รองรับมา ใช้แทน

Aug 18, 2009

Linux command mysql export and import data.

Basic command for import and export database

Telnet to database server.
-> telnet 192.168.0.2

Use MySQL
->mysql -uadmin -p1234
mysql>create database dbMember;

Export data

->mysqldump -uadmin -p1234 dbMember > dbMember.sql

If export data select table
->mysqldump -uadmin -p1234 dbMember tblMember > tblMember.sql

Import data
->mysql -uadmin -p1234 dbMember < dbMember.sql

If import data select table

->mysql -uadmin -p1234 dbMember tblMember < tblMember.sql

Jul 4, 2009

Forward Port of Huawei SmartAX MT880

วิธีการในเบื้องต้น

ต้องทราบก่อนนะครับว่าระบบเราเป็นอย่างไร

ของผมนั้น เป็น Huawei SmartAX MT880 จาก TT&T

อยากให้กำหนดไว้ตามนี้นะครับ



จากรูป คลิกที่ Properties



จากรูป คลิกที่รายการ TCP/IP จาก List แล้วจึงคลิกที่ Properties และ ให้กำหนดตามนี้



จากนั้น เปิดหน้าต่างเพื่อทำการ config อุปกรณ์ ที่ 192.168.1.1 โดยที่

Username:: admin

Password :: TTT



จะแสดงหน้าจอแบบด้านบน



คลิกที่ BASIC => NAT => Redirect => คลิก New



จากภาพส่วนนี้จะกำหนด TCP กำหนดได้ตามภาพแล้ว คลิก Submit



จากภาพส่วนนี้จะกำหนด UDP กำหนดได้ตามภาพแล้ว คลิก Submit

แล้วจึงไปคลิกที่ Advanced => IP Filter

และ Security Level จะต้องปรับ Status เป็น Low และทำการคลิก Submit




คลิกที่ Tools => Save & Reboot => Save => Submit

รอสักครู่ จนเข้าสู่หน้าตาปกติ

แล้วจึงคลิกที่ Tools => Save & Reboot => Reboot => Submit



ระบบจะทำการตั้งค่าให้ใหม่

หากยังไม่มั่นใจ ให้ปิด Router และ Restart คอมพิวเตอร์อีกครั้ง

แล้วจึงทดสอบ โหลด Bit Torrent ด้วย Port 14833

ซึ่ง Connection เป็น Yes และสามารถเล่นเกม DOTA ผ่าน Internet ได้แล้ว


แหล่งอ้างอิง

http://www.siamplugin.com/forums/lofiversion/index.php/t301.html

Nov 27, 2008

อยู่ใน A แต่ไม่อยู่ใน B

ในระบบฐานข้่อมูลอย่าง mySQL มีหลายคำสั่งที่จะช่วยให้งานของเราง่ายขึ้น

อย่างคำสั่ง UNION ซึ่งนำการค้นข้อมูลจากหลายๆ คำค้นมาต่อเชื่อมกันเป็นตารางเดียว

คำสั่งนี้ บางคนอาจจะยังไม่ทราบ ผมขอเขียนตัวอย่างให้ดูสั้นๆ ล่ะกัน

(Query1) UNION (Query2)

โอ้ววว สั้นจริงๆ แฮะๆ

ผลลัพธ์ที่จะได้จากคำสั่งเมื่อกี้คือ

แถวที่เกิดขึ้นจะเกิดจาก ข้อมูลทั้งสองต่อเรียงกัน



เอาล่ะ สืบต่อจากหัวข้อก็คือ

ถ้าเราต้องการข้อมูลที่อยู่ในตารางที่หนึ่ง แต่ไม่อยู่ในตารางที่สอง

จะเขียนคำสั่งอย่างไรดี???

ก่อนหน้านี้ ผู้เขียนประสบปัญหาจากข้อมูลที่มีจำนวนมาก

ตัดสินใจไม่ได้สักที ว่าจะเริ่มคัดกรองอย่างไร

จนมาจบลงที่ ขั้นตอนง่ายๆ ของเรื่อง SUBSET


มาดูลักษณะคำสั่งที่ใช้กัน

- อยู่ทั้งใน A และ B

SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE a.id IS NOT NULL or b.aid IS NOT NULL;

- อยู่ใน A แต่ไม่อยู่ ใน B

SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE b.aid IS NULL;


ลองไปใช้ดูนะครับ

ลิงค์อ่านเพิ่มเติมนะครับ :: Link1

Blog Comment

บทความที่ได้รับความนิยม