วันนี้ลองติดตั้ง Apache 2.2 ใน FreeBSD 6.0 ดูนะ
กะว่าจะลองฟีเจอร์ใหม่ ที่เปลี่ยนวิธีการติดต่อกับ Apache Tomcat
จากเดิมที่เป็น mod_jk มาเป็น mod_proxy_ajp (Apache JServ Protocol)
แต่ว่าก็เจอข้อความแปลกๆ นิดหน่อย เนื่องจาก ตอนติดตั้ง
มันไม่ยอมเพิ่มชื่อโฮสต์ ไปไว้ในไฟล์ /etc/hosts นะ
ส่วนข้อความที่เจอ ก็คุ้นหน้าคุ้นตาดีในบางอัน แต่มีเพิ่มขึ้นมานิดหน่อยนะ เหอๆ และวิธีการติดตั้ง ก็ใช้แบบธรรมดาไปก่อน โดยผ่านพอร์ตนะ
# cd /usr/ports/www/apache22
# make install clean
แล้วก็รอซักพักนะ จากนั้นไปเพิ่มคอนฟิกที่ไฟล์ /etc/rc.conf เพื่อให้สามารถใช้งาน apache22 ได้
apache22_enable="YES"
จากนั้นก็ลองเริ่มการทำงาน แล้วก็จะเห็นข้อความดังนี้
# /usr/local/etc/rc.d/apache22.sh start
Performing sanity check on apache22 configuration:
httpd: apr_sockaddr_info_get() failed for apc.richdomain
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
apache22 not running? (check /var/run/httpd.pid).
Starting apache22.
httpd: apr_sockaddr_info_get() failed for apc.richdomain.
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Mon Dec 12 22:13:59 2005] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
#
ปัญหาก็คือ เรายังไม่ได้แก้ไขไฟล์ /usr/local/etc/apache22/httpd.conf ตรง ServerName นั่นเอง แต่จะมีตรงคำเตือนเล็กๆ น้อยๆ ในบรรทัดล่างสุดนะ httpready คืออะไรหว่า ยังไม่ได้อ่านดู เหอๆ แต่เอาให้มันสตาร์ทได้ก่อนล่ะกันนะ
ที่ไฟล์ /usr/local/etc/apache22/httpd.conf ตรงบรรทัด
#ServerName www.example.com:80
ก็แก้ให้เป็น
#ServerName www.example.com:80
ServerName localhost:80
หรือจะแก้ให้เป็นชื่อเครื่อง + โดเมน ก็ได้นะ
ServerName apc.richdomain:80
จากนั้นก็ลองรันอีกรอบนะ
# /usr/local/etc/rc.d/apache22.sh start
Starting apache22.
[Mon Dec 12 22:20:32 2005] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
ก็ประมาณนี้นะ เก็บบรรทัดล่างสุดเอาไว้ก่อนล่ะกัน ตรง httpready น่ะ :o)
อ่า ... มันยังรันไม่ได้แฮะ แต่ก็พอรู้ล่ะ ลองดูล็อกไฟล์ซักหน่อย
# tail -10 /var/log/httpd-error.log
[Mon Dec 12 23:02:44 2005] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon Dec 12 23:02:44 2005] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find
IPv4 address of "apc.richdomain."
Configuration Failed
สรุปก็คือ ต้องแก้ไขที่ไฟล์ /etc/hosts ให้เป็นชื่อโฮสต์ที่เราตั้งไว้ ตั้งแต่แรก
127.0.0.1 localhost localhost.richdomain apc.richdomain
จากนั้นก็ลองรันใหม่อีกรอบ
# /usr/local/etc/rc.d/apache22.sh start
Starting apache22.
ผ่านแฮะ
ส่วนข้อความที่เจอ ก็คุ้นหน้าคุ้นตาดีในบางอัน แต่มีเพิ่มขึ้นมานิดหน่อยนะ เหอๆ และวิธีการติดตั้ง ก็ใช้แบบธรรมดาไปก่อน โดยผ่านพอร์ตนะ
# cd /usr/ports/www/apache22
# make install clean
แล้วก็รอซักพักนะ จากนั้นไปเพิ่มคอนฟิกที่ไฟล์ /etc/rc.conf เพื่อให้สามารถใช้งาน apache22 ได้
apache22_enable="YES"
จากนั้นก็ลองเริ่มการทำงาน แล้วก็จะเห็นข้อความดังนี้
# /usr/local/etc/rc.d/apache22.sh start
Performing sanity check on apache22 configuration:
httpd: apr_sockaddr_info_get() failed for apc.richdomain
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
apache22 not running? (check /var/run/httpd.pid).
Starting apache22.
httpd: apr_sockaddr_info_get() failed for apc.richdomain.
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Mon Dec 12 22:13:59 2005] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
#
ปัญหาก็คือ เรายังไม่ได้แก้ไขไฟล์ /usr/local/etc/apache22/httpd.conf ตรง ServerName นั่นเอง แต่จะมีตรงคำเตือนเล็กๆ น้อยๆ ในบรรทัดล่างสุดนะ httpready คืออะไรหว่า ยังไม่ได้อ่านดู เหอๆ แต่เอาให้มันสตาร์ทได้ก่อนล่ะกันนะ
ที่ไฟล์ /usr/local/etc/apache22/httpd.conf ตรงบรรทัด
#ServerName www.example.com:80
ก็แก้ให้เป็น
#ServerName www.example.com:80
ServerName localhost:80
หรือจะแก้ให้เป็นชื่อเครื่อง + โดเมน ก็ได้นะ
ServerName apc.richdomain:80
จากนั้นก็ลองรันอีกรอบนะ
# /usr/local/etc/rc.d/apache22.sh start
Starting apache22.
[Mon Dec 12 22:20:32 2005] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
ก็ประมาณนี้นะ เก็บบรรทัดล่างสุดเอาไว้ก่อนล่ะกัน ตรง httpready น่ะ :o)
อ่า ... มันยังรันไม่ได้แฮะ แต่ก็พอรู้ล่ะ ลองดูล็อกไฟล์ซักหน่อย
# tail -10 /var/log/httpd-error.log
[Mon Dec 12 23:02:44 2005] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon Dec 12 23:02:44 2005] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find
IPv4 address of "apc.richdomain."
Configuration Failed
สรุปก็คือ ต้องแก้ไขที่ไฟล์ /etc/hosts ให้เป็นชื่อโฮสต์ที่เราตั้งไว้ ตั้งแต่แรก
127.0.0.1 localhost localhost.richdomain apc.richdomain
จากนั้นก็ลองรันใหม่อีกรอบ
# /usr/local/etc/rc.d/apache22.sh start
Starting apache22.
ผ่านแฮะ