Showing posts with label apache. Show all posts
Showing posts with label apache. Show all posts

Tuesday, February 18, 2014

แก้ปัญหา Start Apache 2.2 ไม่ได้

ถ้าวันนึงไม่สามารถ start service apache ได้ลองทำตามนี้ดู
1.ลองดูให้เห็นกับตาว่า  start service apache ไม่ขึ้น ให้ไปที่ Service แล้วคลิ็กขวาเลือก All Tasks -> Start
2. ไม่ขึ้นจริงๆด้วย โดยจะขึ้นข้อความ “Windows could not start the Apache2.2 on Local Computer. For more information, review the System Event Log. If this is a non-Micorsoft service, contact the service vendor, and refer to service-specific error code 1.”
apache service.jpg
2.1 จากที่ลองค้นหาดูตามเวบต่างๆพบว่าที่ start ไม่ขึ้นนั้นเกิดจาก port 80 มีการใช้งานอยู่ ตรงนี้มันวิธีแก้ง่ายๆอยู่คือเปลี่ยน port ของ Apache ให้ไปใช้ port อื่น เช่น 8080 หรือ 8088 หรือ เลขอื่นๆแทนที่ไม่ชนกับที่มีอยุ่ โดย เข้าไปเปลี่ยนที่ไฟล์ C:\AppServ\Apache2.2\conf\httpd.conf แล้วแก้เลข port จาก “Listen 80″ เป็น port ที่ต้องการ เช่น “Listen 8080″ แล้ว start service อีกครั้งก็จะใช้งานได้
3.  จากที่แนะนำไปคือการเปปลี่ยนสามารเปลี่ยน default port ของ apache ถ้าไม่อยากเปลี่ยนให้ตรวจสอบสิ่งเหล่านี้
3.1 ดูว่า service ไหนใช้ port 80 อยู่ แล้วทำการปิด service นั้น โดยพิมพ์คำสั่ง netstat -nao ที่ Command prompt จะได้ output ประมาณนี้
1
2
3
4
5
6
7
8
9
10
11
12
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 868
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2616
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 2416
TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 2416
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 508
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING 984
TCP 0.0.0.0:1027 0.0.0.0:0 LISTENING 328
จะเห็นว่ามี 0.0.0.0:80 ถูกใช้งานอยู่โดย PID(Process Identifier) เลข 4 ขั้นตอนต่อไปก็ดูว่า process นี้คืออะไร ปิดได้หรือไม่
3.2 ดู process id ว่าคือ service อะไรให้ไปที่ Task Manager คลิ้กที่ process แล้วเลือก view -> select column แล้วติ้กถูกที่ PID(Process Identifier)
3.3 จะเป็นว่า PID 4 เป็น process ของ system ไม่สามารถที่จะ kill ได้ หากเป็นของ program อืนๆที่เรารู้จักก็ให้ลองปิด program นั้นๆไปก่อนแล้วลอง start service อีกครั้ง Skype, NOD32 หรือ IIS
4. เมื่อพบว่าเป็นของ system ทำให้ไม่สามารถปิดได้ วิธีการก็คือไม่ให้มัน start ขึ้นมาแทน อ้างอิงจากที่นี่
1) Launch RegEdit
2) Go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
3) Change the value of ’start’ to 4 (disabled)
4) Re-boot your computer
5. ลอง Start service Apache อีกครั้ง
source : http://langisser.wordpress.com/2012/05/15/%E0%B9%81%E0%B8%81%E0%B9%89%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2-start-apache-%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B9%84%E0%B8%94%E0%B9%89/

Thursday, November 24, 2011

เพิ่ม virtual path ให้กับ apache

ตัวอย่างการสร้าง
path ย่อย ที่ไม่ได้อยู่ใน Apache folder
กรณีนี้ใช้ C:\AppServ\www
ถ้าต้องการให้อยู่นอก www แก้ไขโดยเพิ่ม
ท้ายไฟล์ C:\AppServ\apache2.2\conf\httpd.conf

ตัวอย่าง path ที่เก็บข้อมูลคือ

Alias /doc1/www "C:/doc1/www"
<directory "C:/doc1/www">
Options Indexes FollowSymLinks MultiViews ExecCGI
       AllowOverride All
       Order allow,deny
       Allow from all
</directory>


จะเปิดดูข้อมูลได้ที่ http://127.0.0.1/doc1/www/ ที่เครื่องของตัวเอง 
โดยถ้าไม่มี index.html
จะแสดง เป็น List รายการไฟล์ให้