Monday, August 25, 2008

Can not start apache port 80, 443 in use

# อันเนี๋ยเป็นแบบ https

# เมื่อเราสั่งคำสั่ง

$ sudo /etc/init.d/apache2 start

# ผลมันเป็นงี้

* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

# หรือ $ sudo /etc/init.d/apache2 start

* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(98)Address already in use: make_sock: could not bind to address [::]:443
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

# หรือ $ sudo /etc/init.d/apache2 restart

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (no pid file) not running
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

# จากการสังเกตและการทดลองหลายๆ แบบ

- มีบางโพรเซส ใช้พอร์ต 80 อยู่

- ซึ่งลองคิดไปคิดมาเราลง ebox มันคงไม่กินเส้นกันมั้งซะงั้น

- แล้วจะทำไงหาโพรเซสก็ไม่เจอเซงเลยแล้วก็ลองทำหลายวิธีเจอวิธีเนี๋ยใช้ได้เลยแฮะ

- sudo /etc/init.d/ebox stop และทำการถอนมันซะ sudo aptitude remove ebox

- แล้วถอน apache2 ด้วยครับ แล้วค่อยติดตั้ง apache2 ใหม่

- แล้วจึงทำการสั่งให้ apache ทำงาน sudo /etc/init.d/apache2 start

- อย่าพึ่งดีใจไมพอเปิดเครื่องใหม่มัน apache2 start ไม่ได้ซะงั้น

- คิดว่าน่าจะมี script ebox ค้างอยู่ตอน boot ขึ้นมา

- พอรัน webmin ได้เข้าไปดูใน System => Scheduled Cron Jobs

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

/etc/cron.hourly/ebox
/etc/cron.hourly/99purgeEBoxLogs

- ลบ job ebox ออกมันก็ยังเหมือนเดิมเลยแฮะ

- ปัญหาใหม่มันไม่ได้เป็นปัญหากับ appserver ตัวอื่นแหละคงมีปัญหาที่ตัวเอง

- ถ้า apache2 มีการทำ ssl ให้เราทำการ comment config ที่เราได้ทำไว้ในไฟล์

site/available/default และ port.conf

- ดูๆไปมันค่อนข้างมีปัญหาตอนบูตระบบขึ้นมาใหม่เพราะ การจะรัน apache ที่ทำ ssl ต้องมีการใส่ key ฉนั้นตอนบูตจะไปใส่ตอนใหน จึงทำให้มันค่อนข้างจะมีปัญหา

- ถ้าเราจะใช้ ssl เราต้องคอนฟิกหรือปิดคอมเม้น ssl ที่เราคอมเม้นไว้ใน 2 ไฟล์แล้วจึงค่อย restart apache2 ใหม่แล้วจะได้ใส่ key

- แต่ถ้าเราค้าง ssl ไว้ตอนบูตระบบมา https จะใช้ไม่ได้

# Tips

- firefox เวลาจะทดสอบควรลบ cache มันออกก่อนมันชอบหลอกเราซะจริงๆ พวก browser เนี๋ย

- ค่อนข้างมีปัญหาถ้าใช้ https กับเว็บทั่วไป เพราะตอน boot มันจะรันไม่ได้เพราะมันต้องใส่ password ssl

- หรือไม่ก็มีปัญหากับ Scheduled Cron Jobs ที่มันข้างอยู่ของ ebox ซึ่งสามารถดูได้ใน webmin ว่า jobs ที่ตอนบูตมีไรบ้างตามลบเลย

- สรุป คอมเมน ssl ไว้ดีกว่า แต่สามารถใช้ webmin ได้เหมือนเดิมแต่ต้องสร้าง certificate ไว้ให้พร้อมก็พอไม่ต้อง config ssl ใน apache เลย

- สามารถสร้าง cert ได้ตามวิธีใน yelp => Advanced Topics => Install Server Applications แต่ไม่ต้อง config apache2.conf ถ้าไม่ต้องการใช้ https แต่ใช้ webmin https โดยไม่มีปัญหาเพราะมัน คอนฟิกของมันเองไม่เกี่ยวกับเว็บ

- การที่เราจะทำการเพิ่มการคอนฟิก เราควรเพิ่มคอนฟิกใน httpd.conf จะดีกว่าที่จะไปเพิ่มใน apache2.conf

- ถ้าเราจะเพิ่มใน apache2.conf ควรเพิ่มที่ท้ายไฟล์

เช่น ถ้าเราไปเพิ่มประโยคเนี๋ยกลางๆ ไฟล์ Options -Indexes อาจจะใช้ไม่ได้ (Options -Indexes คือ ไม่แสดงไฟล์แบบ Browser...)

# UserDir is now a module by jui
UserDir public_html
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options -Indexes SymLinksIfOwnerMatch IncludesNoExec
#Options -Indexes
</Directory>

No comments:

Post a Comment

Popular Posts