Powered By Blogger

16 September 2014

Apache Web Server : การซ่อนไฟล์บางไฟล์จาก Web Folder ด้วย .htaccess


ป้องกัน ไม่ให้แสดง file *.php และ รูปภาพบางอย่าง 











จะแสดงทั้งข้อมูล ใน Folder ทั้งหมด ยกเว้น File นามสกุล .gif , .png และ .php 
ส่วนไฟล์อื่นๆเช่น  file .txt จะแสดงรายการไว้  

(แม้ไม่แสดงชื่อไฟล์แต่จะยังเข้าถึงไฟล์นี้ผ่าน url ได้อยู่ นะครับ )


ตัวอย่างเช่นสร้าง File ดังนี้  ใน Folder 













จะเห็น   ใน Browser ดังนี้



















นั่นคือ จะเห็นได้ว่า  Web Sever จะแสดงเฉพาะไฟล์ที่ไม่อยู่ในรายการ
โดย ไฟล์ .htaccess จะอยู่เพียง ใน Folder myinfo
แล้ว Folder  myinfo\folder1 จะ สืบทอดการตั้งค่าแสดงผลของ .htaccess มาด้วย

ดังนั้นทั้ง 2 folder จะเห็นเพียง file .txt เท่านั้นทั้งๆที่มีทั้ง ไฟล์ .txt และ .php

แต่นี่ไม่ใช่การป้องกันการเข้าถึงไฟล์ a1.php นะครับ  ยังสามารถเรียกใช้ได้ตามปกติ 
เพียงแค่ไม่ให้แสดงใน Index เท่านั้น 



11 August 2012

start Apache Tomcat แบบง่ายๆ

หนังสือหลายๆเล่ม สอนมากมายเกี่ยวกับวิธี
ถูกบ้างผิดบ้าง แล้วก็รันไม่ได้ บ้าง


มาลองดูวิธีง่ายๆกัน กับ Tomcat5.5 ที่ผมค้นพบ
วิธีนี้สำหรับ  Windows ครับ
แล้ววิธีนี้ก็ใช้ในกรณีที่เราไม่ได้ ติดตั้ง Tomcat  เป็น Service
เพียงแค่ Download Tomcat มาแล้วแตกไฟล์ไว้ที่เครื่องของเราเอง

ตัิวอย่างประมาณนี้ครับ


D:\tomcat55\bin>set JAVA_HOME=c:\Program Files\Java\jdk1.7.0_03

D:\tomcat55\bin>version.bat
Using CATALINA_BASE:   D:\tomcat55
Using CATALINA_HOME:   D:\tomcat55
Using CATALINA_TMPDIR: D:\tomcat55\temp
Using JRE_HOME:        c:\Program Files\Java\jdk1.7.0_03
Using CLASSPATH:       D:\tomcat55\bin\bootstrap.jar
Server version: Apache Tomcat/5.5.35
Server built:   Jan 6 2012 11:20:07
Server number:  5.5.35.0
OS Name:        Windows XP
OS Version:     5.1
Architecture:   x86
JVM Version:    1.7.0_03-b05
JVM Vendor:     Oracle Corporation
D:\tomcat55\bin>startup.bat
Using CATALINA_BASE:   D:\tomcat55
Using CATALINA_HOME:   D:\tomcat55
Using CATALINA_TMPDIR: D:\tomcat55\temp
Using JRE_HOME:        c:\Program Files\Java\jdk1.7.0_03
Using CLASSPATH:       D:\tomcat55\bin\bootstrap.jar
D:\tomcat55\bin>

สรุปง่ายๆคือ  set java_home ก่อน แล้วตามด้วย version.bat แล้วตามด้วย startup.bat  เป็นอันจบ
หลังจากนั้น ระบบจะเปิด หน้าจอ console สีดำๆึขึ้นมาใหม่อีกหน้าจอ รอรับ sequest
และทำหน้าที่เป็น server รอรับ HTTP Request ที่ port มาตรฐานของ Tomcat คือ  8080 ครับ
นั่นก็คือที่  http://localhost:8080/

  


ลบข้อมูลบรรทัดว่าง ด้วย autoIT

สร้างและ run script สำหรับ ลบ บรรทัดว่าง
เช่นข้อมูล บน notepad

A B C

D E F

G H I

๋๋J K L

จะมีบรรทัดว่างอยู่
ให้เปิด autoITv3 Editor ขึ้นมา พิมพ์ดังนี้


Send("!{TAB}") ; ALT-TAB
local $i
for $i = 1 to 3
   Send("{DEL}")
   Send("{DOWN}")
Next

แล้วสวิชกลับไปที่  notepad เอาเมาส์คลิกให้ cursor อยู่ที่่บรรทัดว่างใต้ตัว A เหนือตัว D
แล้ว กด ALT-TAB เพื่อสวิชกลับไปที่ autoIT
แล้วกด ปุ่ม F5

ซึ่งมันจะทำงานดังนี้ คือ
สวิชกลับไปที่  notepad
ลบบรรทัดว่าง ระหว่าง A กับ D  ผลคือ cursor อยู่ที่ D
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง  D กับ G

ลบบรรทัดว่าง ระหว่าง D กับ G  ผลคือ cursor อยู่ที่ G
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง  G กับ J

ลบบรรทัดว่าง ระหว่าง G กับ J  ผลคือ cursor อยู่ที่ J


ผลลัพธ์ คือ

A B C
D E F
G H I
๋๋J K L



===  ใช้งานด้วยความระมัดระวังนะครับ ===
===  การรันโปรแกรม ควบคุม keyboard/mouse แบบนี้  ===
===  อาจทำให้เครื่องคุณ โดนลบข้อมูล ไฟล์เสียหาย  ===
===  หรือหนักกว่านั้นได้เลย  เช่นต้อง Format เครื่องใหม่ === 


ดึงข้อมูล HTTP ด้วย ภาษา Scala และ Library Java

การ ดึงข้อมูล HTTP จากหน้าเว็บไซต์  เช่น port 80
ซึ่งก็อาจใช้ในการ ทดสอบโปรแกรมระบบ ได้เช่นกัน

ตัวอย่าง batch file สำหรับ set classpath
 Directory of D:\scala-2.9.2

08/11/2012  01:12 AM    <dir>          .
08/11/2012  01:12 AM    <dir>          ..
08/11/2012  01:12 AM    <dir>          bin
04/13/2012  05:25 AM    <dir>          doc
08/08/2012  12:02 AM    <dir>          lib
04/13/2012  05:25 AM    <dir>          man
04/13/2012  05:25 AM    <dir>          misc
08/11/2012  12:06 AM               152 setpath.bat
04/13/2012  05:25 AM    <dir>          src



ข้อมูล batch เป็นดังนี้
set path=%PATH%;c:\Program Files\Java\jdk1.7.0_03\bin;
set path=%PATH%;D:\scala-2.9.2\bin;
set JAVA_HOME=c:\Program Files\Java\jdk1.7.0_03\bin
Source Code get_http.scala
import java.net.URL
import java.net.HttpURLConnection
val url = new URL("http","localhost",80,"/apt")
val con = url.openConnection.asInstanceOf[HttpURLConnection]
con.setRequestProperty("Header","Value")
con.connect()
val ips = con.getInputStream()
for( i <- 1 to ips.available ){
   print( ips.read.asInstanceOf[Char] )
}

เป็นการแสดงตัวอย่าง Source Code ภาษา Scala ซึ่งเรียกใช้  object/method ของ java 
โดยสร้าง URL ระบุ protocol , host , port , path หรือ ไฟล์ 
แล้วเปิดคอนเนคชัน และ cast type เป็น  HttpURLConnection
ลองส่ง Property ไปเล่นๆ 
เปิด connection จริง 
ดึงข้อมูล ImputStream ใส่ตัวแปร pointer ips 
วนรอบเท่าจำนวนตัวอักษรที่อ่านได้ (ips.available)  
แล้ว อ่านทีละตัวอักษรซึ่งจะเป็นเลข interger แล้ว CastType ไปเป็น Char 
แล้ว พิมพ์ออกทางหน้าจอ  


ตัวอย่างผลลัพธ์ 
scala> :load get_http.scala
Loading get_http.scala...
import java.net.URL
import java.net.HttpURLConnection
url: java.net.URL = http://localhost:80/apt
con: java.net.HttpURLConnection = sun.net.www.protocol.http.HttpURLConnection:ht
tp://localhost:80/apt
ips: java.io.InputStream = sun.net.www.protocol.http.HttpURLConnection$HttpInput
Stream@3dd423
NO Screen Info !
redirect to $http://localhost/apt/index.php/unmanage/check_d
evice_res/
scala> 

จะเห็นว่ามีการดึงข้อมูลได้ ถูกต้อง แต่มีการแสดง Source Code ด้วยเพื่อ ตรวจสอบข้อผิดพลาด 
หากต้องการให้ไม่แสดง Source Code ให้ใช้คำสั่ง   :silent  แล้วโหลด code มารันด้วย :load 
ดังนี้ 
scala> :silent
Switched off result printing.

scala> :load get_http.scala
Loading get_http.scala...
NO Screen Info !
redirect to $http://localhost/apt/index.php/unmanage/check_d
evice_res/
scala>


อ้างอิงจาก 






10 March 2012

สร้าง user บน pure-ftpd (ubuntu )

ใน pure-ftpd จะมีคำสั่งสร้าง user
และระุบุให้ผูกกับ  user ของ OS
ดังนี้
http://support.real-time.com/open-source/pureftpd/index.html
โดยห้าม ใช้  uid OS  ซีึ่งเป็น "root" และ   "gid" เป็น root
ทำให้ต้องมีการ สร้าง user ของ OS ใหม่

การสร้าง user ใหม่ ใน ubuntu
ลองสร้างดูด้วย วิธีนี้

useradd  ซับซ้อนหน่อย ต้องระบุ path ให้ แล้วต้องมากำหนด password ด้วย  "passwd"  อีกครั้ง
adduser เหมือนมี text gui มาช่วยให้ป้อนค่าต่างๆง่ายมากๆ
http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/

หรือหากจะสร้าง ด้วย gui ก็ตามนี้ครับ
http://blog.it.kmitl.ac.th/it51070105/2008/07/10/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-user-%E0%B9%83%E0%B8%99-ubuntu/

สมมุติ สร้าง user ของ OS ชื่อ tu2 มาแล้ว

ขั้นตอนที่จะสร้าง user ของ  pure-ftpd ก็จะทำตามเอกสารนี้
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
แต่จะปรับเปลี่ยนเล็กน้อย คือ

ที่ path
root@root: /etc/pure-ftpd#
รันคำสั่งดังนี้
#groupaddd   ftpgroup
#useradd  -g ftpgroup  -d /home/ftpuser -s  /etc  ftpuser
#pure-pw  useradd   tu2  -u ftpuser  -d  /home/ftpuser/joe
ใส่พาสเวิร์ด สองครั้ง
เป็นการผูก  user:OS  tu2 เข้ากับ  user (อ่านรีบๆเดาว่าน่าจะเป็น) แบบ virtual user "ftpuser"
และกำหนดให้ path ของ directory เป็น /home/ftpuser/joe


แต่ว่าใส่ผิด ชื่อไม่ตรง คือใส่ joe ต้องการ ลบ user นี้ออกจาก ftp เพื่อจะเปลี่ยน folder ที่เก็บ
#pure-pw  userdel  tu2

#pure-pw  useradd   tu2  -u ftpuser  -d  /home/ftpuser/tu2
ใส่ password สองครั้ง


จะทำให้ สามารถ logon จาก  core FTP ( windows )
ได้ โดย ใช้ user tu2
ซึ่งเป็นการ เปิด จาก port 21

 ถ้าจะใ้ห้ ปลอดภัยขึ้นควร ใช้ SSH แทน ซึ่งเป็น port 22 จะปลอดภัย มีการเข้ารหัสข้อมูล
 ซึ่ง port 21 แบบ FTP นี้ ไม่มีการเข้ารหัสข้อมูลใดๆ ทั้งสิ้น

 แต่ในที่นี้ สอน การใช้งานแบบง่ายๆ ในหน่วยงาน หรือ สำหรับ Test Server
 หรือ ใช้ ภายใน VMware / VirtualBox เป็นหลัก ( ผมก็ ใช้เพื่อการนี้แหละ ... แบบ Host - Only ด้วย )

------------------------
ผลลัพธ์ หลังจากลองแบบ รีบด่วนแล้ว
พบว่า  login ftp ได้ที่  /home/tu2
ซึ่งก็พบว่า  ใช้ CoreFTP (windows )  โหลด ไฟล์จาก   Pure-ftpd (Ubuntu ) ได้
และยังสามารถ ส่งไฟล์จาก  CoreFTP (windows )  ไปยัง   Pure-ftpd (Ubuntu ) ได้ ด้วย
โดยจะส่งไปวางไว้ที่  /home/tu2

ซึ่งก็จะเป็นวิธีการ รับส่งไฟล์แบบง่ายๆ ในสภาพแวดล้อมที่  มีความเสี่ยงต่ำ
ระหว่าง  linux กับ  windows

... อืม ... อาจมีวิธีง่ายกว่านี้ แต่นึกไม่ออก น่ะ    :D

20 May 2011

การ Set Firewall สำหรับ WebServer บน CentOS

หาอ่าน เอกสารวิธี set iptables ได้จาก

http://www.cyberciti.biz/faq/howto-rhel-linux-open-port-using-iptables/

แต่ว่าลองใน VM แล้ว เครื่อง Host (Vista )
ก็ยังไม่สามารถมองเห็น web server ได้

อ่านดู ล่างๆ บอกว่าให้รัน
system-config-securitylevel  จาก  # 
หรืออาจไปใช้  #setup แล้วเลือก ส่วน Firewall 


ลองๆทำดู ลองเลือก Disable Firewall ก็เห็น Web จาก CentOS ได้ทันทีเลย
ลองปรับปรุงใหม่ ให้ Customize ให้เลือกเฉพาะ HTTP ,  TELNET , FTP  ก็น่าะพอ 
สำหรับงานทั่วๆไปทำเว็ป และ upload content , และจัดการกับ server ผ่าน console  


ผลคือ ใช้งานได้ครับ 
http://.... 
ftp://... 


----------------------------
ส่วนการ ติดตั้ง telnet นั้นอาจต้อง yum update ก่อน
แต่ว่า ต้อง ตั้งค่า DNS ก่อนนะครับ 


ใช้  #setup แล้วเลือก ส่วน Network แล้วไปแก้ไข ค่า DNS เพิ่ม Primary DNS , Secoundary DNS ถ้ามี
อันนี้ ใช้ GUI ได่้  แต่จะยัง ping google ไม่ได้ นะครับ 


แล้วต้อง  restart network ใหม่ก่อน ด้วยคำสั่ง
#service network restart  
รอสักครู่ แล้ว ลอง ping www.google.co.th  
หยุดด้วย Ctrl-C หรือ อาจ ping  -c 3 www.google.co.th ก่อน  


ข้อมูลจาก WEB --> http://www.arnut.com/b/CentOSUsing7 
-----------------------------
หลัง รัน   ping google ได้แล้ว ลอง update yum 
ด้วย 
#yum update 
แล้ว install  ดัวย 
#yum install  telnet-server
#yum install  telnet-server


#service telnet-server status  


ดูส่วนนี้ประกอบด้วย  --> http://huu2uan.posterous.com/install-telnet-server-on-centos-5





06 May 2011

29 April 2011

windows 7 lost pass

http://answers.yahoo.com/question/index?qid=20100416134329AAlWwQM
http://ophcrack.sourceforge.net/
http://ophcrack.sourceforge.net/
http://ophcrack.sourceforge.net/download.php
http://ophcrack.sourceforge.net/tables.php
http://pogostick.net/~pnh/ntpasswd/
http://superuser.com/questions/72244/what-can-i-do-if-i-forgot-my-windows-password
http://www.freerainbowtables.com/en/tables/
http://www.it-guides.com/index.php/tips-a-techniques/windows-tips/1439-reset-windows-7-administrator-password
http://www.kryptoslogic.com/
http://www.monavista.com/webboard/showthread.php?t=20811
http://www.online-tech-tips.com/windows-7/forgot-lost-administrator-password-windows-7/
http://www.piotrbania.com/all/kon-boot/
http://www.question-defense.com/2009/11/05/reset-your-windows-password-with-chntpw
http://www.sevenforums.com/general-discussion/5087-forgotten-password-workaround.html
http://www.ubuntu.com/
http://www.winvistaclub.com/t7.html

ดึงข้อมูลออกจากรูป jpg

>>  ต้อง ติดตั้ง ดังนี้ http://www.php.net/manual/en/exif.installation.php

คือ

php_mbstring.dll และ

php_exif.dll

ในไฟล์ php.ini แล้ว restart apche ใหม่

แล้วใช้ Code ลักษณะนี้ ในการดึงข้อมูลภาพออกมาแสดง


 //$pic = "" ;
$pic_arr = array( "c://test//silom.jpg" , "50717.jpg" , "a.jpg" , "P8988833-1.jpg" ,"P9026859-2.jpg","webboard.news.sanook.com.jpg") ;

foreach($pic_arr as $i =>  $pic ) {
echo "
";
$exif_data = exif_read_data( $pic);
echo '
'; 
print_r($exif_data); 
echo '
';
}

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

ข้อมูลอื่นๆ เช่น 

05 April 2011

Run Java query MySQL

java File ชื่อ listtable.java

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

import java.sql.* ;

public class listtable{
 public static void main(String[] args) throws Exception
 {
  System.out.println("OK");

//  String sql = "show databases;" ;
  String sql = "show tables;" ;
  getdb( sql ) ;

 }
 public static void getdb(String sql ) throws Exception
 {
  Class.forName("com.mysql.jdbc.Driver").newInstance();

  String url = "jdbc:mysql://127.0.0.1:3306/database_name" ;
  String user = "user" ;
  String pass  = "password" ;
  Connection con = DriverManager.getConnection(url , user, pass) ;
  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery(sql ) ;
  while(rs.next() ){
   System.out.println(rs.getString(1));
  }
  rs.close();
  stmt.close();
  con.close();
 }
}

-------------------------------------------------------------------------
แล้ว สร้าง file run.bat ดังนี้

SET JAVA_HOME=c:\Program Files\Java\jdk1.6.0_13
set classpath=.;c:\Program Files\Java\jdk1.6.0_13\jre\lib\ext\classes12_g.jar;.\mysql-connector-java-5.1.10-bin.jar
javac  listtable.java
pause
java   listtable

-------------------------------------------------------------------------
โดย ใน Folder ที่เก็บ File *.java และ *.bat จะอยู่ที่เดียวกัน
และมีรายการ File ดังนี้


04/05/2011  01:41 PM  

         .
04/05/2011  01:41 PM  
         ..
04/05/2011  01:25 PM               843 listtable.java
09/22/2009  04:01 PM           724,225 mysql-connector-java-5.1.10-bin.jar
04/05/2011  01:25 PM               270 run.bat


-------------------------------------------------------------------------
File mysql-connector-java-5.1.10-bin.jar  เป็น file ที่อยู่ใน
path
c:\Program Files\Java\jdk1.6.0_13\jre\lib\ext\
ที่ได้รับการติดตั้ง พร้อม jdk1.6.0 _13

copy จาก
c:\Program Files\Java\jdk1.6.0_13\jre\lib\ext\mysql-connector-java-5.1.10-bin.jar
มาไว้ที่ folder ที่มี *.java *.bat


หรืออาจจะโหลดจาก web mysql ( oracle )
ที่หัวข้อ  connector/j  
แต่ต้องมี user password ก่อน
http://dev.mysql.com/downloads/connector/j/

---------------------------------------------------------------------------
แล้วรัน
> run.bat  จะ แสดงรายการ table ในฐานข้อมูล mysql นั้น


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












04 April 2011

Run Java query Oracle

Source Code

จะแสดง Table ใน Oracle ออกมา
--------------------------------------------------

import java.sql.* ;
//import oracle.jdbc.OracleDriver;
public class showtable{
public static void main(String[] args) throws Exception
{
System.out.println("OK");

String sql = "select * from tab" ;
getdb( sql ) ;

}
public static void getdb(String sql ) throws Exception
{
Class.forName("oracle.jdbc.OracleDriver").newInstance();

String url = "jdbc:oracle:thin:@192.168.1.2:1521:schemaname";
String user = "user" ;
String pass  = "password" ;
Connection con = DriverManager.getConnection(url , user, pass) ;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql ) ;
while(rs.next() ){
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
con.close();
}

}

-----------------------------------------------------------------------------
run.bat


set classpath=.;c:\Program Files\Java\jdk1.6.0_13\jre\lib\ext\classes12_g.jar;
javac  showtable.java
java  showtable


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

apache mod_rewrite

เอกสารภาษาไทย
http://httpd.apache.org/docs/current/mod/mod_rewrite.html

http://www.scriptdd.com/webtip/apache-mod-rewrite-easy-url.html

http://forum.datatan.net/index.php/topic,377.0.html

http://www.thaiseoboard.com/index.php?topic=3675.0

http://www.dek-ac.com/d-sign2u/knowledge24-%E0%B8%97%E0%B8%B3-SEO-%E0%B9%83%E0%B8%AB%E0%B9%89-URL-%E0%B9%82%E0%B8%94%E0%B8%A2%E0%B9%83%E0%B8%8A%E0%B9%89-Mod_Rewrite.html

http://www.siamfocus.com/content.php?slide=1&content=160


mod_rewrite สำหรับ CakePHP Framework
http://www.cakephp.in.th/index.php?topic=9.0

สำหรับ joomla
http://www.joomlathaiclub.com/joomla/basic/basic/648-test-mod-rewrite

บน Ubuntu
http://kiterminal.com/blog/content/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%AB%E0%B9%89-apache2-%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-modrewrite-%E0%B8%9A%E0%B8%99-ubuntu-810

Debug Mode
http://kiterminal.com/blog/content/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3%E0%B9%83%E0%B8%AB%E0%B9%89-apache2-%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-modrewrite-%E0%B8%9A%E0%B8%99-ubuntu-810

ตัวอย่าง .htaccess
http://www.narongrit.net/download-free-mod-rewrite-code-of-narongrit-dot-net.html

บน IIS
http://www.narisa.com/forums/index.php?showtopic=24116


WordPress
http://www.autthapon.in.th/tag/mod_rewrite/

เอกสารของ Apache Httpd Server
http://httpd.apache.org/docs/current/mod/mod_rewrite.html

Service Path in Windows Registry Key

เมื่้อมีการคลิกขวา
My Computer เลือก Management
แล้วเลือก Services จะเห็น Service ต่างๆ เช่น

Apache Web Server ,  MySQL
และในช่องจะมี  field ชืื่อ path to executable
เช่น
"D:\ms4w\Apache\bin\Apache.exe" -k runservice"


Path เหล่านี้ จากการ Search ใน Google พบว่า
อยู่ที่ Registry

ดัง Link ต่อไปนี้
 http://forum.soft32.com/win3/Changing-Path-Executable-Services-msc-WinXP-SP2-ftopict54633.html

อธิบายได้ว่า

อยู่ที่ Registry Key ที่ตำแหน่ง
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

เช่น
Service ชื่อ (Display Name)
Apache Web Server

จะมี Key อยู่ที่ ApacheWebServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ApacheWebServer
และ จะมี DisplayName= Apache Web Server
และ มี  ImagePath = "D:\ms4w\Apache\bin\Apache.exe" -k runservice

ดูข้อมูลเพิ่มเติมเกี่ยวกับ  Registry  Key นี้  ดังนี้
http://support.microsoft.com/kb/103000


ส่วนในการเขียนโปแกรม ด้วย C# หรือโปรแกรมกลุ่ม .NET Framework เช่น VB.NET
สามารถเข้าถึง Key นี้ได้จาก
Microsoft.Win32.RegistryKey class

การ Set Mod_rewrite ใน CodeIgniter , Apache Web Server

Set  mod_rewrite ดังนี้
http://codeigniter.com/wiki/mod_rewrite/
โดย

ปรับแก้ Apache2.2/conf/httpd.conf
แก้ประมาณบรรทัดที่  196
(ดูได้ดังนี้ )

C:\AppServ\Apache2.2\conf>type httpd.conf | findstr /i /n rewrite
196:LoadModule rewrite_module modules/mod_rewrite.so

โดยเอา # หน้าบรรทัดออก ถ้ามี# อยู่

ต้องสร้าง .htaccess ไว้ที่ path บนสุดของ  CodeIgniter  ( ถ้า unzip มาใหม่ๆจะเห็น folder ที่ยังไม่มี .htaccss )
 RewriteBase / จะเป็น  Path ของเราเองเช่น  
    RewriteBase /CodeIgniter_2.0.1/
แล้ว แก้ไข  / config.php ไฟล์
28  $config['index_page'] = '';
48 $config['uri_protocol'] = 'QUERY_STRING' ; 
160 $config['enable_query_strings'] = TRUE;


----------------
เมื่อติดตั้งแล้ว restart apache2.2 ใหม่

แล้วลองรันดูจะเห็นว่าไม่ต้องมี index.php แล้ว  
แต่ว่า  $_GET จะได้เป็น 
Array ( [/auth/check] => ) 
ซึ่งจะพบว่า ไม่สามารถใช้งาน $_GET ได้   
(ซึ่งก่อนหน้าติดตั้ง mod_rewrite และใช้  .htaccess จะยังสามารถใช้  $_GET ได้ปกติ
แต่ url จะเป็น 

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


หากต้องการ $_GET ใน Controller ให้ สร้าง $_GET โดย Parse QueryString ดังนี้ 
จาก link จะเห็นว่ามีเขียนว่า 100% 
นั่นคือใช้ 

parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);

ตัวอย่างเช่น ใน Controller auth
public function check()
{
print_r($_GET);
echo "
";
print_r($_SERVER['REQUEST_URI']);
parse_str($_SERVER['REQUEST_URI'], $_GET);
echo "
";
print_r($_GET);
parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);
echo "
";
print_r($_GET);
}
จะได้ผล ดังนี้ 
Array ( [/auth/check] => )
/codeIgniter_2.0.1/auth/check?user=bb&pass=vc
Array ( [/codeIgniter_2_0_1/auth/check?user] => bb [pass] => vc )
Array ( [user] => bb [pass] => vc )

=================================================================
NOTE: 
HTML Form ที่เรียกใช้  URL จะเป็นดังนี้ 
กรณี ไม่ได้ใช้ mod_rewrite 

กรณีมีการติดตั้ง mod_rewrite และ แก้ไข config.php แล้ว 





เครื่องมือ Manage งาน

MindMap สำหรับผู้ที่ลืมบ่อยๆ หรืองานยุ่งมาก

FreeMind


FreePlan


คุณสมบัติโดยรวมของทั้งสองโปรแกรม

  • ต่างกันไม่มาก เช่น ShortKey ต่างๆ เหมือนกัน อาจมาจาก SourceCode เริ่มต้นเดียวกัน   
  • มีส่วนที่ทำ Encrypt โดยต้องป้อนรหัสก่อนเข้าถึงข้อมูลได้ แต่ต้องเลือกตั้งแต่ตอนสร้าง Map ใหม่
  • ตัวโปรแกรมมีขนาดเล็ก  
  • รันได้บนหลาย OS  เนื่องจากเขียนจากภาษา Java
  • สำหรับบน Windows มีทั้งแบบ Install (*.exe) และ แบบ Zip File ที่รันได้โดยไม่ต้อง Install  
  • ต้องมีการติดตั้ง  Java Runtime (JRE ) ก่อน
  • Key หลักๆที่ใช้ได้แก่   Enter , Insert ,  และ คีย์ลูกศรต่างๆ   
UML Tools
ArgoUML

  • http://argouml.tigris.org/
  • เป็นโปรแกรม UML ที่รองรับ UML1.4 
  • มีหลายคุณสมบัติที่น่าสนใจ 
  • ข้อมูลแบ่งเป็น ส่วนของ  Model และ View ตามแบบ MVC   ซึ่งจะเรียกว่า  Model และ Diagram 
  • การลบ ข้อมูลจะลบได้สองแบบคือ ลบจาก Model หรือ ลบจาก Diagram 
  • ตัวโปรแกรมมีขนาดเล็ก 
  • รันได้บนหลาย OS  เนื่องจากเขียนจากภาษา Java
  • สำหรับบน Windows มีทั้งแบบ Install (*.exe) และ แบบ Zip File ที่รันได้โดยไม่ต้อง Install  
  • ต้องมีการติดตั้ง  Java Runtime (JRE ) ก่อน
  • ข้อด้อย
    • ไม่สามารถ Copy/Past Diagram ต่างๆได้
    • ไม่มี Undo 
Start UML 
  • http://staruml.sourceforge.net/en/
  • มีหลายคุณสมบัติที่ดีมาก 
  • มีแบ่งระหว่าง Model และ Diagram 
  • ตัวโปรแกรม คาดว่าน่าจะเขียนจาก Delphi 
  • ข้อด้อย 
    • หยุดการพัฒนาเพิ่มเติมตั้งแต่ ปี 2008 
    • รันได้บน Windows เท่าัันั้น

03 April 2011

ใช้ $_GET ใน CodeIgniter PHP Framework

การใช้ $_GET
เพื่อใช้  url แบบ  http://myserver.com/controller/method/?data1=10&data2=20&data3=30&data4=test

http://stackoverflow.com/questions/5361032/getting-get-data-in-codeigniter-while-using-request-uri

หรือ อ่าน ส่วนล่างๆของ ฟอรัมนี้
http://codeigniter.com/forums/viewthread/68698/

และนี่
http://stackoverflow.com/questions/2171185/codeigniter-php-framework-need-to-get-query-string

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

อีกแบบ คือ enable query string , คือ ทั้ง controller / method จะกลาย เป็น parameter $_GET ทั้งหมด
http://codeigniter.com/user_guide/general/urls.html

01 April 2011

สร้าง Theme , รายการ PlugIn ของ WordPress

สอนการทำ Theme ของ WordPress
http://www.designil.com/wordpress-theme-design-2011-slides.html

http://www.mekz.net/make-your-own-wordpress-theme-by-cssez/

http://www.thaiseoboard.com/index.php?topic=44795.0
http://www.divland.com/blog/2008/10/19/create-your-wordpress-theme-lesson1/

http://nattawut.com/2009/04/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-wordpress-theme-1/

http://supachai.com/present/?p=1266

Plug-In ของ WordPress
http://www.enjoyday.net/wordpress-theme-plugin.

Free Theme อื่นๆ
http://pongcp.wordpress.com/2011/02/17/%E0%B8%A1%E0%B8%B2%E0%B9%81%E0%B8%A5%E0%B9%89%E0%B8%A7%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B8%9A-free-wordpress-theme-%E0%B8%A0%E0%B8%B2%E0%B8%84%E0%B8%AA%E0%B8%AD%E0%B8%87/

Free Theme แบ่งตามว่า จะเอาไปใช้งานอะไร
http://www.danghomohox.com/category/opensource/wordpress-theme

สร้าง Graph แท่ง , CAPCHA ,PDF บน PHP

มีดังนี้ ครับ

http://www.basic-skill.com/category.php?cat_title=%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%20Graph%20%E0%B9%82%E0%B8%94%E0%B8%A2%E0%B9%83%E0%B8%8A%E0%B9%89%20JPGraph&cat_id=49&sec_id=2

http://www.basic-skill.com/content.php?cont_title=%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%81%E0%B8%A3%E0%B8%B2%E0%B8%9F%E0%B9%81%E0%B8%97%E0%B9%88%E0%B8%87%E0%B8%AB%E0%B8%A5%E0%B8%B2%E0%B8%A2%20%E0%B9%86%20%E0%B9%81%E0%B8%97%E0%B9%88%E0%B8%87&cont_id=361&sec_id=2


http://www.thaicreate.com/free-web-script/php-charts.html


CAPCHA  ด้วย PHP
http://share.psu.ac.th/blog/siripong/1131

http://thebggaro.wordpress.com/tag/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-captcha-php/

http://thebggaro.wordpress.com/2010/10/24/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-captcha-%E0%B8%AA%E0%B8%B8%E0%B9%88%E0%B8%A1%E0%B9%80%E0%B8%A5%E0%B8%82%E0%B9%83%E0%B8%99%E0%B8%A0%E0%B8%B2%E0%B8%9E-%E0%B8%94%E0%B9%89%E0%B8%A7/


PDF  ภาษาไทย
http://kiterminal.com/blog/content/generate-%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3-pdf-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-php

Link วิธีติดตั้ง PHP 5.3 ให้กับ Apache Web Server (on windows)

พบปัญหาการใช้งาน AppServe ( http://www.appservnetwork.com )  บน Windows

คือไม่มี Package PHP5.3 พบแต่  PHP 5.2

บาง PHP Framework รองรับการทำงานเฉพาะ PHP5.3 ขึ้นไป

จึงต้องหา Solution ในการติดตั้ง PHP5.3 บน Apache ที่ได้ติดตั้ง ด้วย appserv ไว้แล้ว
พบว่า ไกล้เคียงที่สุดคือ Link ต่อไปนี้

http://webdevcodex.com/tutorial-installing-apache2-php5-mysql5-phpmyadmin3-windows-7-vista/#installphp

 ซึ่ง Link นี้จะช่วยให้เข้าใจ การติดตั้ง  Apache + PHP  บน สภาพแวดล้อม Windows ด้วย

รวมทั้ง หากติดตั้งใน Linux Server  CentOS จะมีการติดตั้ง PHP Package มาตรฐานมาให้
ซึ่งจะเป็น PHP5.1 ซึ่งไม่ สามารถใช้กับ บาง PHP Framework ได้ จึงอาจต้องติดตั้งใหม่
ซึ่งจากตัวอย่างนี้ จะเป็นแนวทางได้ แม้จะไม่ทั้งหมด