แสดงบทความที่มีป้ายกำกับ Apache แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Apache แสดงบทความทั้งหมด

วันศุกร์ที่ 17 พฤษภาคม พ.ศ. 2556

Start Service Apache ไม่ได้

  ที่มา http://roboticlab.blogspot.com/2012/04/start-service-apache.html

       ก่อนอื่นๆ ก็เนื่องจากมีเพื่อนมาถามเยอะมาก และก็บ่นกันบ่อย โดยเฉพาะตอนเรียนวิชาเว็บ หรือเกิดอยากจะทำเว็บขึ้นมาแต่พอไปรัน Service ของ Apache แล้วเกิดปัญหาขึ้น
XAMPP apache port problem 80 or 443
ถึง ณ จุดนี้ัแล้ว ผมก็จะของนำเสนอวิธีแบบตรงจุด ไม่ต้องมาสุ่มไล่ลบโปรแกรมตามที่ในลายๆเว็บเค้าแนะนำกัน จากจุดนี้เราทราบว่า Port  80 หรือ 443 มีปัญหาเรามีวิธีง่ายๆ

1.ตรวจสอบโปรแกรมที่ใช้่ Port ชนกัน

  • Start >> พิมพ์คำสั่ง cmd ขึ้นมา 
  • พิมพ์คำสั่ง netstat -o -n -a | findstr 0.0:80 หรือ netstat -o -n -a | findstr 0.0:443 เพือตรวจสอบ Port ที่ใช้งาน โดยที่เลข  80 กับ 443 คือ Port สามารถที่จะปรับเปลี่ยนได้ตามความเหมาะสมจ้า
  • เราก็จะพบว่ามี  1 Process ที่เกี่ยวข้อง โดยเราจะมาสนใจที่เลข 1044
  • เลข 1044 คือ เลข PID คือ หมายเลขของ Process โดยเราจะไปตรวจดูต่อว่าเลขนี้ เป็นของอะไร โดยการเปิด Task Manager ขึ้นมา จากนั้นไปที่เมนู View >> Select Column เพื่อไปเลือกให้แสดงค่า PID ออกมาจากนั้นเราก็ไล่หา จะพบว่าเป็นของ VMWARE

2.จะแก้ไขอย่างไร 

          จากจุดนี้เราก็ทราบแล้วว่าจะแก้ปัญหาอย่างไร ถ้าเป็นโปรแกรมอื่น เช่น Skype เราอาจจะไปปรับ option ของโปรแกรม แต่ในกรณีนี้เป็นของ VMWARE ซึ่งเราก็กลัวว่าถ้าแก้แล้ว จะมีปัญหากับ Host ที่รันอยู่ในระบบ หรือ ไม่ ผมก็เลยจะเปลี่ยน Port ของทาง Apache แทน แต่จะเขียนรวมไปถึง Mysql ด้วยโดยจะยกตัวอย่างจาก xampp
  • การเปลี่ยน Port 80 (Http) ใน Apache
    1. เปิดไฟล์ \xampp\apache\conf\httpd.conf
    2. หาคำว่า “Listen 80″ เปลี่ยนเป็น “Listen 8080″
    3. หาคำว่า “ServerName localhost:80″ เปลี่ยนเป็น “ServerName localhost:8080″
  • การเปลี่ยน Port 443 (Https) ใน Apache
    1. เปิดไฟล์ \xampp\apache\conf\extra\httpd-ssl.conf
    2. หาคำว่า “Listen 443″ เปลี่ยนเป็น “Listen 450″
    3. หาคำว่า “ServerName localhost:443″ เปลี่ยนเป็น “ServerName  localhost:450″
  • การเปลี่ยน Port 3306 ของ Mysql
    1. เปิดไฟล์ \xampp\mysql\bin\my 
    2. หาคำว่า “port = 3306″ เปลี่ยนเป็น “port = 3336″ (มีสองจุด)

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

ที่มา: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/

ถ้าวันนึงไม่สามารถ 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 อีกครั้ง