Tag Archive Apache

Byphunsanit

จัดระเบียบเซิร์ฟเวอร์

ในครั้งแรกที่เราเรียนเขียนเว็บจะถูกสอนให้เก็บไฟล์ ในโฟลเดอร์ public_html หรือ www เพื่อจะได้เรียกใช้ได้จากเว็บ พอเว็บเราโตขึ้นมันทำให้สับสน และมีปัญหาตามมา เช่น

  1. จากที่อาจจะมีแค่ joomla อยู่อย่างเดียว ก็จะใส่ phpbb เพิ่มเข้าไป ถ้าไม่ย้ายไฟล์ joomla ไปไว้ใน folder ย่อย ก็ต้องใส่ phpbb ไปใน folder ย่อยเวลาจะเรียกใช้ก็เรียก domain1.com/phpbb  ถ้าไม่ถูกใจ phpMyAdmin ตัวเก่าๆที่ติดมากับโฮสต์ จะใช้ตัวใหม่ก็สร้าง folder phpMyAdmin ขึ้นมา ไปเรื่อยๆ แล้วมันจะมีปัญหาอะไรละ
    • ถ้าจะเปลี่ยนจากจูมล่าเป็น wordpress ก็ต้องมาหาว่า folder นี้เป็นของ joomla นะ ต้องดูให้แน่ใจว่ามันไม่ถูกใช้โดยโปรแกรมเมอร์ จะทิ้งไว้ก็เสียพื้นที่ไปเปล่าๆ
    • การ update อัตโนมัติของบางโปรแกรมอย่าง prestashop ให้วิธีลบทั้งโฟลเดอร์ออกไปทั้งหมด แล้วแตกไฟล์เข้าไปใหม่ ถ้าใน folder นั้นๆ มีไฟล์ของโปรแกรมอื่นละ มันก็ล่มโดยที่เราไม่รู้ตัว
    • บางครั้งโปรแกรมต้องใช้การ config ที่ต่างกัน อย่าง joomla จะเตือนถ้าพบว่า magic_quotes_gpc  เปิดอยู่ แต่โปรแกรมโบราณต้องเปิดไว้ ถ้าเราก็บแยกโพลเดอร์ก็สามารถใช้ .htaccess เปิดปิดได้ตามความต้องการ
  2. จะสร้างเว็บใหม่ ใช้ joomla เหมือนกัน ไว้ที่เดียวกัน บางครั้งสับสน ว่าโพลเดอร์นี้ เป็นของโดเมนไหน

ถ้าเราเก็บไฟล์โดยใช้รูปแบบ public_html/domain1.com, public_html/domain2.com, public_html/ domain3.com ก็จะแก้ปัญหาข้อ 2 ได้

ในแต่ละ domain ก็แบ่งย่อยเป็น joomla, phpbb อีก ให้โปรแกรมแต่ละตัวแยกอิสระต่อกัน

แต่ การที่จะให้ผู้ใช้ลูกค้าของเราดูเว็บ แบบ http://domain1.com/domain1.com/Joomla คงไม่ดีแน่ ทั้งในเรื่องความสะดวกและ SEO เราสามารถใช้ ไฟล์ .htaccess  point ชี้ root diretory ให้เราใหม่

  1. เปิดไฟล์ .htaccess ในโฟลเดอร์ public_html  ถ้าไม่มี ก็สามารถสร้างขึ้นมาใหม่ได้ ด้วย โปรแกรม notepad แล้ว save เป็นชื่อ .htaccess ตรง Save As Type เลือกเป็น All Files (*.*)
  2. พิมพ์ ตามตัวอย่างเลยครับ
    # BlueHost.com
    # .htaccess main domain to subdirectory redirect
    # Do not change this line.
    RewriteEngine on
    # Change example.com to be your main domain.
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    # Change 'subdirectory' to be the directory you will use for your main domain.
    RewriteCond %{REQUEST_URI} !^/subdirectory/
    # Don't change the following two lines.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Change 'subdirectory' to be the directory you will use for your main domain.
    RewriteRule ^(.*)$ /subdirectory/$1
    # Change example.com to be your main domain again.
    # Change 'subdirectory' to be the directory you will use for your main domain
    # followed by / then the main file for your site, index.php, index.html, etc.
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    RewriteRule ^(/)?$ subdirectory/index.html [L]
    	

    copy คู่มือของเซิร์ฟเวอร์มานั่นละ แต่กลัวลืมเลยขอ note ไว้หน่อยหนึ่ง

  3. แก้ example.com เป็น domain ของเรา แก้ subdirectory เป็นโฟลเดอร์ของเรา
  4. ทดลองเข้า โดเมน domain ของเรา จะพบว่าเราเห็นไฟล์ในโฟลเดอร์ subdirectory อีกชั้นหนึ่งไม่ใช่ ตัว public_html