8 July 2011

How to Config Apache Customize on Linux

    อันนี้ note ไว้กันลืม ครับ
ถ้าเกิดตอนลง apache2  แล้วเกิดข้อความแจ้งเตือนขึ้นมาดังนี้
-----------------------------------
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

วิธีแก้ไขคือ    1. ให้แก้ไขที่ /etc/host โดยใช้คำสั่ง vi /etc/hosts  แล้วให้ทำดังนี้


127.0.0.1    localhost
127.0.1.1    greanjub
ไปเป็น

127.0.0.1    localhost.local       localhost
127.0.1.1    greanjub.local       greanjub  (ตรงนี้เป็นชื่อเครื่องของเราเด้อ)



                  2. แก้ไขที่  vi /etc/apache2/httpd.conf แล้ว ปกติแล้ว ถ้าลงใหม่ๆ จะไม่มีข้อมูลอะไรเลยให้เพิ่ม 

            ServerName greanjub     (ตรงนี้เป็นชื่อเครื่องของเราเด้อ)

จากนั้นให้ทำการ restart apache2 โดยใช้คำสั่ง  /etc/init.d/apache2 restart  แค่นี้ก็จะไม่มีข้อความเตือนอีกแล้วครับ เรียบร้อยโรงเรียนไทยเลย ครับวัยล๊วน
-----------------------------------------------------------------------------------------------------------------------------------
-apache web server Hardening (เบื้องต้น)
                   group:: www-data, user:: www-data
                           /var/www   (default DecumentRoot)
                          /etc/apache2 (directory)
                                 conf.d  (sub-directory)
                                           charset  //file config กำหรดค่าตัวอักษรที่ใช้
                                     sercurity  //file config กำหนดค่า security
                                                             ตัวแปรที่สำคัญ
                                                            ServerTokens=Prod
                                                               ServerSignature = off
                                                            TracerEnable=off

                     mods-available (sub-directory) //Full modul
                     mods-enable (sub-directory) //modul บางส่วนของ apache2 $sudo a2enmod
                                           ถ้าต้องการ enable module ที่ต้องการ
                                  sudo a2enmod ____ <-(proxy cach)



                   site-available (sub-directory) //full site ถ้าต้องการเว็บอีกเว็บที่มากว่าเว็บเดิม ก็
                                                                         copy default ไปเป็นอีกชื่อหนึ่ง
                   site-enable    (sub-dircetory) // กรณีต้องการ สร้าง site เพิ่ม   $ sudo a2ensite
                                        ถ้าต้องการเปิด เว็บไซด์ ที่มากขึ้น
                                     sudo a2ensite ชื่อ------

  envvers    //file  กำหนดค่าตัวแปรระบบให้ apache
  magic
  apache2.conf    //file config
  httpd.conf    //file config แต่ ใน Ubuntu ไม่ใช่
// linux อื่นๆ ใช้ file นี้ file เดี๋ยวเก็บค่า config ทุกอย่าง
  ports.conf   // file config ใช้กำหนด port  number.

------------------------------------------------------------------------------------------------------
ถ้าต้องการ check PID
cat /var/run/apache2.pid
---------------------------------------------------------------------------------------------------------

หากต้องการ WebServer ของเรา ไม่ให้แสดง List Directory เมื่อ User เปิด index of ของเรา
ไปที่
nano /etc/apache2/site-available/default

...............................................
<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews (ให้ลบ Indexes  ทิ้งไปเด้อ)
                AllowOverride None
                Order allow,deny
                allow from all
</Directory>

...............
......ทำการ Save (Ctrl+O Enter) แล้ว Exit (Ctrl+X)   ทำการ Restart Apache โดย /etc/init.d/apache2 restart
--------------------------------------------------------------------------------------------------------

อยากตั้งค่าให้เว็บแสดงผลเป็นภาษาไทยโดย Auto แบบ UTF-8
ไปที่  nano /etc/apache2/conf.d/charset
ให้ เพิ่ม AddDefaultCharset UTF-8 ลงไป นะครับ^^
ทำการ Save (Ctrl+O Enter) แล้ว Exit (Ctrl+X)   ทำการ Restart Apache โดย /etc/init.d/apache2 restart
--------------------------------------------------------------------------------------------------------

การทำ Virtual Host ในเครื่อง windows นะครับ ^^

ทำความเข้าใจนิดหน่อย ว่าเป็นการทำ ให้ 1 IP มีหลาย Domain Name นะครับ

1.  เปิด C:\WINDOWS\system32\drivers\etc\hosts ใน Notepad โดยปกติ
        127.0.0.1   localhost
127.0.0.1 web.local (เพิ่มเข้าไปเท่าที่ต้องการเลยครับ)
127.0.0.1   web2.local
2. เปิด C:\AppServ\Apache2.2\conf\httpd.conf ทำการแก้ไขไฟล์โดย เอา # ออกครับ
#Virtual hosts
Include conf/extra/httpd-vhosts.conf

แล้วทำการ Save file
3.เปิด C:\AppServ\Apache2.2\conf\extra\httpd-vhosts.conf
------------------------------------------------------------------------
# You may use the command line option '-S' to verify your virtual host # configuration.
 

<Directory c:/AppServ/www>  
Order Deny,Allow  
Allow from all  
</Directory>  
<Directory d:/>  
Order Deny,Allow
Allow from all
</Directory>   
ถ้าเราไม่กำหนด ในข้างต้น เวลาเราเรียก ชื่อ Virtual host แล้วจะมีข้อความ ที่ Browser ครับ
Forbidden
You don't have permission to access /index.php on this server.



# Use name-based virtual hosting. 
#
  NameVirtualHost *:8088 (เปิด Port ที่ให้บริการครับ)  

# # VirtualHost example: 
# Almost any Apache directive may go into a VirtualHost container. 
# The first VirtualHost section is used for all requests that do not 
# match a ServerName or ServerAlias in any <VirtualHost> block. 
#
  <VirtualHost *:8088>
DocumentRoot c:/AppServ/www
ServerName localhost 
</VirtualHost>
<VirtualHost *:8088>
DocumentRoot c:/AppServ/www/21072011_5151001277
ServerName web.local (ชื่อ host URL)
</VirtualHost>
<VirtualHost *:8088>
DocumentRoot d:/21072011_5151001277
ServerName web1.local (ชื่อ host URL)
</VirtualHost>

จากกันให้ Save File

4. ให้ ทำการ Restart Service Apache  โดย จะ Restart คอมพิวเตอร์ก็ได้นะครับ อาจเสียเวลานิดหน่อย ถ้าไม่มีเวลาเพราะไม่มีนาฬิกาข้อมือใส่ก็ไม่เป็นไร ไปที่ Run แล้วพิมพ์ Cmd ให้พิมพ์
         C:/>net stop apach2.2
         C:/>net start apach2.2

5. น่าจะไม่มีปัญหาอะไร นะครับ น่าเกิดมันไม่ มี Error นะครับ   เรามาทดสอบโดยการเปิด Browser แล้วพิมพ์ ชื่อ Virtual host ที่ได้กำหนดไว้ นะครับ แค่นี้ก็เสร็จแล้วครับ สู้ๆๆ
----------------------------------------------------------------------------------------------