LAMP เป็นการติดตั้งโปรแกรมเพื่อทำหน้าที่เป็น Web Server, MySQL Server และ Python บน Linux เพื่อรองรับเว็บไซต์ที่พัฒนามาจากภาษา Python การติดตั้งทำได้ง่ายๆ ดังนี้ ตรวจสอบรุ่นของ Python กันก่อนด้วยคำสั่ง
python –version
ถ้าเป็นรุ่นอื่นๆนอกจาก Python 3 ให้ทำการตั้งค่าให้ Ubuntu 14.04 ใช้งาน Python 3 เป็นค่ามาตราฐานด้วยคำสั่ง
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python
ติดตั้ง PIP ด้วยคำสั่ง
sudo apt-get install python3-pip
ติดตั้ง MySQL ด้วยคำสั่ง
sudo apt-get install mysql-server
mysql_secure_installation
sudo pip3 install pymysql
ติดตั้ง Apache 2 ด้วยคำสั่ง
sudo apt-get install apache2
สร้างไดเร็กทอรี่เพื่อทำการทดสอบด้วยคำสั่ง
sudo mkdir /var/www/test
เปิดการทำงาน Python บน Apache ด้วยคำสั่ง
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork cgi
ทำการตั้งค่า Apache โดยการแก้ไขไฟล์ 000-default.conf ด้วยคำสั่ง
sudo nano /etc/apache2/sites-enabled/000-default.conf
โดยทำการเพิ่มเนื้อหาไฟล์ดังนี้
Restart Apache ด้วยคำสั่ง
sudo service apache2 restart
ทำการสร้างฐานข้อมูลเพื่อทำการทดสอบด้วยคำสั่ง
mysql -u root –p
CREATE DATABASE example;
USE example;
CREATE TABLE numbers (num INT, word VARCHAR(20));
กดปุ่ม CTRL+D ที่แป้นพิมพ์
ทำการสร้าง โปรแกรม Python ด้วยคำสั่ง
sudo nano /var/www/test/index.py
โดยมีเนื้อหาไฟล์ดังนี้
#!/usr/bin/python # Turn on debug mode. import cgitb cgitb.enable() # Print necessary headers. print("Content-Type: text/html") print() # Connect to the database. import pymysql conn = pymysql.connect( db='example', user='root', passwd='your_root_mysql_password', host='localhost') c = conn.cursor() # Insert some example data. c.execute("INSERT INTO numbers VALUES (1, 'One!')") c.execute("INSERT INTO numbers VALUES (2, 'Two!')") c.execute("INSERT INTO numbers VALUES (3, 'Three!')") conn.commit() # Print the contents of the database. c.execute("SELECT * FROM numbers") print([(r[0], r[1]) for r in c.fetchall()])
ทำการบันทึกและเปลี่ยนสิทธิการเข้าถึงไฟล์ด้วยคำสั่ง
sudo chmod 755 /var/www/test/index.py
เปิดเว็บเบราเซอร์แล้วไปที่ http://localhost ก็จ้ได้ผลลัพธ์ของโปรแกรมดังนี้
[(1, 'One!'), (2, 'Two!'), (3, 'Three!')]