บันทึกการอัปเกรด apache2.2 และ php5 บน etch

 

# aptitude update
# aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common
# aptitude install php5 php5-cgi php5-commonphp5-curlphp5-gd php5-mcrypt php5-mysql php5-odbc php5-pgsql php5-xmlrpc
# aptitude install libapache2-mod-php5

ช่วงนี้ aptitude ของ etch เป็นอะไรไม่รู้ ชอบติดตั้งไฟล์ไม่ครบ
(อาจเป็นที่ apt-proxy)
แก้ไขแพกเกจติดตั้งไฟล์ไม่ครบ โดยการแตกไฟล์โดยไม่ติดตั้ง ไปยัง /
# dpkg-deb -x /var/cache/apt/archives/apache2.2-common_2.2.3-3.1_i386.deb /

# aptitude install mysql-client-5.0 mysql-common mysql-server-5.0 phpmyadmin

บันทึกการเปิดโมดูลแบบน้อยสุด module-minimal
# a2enmod actions
# a2enmod alias
# a2enmod authz_host
# a2enmod cgi
# a2enmod dir
# a2enmod mime
# a2enmod php5
# a2enmod rewrite
# a2enmod status
# /etc/init.d/apache2 restart

บันทึกการเปิดใช้โมดูลแบบปกติ module-normal
# a2enmod alias
# a2enmod auth_basic
# a2enmod authn_file
# a2enmod authz_default
# a2enmod authz_groupfile
# a2enmod authz_host
# a2enmod authz_user
# a2enmod autoindex
# a2enmod cgi
# a2enmod dir
# a2enmod env
# a2enmod mime
# a2enmod mod_python
# a2enmod negotiation
# a2enmod php5
# a2enmod setenv
# a2enmod status
# /etc/init.d/apache2 restart

เอา php.ini จากตัวอย่างแบบ recommended มาใช้
# cp /usr/share/doc/php5/examples/php.ini-recommended /etc/php5/apache2/php.ini

แก้จะให้ใช้ได้กับ drupal
# vi /etc/php5/apache2/php.ini

...
; หน่วยความจำที่ยอมให้สคริปต์รันได้
; เก่าเป็น 8M drupal แนะนำ 12M เราใช้ 16M กันเหนียว
memory_limit = 16M ; Maximum amount of memory a script may consume (8MB)
...
; ตัวแปรเป็น global อัตโนมัติ
; อันนี้ก็กันเหนียว ตอนเขียนโค๊ดเรี่ยราดไว้หลายที่ เก่าเป็น Off เราแก้เป็น On
register_globals = On
...
; ขนาดไฟล์ใหญ่สุด ที่ post ได้
; อันนี้จำได้แม่น หน้าแตกเพราะเอา Bon Echo เข้าไม่ได้ เก่าเป็น 8M แก้เป็น 20M
post_max_size = 20M
...
; adodb ไม่ต้องก็ได้
include_path = ".:/usr/share/php5:/usr/share/php4:/usr/share/php/adodb"
...
; ค่าแนะนำของ drupal
session.save_handler = user
...
; ค่าแนะนำของ drupal
session.cache_limiter = none
...

ส่วนของไซต์ ถ้ามีหลายไซท์ ควรแยกไฟล์ออกมาวางไว้ที่ /etc/apache2/site-available
เวลาจะเปิดใช้งานก็ใช้คำสั่ง a2ensite
เช่นไซต์ example.com
# vi /etc/apache2/sites-available/example.com

<VirtualHost *:80>
  ServerAdmin webmaster@example.com
  ServerName www.example.com

  DocumentRoot /var/www/www.example.com/
  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>
  <Directory /swww2/var/www/www.thaitux.info/>
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.html index.php
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/log/apache2/error.log

  LogLevel warn

  CustomLog /var/log/apache2/access.log combined
  ServerSignature On
</VirtualHost>

เปิดใช้งานด้วยคำสั่ง
# a2ensite example.com
# /etc/init.d/apache2 restart