django: ใช้กับ apache2 บนเดเบียน
ลองติดตั้ง django เพื่อใช้งานกับ apache2 บนเดเบียน
เที่ยวนี้ทำไปบันทึกไป จึงไม่มีกำหนดเสร็จครับ
งานของ admin เจ้าของเซิร์ฟเวอร์
เอา django มาก่อน
# aptitude install subversion
# svn co http://code.djangoproject.com/svn/django/trunk/
ติดตั้ง django สู่ระบบ
# cd trunk
# python setup.py install
ลบซอร์ส หากไม่ต้องการดูโค๊ดของ django
# cd ..
# rm -rf trunk
กันเหนียวให้ apache2 เปิดมอดูล env
(ส่วนใหญ่จะเปิดมาอยู่แล้วมั้ง)
# a2enmod env
ติดตั้ง mod_python
และเปิดให้ใช้งาน
# aptitude install libapache2-mod-python
# a2enmod mod_python
งานของเรา เจ้าของเว็บ
สมมุติว่า admin ติดตั้ง ให้ DocumentRoot ของ apache2 สำหรับโดเมน www.example.com อยู่ที่ไดเรกทอรี่ของเรา /home/user1/www
และเราจะให้หน้าของ django ไปอยู่ที่ http://www.example.com/dj
มาที่ไดเรกทอรี่ของเราก่อน
$ cd ~/www
เริ่มโปรเจคต์ใหม่ชื่อ dj
$ django-admin.py startproject dj
ไปที่ไดเรคทอรี่ dj และเตรียมการให้ apache2 โดยการสร้างไฟล์ .htaccess
$ cd dj
$ vi .htaccess
SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv SERVER_ADMIN webmaster@example.com SetEnv DJANGO_SETTINGS_MODULE dj.settings PythonDebug On PythonPath "['/home/user1'] + sys.path" RewriteEngine On RewriteBase /dj/
เสร็จแล้ว ดูที่หน้า www.example.com/dj ได้ดังนี้
เพิ่มเติม
สำหรับการทำงานให้เต็มรูปแบบ ต้องสร้างหน้า admin ด้วย
การที่จะทำให้หน้า admin ทำงานได้สมบูรณ์ ต้องสร้างลิงก์โยงจากทรัพยากรของซอร์สมาที่ไดเรกทอรี่รากของ apache2 ด้วย
สมมุติถ้าใช้ไพธอน 2.4 บนเดเบียน
$ cd ~/www
$ ln -sf /usr/lib/python2.4/site-packages/django/contrib/admin/media/ .
สร้างหน้า admin โดยการลบคอมเมนต์ในไฟล์ dj/urls.py
$ cd dj
$ vi urls.py
... (r'^admin/', include('django.contrib.admin.urls')), ...
แต่ถ้าหากเราจะให้เพจของ django อยู่ในหน้า www.example.com/dj เราต้องแก้ไฟล์ด้วย
... (r'^dj/admin/', include('django.contrib.admin.urls')), ...
แต่...ก่อนจะใช้งานหน้า admin ได้ เราต้องสร้างฐานข้อมูลก่อน สมมุติว่าจะใช้กับ postgresql
สร้างฐานข้อมูลไว้รองรับ ตั้งชื่อว่า djdb
$ createdb djdb
Password: >>> --- USER1_PASSWORD
ปรับตั้งไฟล์ settings.py
ให้ django รับรู้ฐานข้อมูลและให้เรียกใช้มอดูล admin
$ vi settings.py
... DATABASE_ENGINE = 'postgresql' DATABASE_NAME = 'djdb' DATABASE_USER = 'user1' DATABASE_PASSWORD = 'USER1_PASSWORD' ... TIME_ZONE = 'Asia/Bangkok' ... LANGUAGE_CODE = 'th' ... INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', )
สั่งปรับปรุงฐานข้อมูล
$ python manage.py syncdb
Creating table auth_message Creating table auth_group Creating table auth_user Creating table auth_permission Creating table django_content_type Creating table django_session Creating table django_site Creating table django_admin_log You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): >>>--- yes Username (Leave blank to use 'user1'): >>>--- ENTER E-mail address: >>>--- user1@example.com Password: >>>--- USER1_PASSWORD Password (again): >>>--- USER1_PASSWORD Superuser created successfully. Installing index for auth.Message model Installing index for auth.Permission model Installing index for admin.LogEntry model
เสร็จแล้ว ดูจาก URL:http://www.example.com/dj/admin
จะได้ดังนี้
อ้างอิง
- Printer-friendly version
- Log in or register to post comments
- 6058 reads
Recent comments