รวมเทคนิคการใช้งาน XAMPP บน Ubuntu

Tags: 

หลังจากที่ได้ลง XAMPP บนลินุกซ์เสร็จไปเมื่อวันก่อนเรียบร้อยแล้ว คราวนี้จะมารวบรวมทิปเทคนิคเล็กๆ น้อยๆ ในการใช้งาน XAMPP บน Ubuntu นะครับ (ลินุกซ์ดิสโทรอื่นก็อาจจะใช้ได้เหมือนกัน แต่อาจจะต้องปรับสักหน่อยนะครับ)

ปรับ permission ของ htdocs

โดยปกติ user ที่เป็นเจ้าของ /opt/lampp/htdocs ที่เอาไว้ใส่เว็บทดสอบของเราจะเป็น root ซึ่งทำให้เราจัดการไฟล์เว็บไม่สะดวก วิธีแก้ไขคือ ทำการเปลี่ยน permission ให้สามารถอ่าน/เขียนได้ทุกคน ด้วยคำสั่ง

sudo chmod 777 /opt/lampp/htdocs

เพียงแค่นี้เราก็สามารถจัดการไฟล์เว็บของเราผ่านทาง Nautilus (หรือตัว File Browser) ของเราได้แล้วครับ

ตั้งค่า XAMPP ให้เปิด services ทุกครั้งที่เปิดเครื่อง

โดยปกติถ้าเราต้องการใช้งาน XAMPP เราจะต้องมานั่งสั่งคำสั่งให้ XAMPP เปิด services เองทุกครั้ง แต่ถ้าต้องการให้ XAMPP เปิดเองทุกครั้งที่เปิดเครื่อง ให้พิมพ์คำสั่ง

sudo ln -s /opt/lampp/lampp /etc/init.d/lampp
sudo update-rc.d -f lampp defaults

แค่นี้ XAMPP ก็จะเปิด services เองทุกครั้งที่เปิดเครื่องใหม่แล้วครับ

ตั้งรหัสผ่านป้องกันเว็บเซิร์ฟเวอร์ให้กับ XAMPP

โดยปกติแล้ว XAMPP จะไม่ได้ตั้งรหัสผ่านป้องกันให้กับหน้าจอต้อนรับ, ฐานข้อมูล และ FTP แต่เราสามารถตั้งรหัสผ่านทั้งหมดด้วยคำสั่ง

sudo /opt/lampp/lampp security

เสร็จแล้ว XAMPP จะเริ่มถามให้เราตอบใส่รหัสผ่านทีละตัว

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes]
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Password protection active. Please use 'lampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes]
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes]
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] 
XAMPP: Write the password somewhere down to make sure you won't forget it!!!
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL root password.
XAMPP: Change phpMyAdmin's authentication method.
XAMPP: The FTP password for user 'nobody' is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes]
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Reload ProFTPD...
XAMPP: Done.

ทำ Virtual Host จำลองทดสอบบนเครื่องของเราเอง

สมมติว่าเราต้องการตั้งให้เครื่องเราทดสอบเหมือนกับอยู่บนเซิร์ฟเวอร์จริง เช่น เรารับจ้างทำเว็บไซต์ wingfoss.in.th โดยปกติแล้วเราคงต้องทดสอบบนเครื่องของเราเองด้วย URL http://localhost/wingfoss ก่อนอัพโหลดขึ้นเซิร์ฟเวอร์จริง แต่ถ้าอยากให้ทดสอบบน www.wingfoss.in.th เหมือนกับเว็บจริง แต่เป็นการรันบนเครื่องเราเอง ก็ต้องใช้เทคนิคตั้งค่าไฟล์ hosts + สร้าง virtual hosts บน XAMPP เข้ามาช่วย

ขั้นแรกต้องเซ็ต virtual hosts ให้กับ XAMPP ก่อน โดยให้แก้ไขไฟล์ /opt/lampp/etc/httpd.conf แล้วให้ลบคอมเมนท์ออกจากบรรทัด

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

ต่อมาให้แก้ไขไฟล์ /opt/lampp/etc/extra/httpd-vhosts.conf โดยให้ลบบรรทัดตั้งแต่ <VirtualHost *:80> ลงไปทั้งหมด แล้วใส่ค่าดังนี้แทน

<VirtualHost *:80>
    ServerAdmin webmaster@wingfoss.in.th
    DocumentRoot /opt/lampp/htdocs
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@wingfoss.in.th
    DocumentRoot /opt/lampp/htdocs/wingfoss.in.th
    ServerName wingfoss.in.th
    ServerAlias www.wingfoss.in.th
    ErrorLog logs/wingfoss.in.th-error_log
    CustomLog logs/wingfoss.in.th-access_log common
</VirtualHost>

อย่าลืมเปลี่ยนชื่อโดเมนให้เป็นตามเว็บที่เราจะทดสอบจริงๆ แทน

เสร็จแล้วให้เราสร้างโฟลเดอร์เว็บที่เราจะทดสอบจริงๆ ตามค่าใน DocumentRoot ด้วยคำสั่ง

mkdir -p /opt/lampp/htdocs/wingfoss.in.th/logs

(คำสั่งนี้ไม่ใช้ sudo เพราะว่า chmod ให้เป็น 777 ตามทิปการปรับ permission ข้างบนเรียบร้อยแล้ว)

เสร็จแล้วให้ restart XAMPP เพื่อรับค่าใหม่ของเราด้วยคำสั่ง

sudo /opt/lampp/lampp restart

ตอนนี้ XAMPP เราก็จะมี virtual hosts wingfoss.in.th และ www.wingfoss.in.th ที่จะไปเรียกเว็บจากพาธ /opt/lampp/htdocs/wingfoss.in.th/ เรียบร้อยแล้ว

สุดท้ายเราจะต้องตั้งค่า hosts ไฟล์ให้เวลาเรียก http://www.wingfoss.in.th จากเบราว์เซอร์ ให้มาเรียกเว็บจากเครื่องเราแทนที่จะเรียกจากเว็บจริง โดยให้แก้ไขไฟล์ /etc/hosts แล้วเพิ่มบรรทัดนี้เข้าไป

127.0.0.1       wingfoss.in.th www.wingfoss.in.th

เสร็จแล้วให้เราทดสอบด้วยการเปิดเบราว์เซอร์แล้วเรียกเว็บ www.wingfoss.in.th ก็จะพบว่ามีการเรียกเว็บจากเครื่องของเราแทน ก็เป็นอันเสร็จสิ้น

เพิ่มขนาดสูงสุดของการอัพโหลดไฟล์และหน่วยความจำด้วยการแก้ไขไฟล์ php.ini

ขนาดไฟล์ที่อัพโหลดสูงสุดของ XAMPP ที่ตั้งให้มาปกติจะอยู่ที่ 2MB เท่านั้น รวมถึงการใช้หน่วยความจำบน PHP แต่ถ้าเราต้องการอัพโหลดไฟล์ขนาดใหญ่มากกว่านั้น รวมถึงการแก้ไขให้ PHP สามารถใช้หน่วยความจำได้มากขึ้น ซึ่งจำเป็นสำหรับ CMS บางตัวที่ต้องใช้หน่วยความจำมากกว่าปกติ เช่น Drupal ให้เข้าไปแก้ไขไฟล์ /opt/lampp/etc/php.ini โดยให้แก้ที่บรรทัดข้างล่างนี้

; Maximum allowed size for uploaded files.
upload_max_filesize = 100M
; Maximum size of POST data that PHP will accept.
post_max_size = 100M
memory_limit = 64M      ; Maximum amount of memory a script may consume (8MB)

โดยที่ 100M คือขนาดการอัพโหลดสูงสุด รวมถึง 64M ที่หมายถึงขนาดหน่วยความจำที่ PHP สามารถใช้งานได้ เสร็จแล้วอย่าลืม restart services XAMPP ให้รับค่าใหม่ของเราด้วย

อัพเดต: (21/12/09) เพิ่มเทคนิคเพิ่มขนาดการอัพโหลดด้วยการแก้ไขไฟล์ php.ini

อัพเดต: (01/01/10) เพิ่มเทคนิคการเพิ่มหน่วยความจำให้ PHP ด้วยการแก้ไขไฟล์ php.ini

Comments

ขอถามหน่อยครับ ผมติดตั้ง

ขอถามหน่อยครับ

ผมติดตั้ง Ubuntu แบบ Dual Boot

แล้วใน Windows ผมได้ติดตั้ง Appserv ไว้และแก้ไขไฟล์ที่ชี้ไปยังโฟลเดอร์ C:\AppServ\www

เป็น D:\www

ส่วนใน Ubuntu ผมติดตั้ง Xampp และจะใช้โฟลเดอร์ www ร่วมกันจะได้หรือเปล่าครับ

ต้องไปแก้ไขสิทธิหรือเปลี่ยนแปลงการตั้งค่าอะไรบ้าง

ทีแรกผมคิดว่าจะไปแก้ไขไฟล์ httpd.config ใน Xampp ให้ชี้ไปที่ไดร์ฟที่เก็บโฟลเดอร์ www

แต่ใน Ubuntu ไม่มีชื่อไดร์ฟอย่าง Windows ที่ผมเก็บไว้ใน D:\www

และถ้าใช้ Path ให้ชี้ไปที่ \media\xxxxx\www แบบนี้

จะทำให้เรียกหน้า Splashscreen ของ Xampp ได้หรือเปล่าครับและมีผลอย่างไรบ้าง

มีวิธีที่จะทำยังไงได้บ้างครับขอคำแนะนำด้วยครับ

Add new comment