Gentoo Logo

Panduan Upgrade Apache

Daftar Isi:

1.  Upgrade dari <2.2.6-r4

Ebuild apache telah menggunakan /etc/apache2/apache2-builtin-mods sejak lama untuk memilih modul-modul built-in selama proses kompilasi. Bagaimanapun juga, hal ini memiliki beberapa kekurangan:

  • Memilih modul-modul built-in selama proses instalasi awal berlangusng tidak dapat dilakukan
  • Portage tidak mengetahui modul apa saja yang telah terinstal. Hal ini akan sangat mengganggu, terutama untuk paket-paket binari
  • Portage akan mencoba untuk menimpa apache2-builtin-mods pada setiap proses upgrade

Untuk mengatasi masalah ini, /etc/apache2/apache2-builtin-mods telah dianggap usang dan diganti dengan variabel APACHE2_MODULES dan USE_EXPAND. Untuk mengkonversi pemilihan modul-modul yang telah anda lakukan ke format yang baru, jalankan perintah berikut:

Daftar Kode 1.1: Konversi apache2-builtin-mods ke APACHE2_MODULES

$ echo APACHE2_MODULES=\"$(sed '/^mod_/s/mod_\(.*\)\s\+\(shared\|static\)/\1/;t n;d;:n' /etc/apache2/apache2-builtin-mods)\" >> /etc/make.conf
# rm /etc/apache2/apache2-builtin-mods

(Sekarang anda dapat meng-upgrade apache dengan aman:)
# emerge -uva '>=www-servers/apache-2.2.6-r4'

Sebagai tambahan untuk APACHE2_MODULES flag USE lokal telah dihapuskan:

  • Semua flag USE MPM telah dipindahkan ke variabel APACHE2_MPMS dan USE_EXPAND
  • no-suexec sekarang menjadi suexec
  • static-modules menjadi static

Untuk mendapatkan penjelasan yang lebih lengkap tentang flag-flag USE lama dan penggantinya, bacalah bagian ini.

2.  Upgrade dari <2.0.52-r3

Pendahuluan

Keberadaan Apache dan modul-modulnya di gentoo telah menjadi suram. Ada beberapa masalah yang dapat menyebabkan masalah dukungannya menjadi lebih sulit:

  • Konfigurasi yang digunakan oleh Gentoo sangat jauh berbeda dengan konfigurasi dari pusat dan yang diperkirakan oleh user
  • Banyak modul yang menggunakan kode yang mirip, tetapi melakukan tugasnya masing-masing dengan cara yang berbeda
  • Kebanyakan modul tidak diurus dengan benar - biasanya karena banyaknya jumlah modul yang ada
  • Tidak adanya standar untuk konfigurasi modul
  • Sebagian modul dapat mendukung kedua versi Apache, tetapi ebuild tidak dapat menanganinya
  • Pilihan-pilihan yang tersedia di Apache tidak tersedia untuk pengguna Gentoo (misalnya MPM)
  • Bug-bug Apache semakin bertambah

Dokumen ini berisi cara-cara meng-upgrade Apache tanpa merusak sistem anda. Jika anda adalah pengembang atau ingin mengetahui apa saja yang telah berubah, atau bagaimana sebuah ebuild perlu dimodifikasi agar dapat memanfaatkan eclass kami, bacalah Referensi Pengembang Apache.

Upgrade

Telah banyak perubahan dalam hal cara kerja Apache di Gentoo. Setiap paket yang berhubungan langsung dengan Apache perlu di-update dan akan ada beberapa hal yang tadinya berfungsi jadi tidak berfungsi lagi.

Pertama anda perlu mengetahui paket-paket apa saja yang perlu anda upgrade. Anda dapat melakukannya dengan menggunakan tool equery yang merupakan bagian dari paket app-portage/gentoolkit.

Daftar Kode 2.1: Mencari paket-paket yang perlu di-update

$ equery depends www-servers/apache
[ Searching for packages depending on www-servers/apache... ]
dev-db/phpmyadmin-2.5.6
dev-php/mod_php-4.3.10
dev-php/phpsysinfo-2.1-r2
net-www/mod_bandwidth-2.0.5
net-www/mod_layout-4.0.1a
net-www/mod_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
www-apache/mod_ldap_userdir-1.1.4
www-apache/mod_loopback-1.04
www-apache/mod_watch-3.18
www-apps/viewcvs-0.9.2_p20030430

Penting: Paket-paket yang anda instal mungkin sangat berbeda dengan contoh di atas; jadi anda perlu menjalankan sendiri perintah tersebut.

Peringatan: Ada beberapa modul dan paket yang bergantung pada Apache tetapi belum di-update. Silakan mencarinya di bugzilla untuk mengetahui paket-paket penting yang anda gunakan dengan Apache.

Banyak aplikasi web yang tidak terpengaruh sama sekali karena kebanyakannya menggunakan eclass webapp yang telah menangani instalasinya. Anda mungkin perlu mengecek untuk mengetahui apakah sudah ada revisi baru.

Karena kami telah menambahkan beberapa flag USE baru, anda mungkin perlu memeriksanya kembali dan menambahkan baris-baris yang diperlukan di file /etc/portage/package.use. Bacalah Flag-flag USE yang didukung oleh Apache untuk mendapatkan keterangan yang lebih lengkap.

Daftar Kode 2.2: Memeriksa setting flag USE flag dan melakukan rebuild

(Periksa flag USE dan update-update yang diperlukan)
# emerge --pretend --verbose --update --newuse --deep apache subversion \
mod_php mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 \
mod_random mod_throttle mod_watch

(Update paket)
# emerge --verbose --update --newuse --deep apache subversion mod_php \
mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 mod_random \
mod_throttle mod_watch

(Mungkin akan lebih mudah untuk mengupdate world sekaligus ketimbang
update seperti di atas)
# emerge --ask --verbose --update --newuse --deep world

Sekarang anda perlu mengkonfigurasi ulang Apache dan modul-modulnya. Mulailah dengan etc-update atau dispatch-conf untuk meng-update file /etc/init.d dan /etc/conf.d. Anda akan melihat bahwa file-file konfigurasi apache anda tidak akan ditampilkan pada proses update - hal ini terjadi karena semua file-file konfigurasi telah dipindahkan.

Jika anda sebelumnya telah membuat perubahan pada file apache.conf dan commonapache.conf yang asli, anda perlu melakukan migrasi perubahan anda ke /etc/apache{|2}/httpd.conf. Konfigurasi untuk modul-modul dan virtual host juga telah dipindahkan -- semuanya sekarang terletak di /etc/apache2/modules.d dan /etc/apache2/vhosts.d.

Ketika anda telah selesai dengan migrasi, anda perlu menghapus file-file konfigurasi lama (atau memindahkannya ke sebuah lokasi yang aman). File /etc/init.d/apache{|2} yang baru akan memeriksa file-file ini dan tidak akan mengizinkan anda untuk menjalankan apache sebelum anda menghapusnya, yang menandakan bahwa anda telah mengkonfigurasi ulang apache dengan path-path yang baru.

Catatan: Banyak modul yang dulunya diaktifkan secara default sekarang telah dinonaktifkan. Jika modul-modul ini merupakan modul bawaan apache, maka hapuslah tanda komentar pada baris yang bersangkutan di httpd.conf. Namun jika modul-modul tersebut adalah modul eksternal, carilah IfDefine di file .conf lalu tambahkan namanya ke /etc/conf.d/apache{|2} untuk mengaktifkannya.

Sekarang anda boleh me-restart apache.

Daftar Kode 2.3: Restart apache

# /etc/init.d/apache stop
# /etc/init.d/apache start

Jika anda mendapatkan masalah, silakan baca Panduan Pemecahan Masalah Apache dan jika anda belum mendapatkan solusinya, silakan buat laporan di Bugzilla Gentoo. Jangan lupa untuk mencantumkan modul-modul apa saja yang telah anda aktifkan dan (jika anda menggunakan Apache 2) flag USE MPM apa saja yang telah anda gunakan ketika kompilasi (jika ada). Anda juga dapat bergabung dengan kami di channel #gentoo-apache di irc.freenode.net untuk mendapatkan bantuan.

3.  Flag-flag USE yang didukung oleh Apache <2.2.6-r4

Ada beberapa flag USE yang digunakan secara lokal oleh apache dan modul-modulnya. Apache mendukung beberapa flag USE biasa lainnya seperti ssl, tetapi pengaruhnya terhadap apache tidak terlalu berbeda dengan pengaruhnya terhadap paket-paket lain, jadi flag yang seperti itu tidak kami cantumkan pada daftar di bawah ini. Jalankan emerge --verbose --pretend apache untuk melihat daftar lengkap flag USE yang didukung oleh apache.

Flag USE Paket Penjelasan
apache2 Harus selalu di-set jika menggunakan baris Apache-2.0, tidak boleh di-set jika menggunakan baris Apache-1.3. eclass menggunakannya untuk menentukan versi apache yang mana yang akan dijadikan patokan
debug Mengaktifkan hook yang mengizinkan modul-modul eksternal untuk digunakan dan melakukan tugasnya setelah crash. Untuk saat ini sudah ada dua modul mod_whatkilledus dan mod_backtrace yang menggunakan hook ini.
doc Menginstal manual dan konfigurasi Apache
ldap Menginstal mod_ldap dan mod_auth_ldap
mpm-peruser Mengikutsertakan peruser MPM
mpm-prefork Mengikutsertakan prefork MPM
mpm-threadpool Mengikutsertakan threadpool MPM
mpm-worker Mengikutsertakan worker MPM
static-modules Membuat link statik dari modul ke binari apache, agar LoadModule tidak diperlukan untuk me-load modul-modul dasar ke Apache

Catatan: Walaupun terdapat banyak flag USE mpm-*, anda tidak dapat menggunakan semuanya secara bersamaan. Anda hanya boleh memilih salah satu dari flag USE mpm-*. (Jika anda tidak memilih apapun, maka mpm-prefork atau mpm-worker akan secara otomatis digunakan, tergantung apakah flag USE threads aktif atau tidak.)

4.  Flag-flag yang didukung di 2.2.6-r4 dan versi setelahnya

Dengan penambahan variabel APACHE2_MODULES, maka diperlukan adanya pembersihan flag-flag USE. Tabel berikut ini berisi daftar flag USE yang didukung oleh apache-2.2.6-r4 dan versi setelahnya, dengan persamaannya di versi-versi sebelumnya.

Flag USE Flag USE lama Penjelasan
debug debug Mengaktifkan hook yang dapat digunakan oleh modul-modul eksternal untuk melakukan tugasnya setelah terjadi crash. Saat ini sudah ada dua modul, mod_whatkilledus dan mod_backtrace, yang menggunakan hook ini.
doc doc Menginstal manual dan konfigurasi Apache.
ldap ldap Menginstal mod_ldap dan mod_authnz_ldap
ssl ssl Menginstal mod_ssl
static static-modules Mengaitkan modul-modul secara statik ke binari, agar LoadModule tidak diperlukan untuk memuat modul-modul dasar ke Apache.
suexec no-suexec Menginstall binari pembantu mod_suexec dan suexec
threads threads Memilih MPM default jika belum ada yang ditetapkan di APACHE2_MPMS

Tabel berikut ini berisi APACHE2_MPMS yang didukung sejak apache-2.2.6-r4 bersama flag USE lokal pada versi-versi terdahulu.

Flag Flag USE lama Penjelasan
event mpm-event Verian eksperimental dari MPM worker standar
itk mpm-itk Digunakan untuk menjalankan virtual host dengan uid dan gid\ masing-masing
peruser mpm-peruser Peruser adalah sebuah implementasi berhasil dari MPM perchild yang digunakan untuk menjalankan setiap anak proses apache dengan uid dan gid-nya sendiri, masing-masing menangani kumpulan virtual host-nya.
prefork mpm-prefork Implementasi webserver non-threaded, pre-forking
worker mpm-worker Modul multi-processing yang mengimplementasikan web server hibrid multi-threaded

Tabel berikut ini berisi flag USE yang didukung oleh APACHE2_MODULES sejak apache-2.2.6-r4.

Flag Penjelasan
actions Disediakan untuk mengeksekusi skrip CGI berdasarkan tipe media atau metode yang diminta
alias Untuk memetakan bagian-bagian dari filesystem host di pohon dokume, juga untuk pengalihan URL
asis Mengirimkan file-file yang berisi header HTTP
auth_basic Otentikasi dasar
auth_digest Otentikasi pengguna dengan menggunakan MD5 Digest Authentication
authn_alias Menyediakan fasilitas untuk menciptakan penyedia otentikasi ekstended berdasarkan penyedia asli
authn_anon Mengizinkan "anonymous" untuk mengakses area khusus
authn_dbd Otentikasi pengguna dengan memanfaatkan database SQL
authn_dbm Otentikasi pengguna dengan memanfaatkan file-file DBM
authn_default Modul otentikasi fallback
authn_file Otentikasi pengguna dengan memanfaatkan file-file teks
authz_dbm Otorisasi grup dengan memanfaatkan file-file DBM
authz_default Modul otorisasi fallback
authz_groupfile Otorisasi grup dengan menggunakan file-file teks biasa
authz_host Otorisasi grup berdasarkan host (nama atau alamat IP)
authz_owner Otorisasi berdasarkan kepemilikan file
authz_user Otorisasi pengguna
autoindex Menciptakan direktori indeks secara otomatis, mirip dengan perintah ls Unix
cache Tembolok isi dikunci ke URI
cern_meta CERN httpd metafile semantics
charset_lite Menentukan translasi/recode kumpulan karakter
dav Fungsionalitas Distributed Authoring and Versioning (WebDAV)
dav_fs Penyedia filesystem untuk mod_dav
dav_lock Modul pengunci umum untuk mod_dav
dbd Mengatur koneksi database SQL
deflate Memadatkan isi sebelum dikirimkan ke klien
dir Menyediakan pengalih "trailing slash" dan file-file indeks direktori
disk_cache Mengatur peyimpanan tembolok isi yang dikunci ke URI
dumpio Menumpahkan semua I/O ke log error sesuai yang diinginkan
env Merubah lingkungan yang dihantarkan ke skrip CGI dan halaman SSI
expires Membuat header Expires and Cache-Control HTTP dengan kriteria yang dibuat oleh pengguna
ext_filter Menyampaikan respon melalui program eksternal sebelum disampaikan ke klien
file_cache Menyimpan daftar tetap file di memori
filter Modul konfigurasi penyaring yang sensitif dengan isi
headers Kustomisasi heaeder permintaan dan respon HTTP
ident Pencarian ident RFC 1413
imagemap Pemrosesan imagemap di server
include Server-parsed html documents (Server Side Includes)
info Menyediakan tinjauan komperhensif tentang konfigurasi server
log_config Pencatatan permintaan yang disampaikan ke server
log_forensic Forensic Logging dari permintaan yang disampaikan ke server
logio Pencatatan byte input dan output untuk setiap permintaan
mem_cache TEmbolok isi dikunci ke URI
mime Mengasosiasikan ekstensi nama file yang diminta dengan tingkah-laku file (pengendali dan penyaring) dan isi (mime-type, bahasa, set karakter dan encoding)
mime_magic Menentukan mime-type sebuah file dengan cara melihat beberapa byte dari isinya
negotiation Menyediakan negosiasi isi
proxy Server proxy/gateway HTTP/1.1
proxy_ajp Modul dukungan AJP untuk mod_proxy
proxy_balancer ekstensi mod_proxy untuk load balancing
proxy_connect ekstensi mod_proxy untuk pengendali permintaan CONNECT
proxy_ftp Modul dukungan FTP untuk mod_proxy
proxy_http Modul dukungan HTTP untuk mod_proxy
rewrite Menyediakan rewriting engine berbasis aturan untuk menulis ulang URL yang diminta secara langsung
setenvif Dapat digunakan untuk mengatur variabel-variabel lingkungan berdasarkan karakteristik permintaan
spelling Mencoba memperbaiki URL salah yang diberikan oleh pengguna dengan mengabaikan kapitalisasi dan dengan mengzinkan maksimal satu kesalahan penulisan
status Menyediakan informasi tentang aktivitas dan performa server
unique_id Menyediakan variabel lingkungan dengan sebuah pengenal khusus untuk setiap permintaan
userdir Direktori khusus pengguna
usertrack Clickstream logging dari aktifitas pengguna di situs
version Konfigurasi untuk versi tertentu
vhost_alias Menyediakan fasilitas untuk mass virtual hosting dinamis


Print

Diperbarui 11 Desember 2007

Versi asli dari dokumen ini terakhir diupdate 11 Desember 2007

Rangkuman: Dokumen ini menjelaskan seluruh prosedur yang harus diikuti oleh pengguna untuk meng-upgrade instalasi apache dengan aman.

Michael Stewart
Author

Benedikt Boehm
Editor

Joshua Saddler
Editor

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.