Panduan Upgrade Apache
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
# 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 |
# 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
# 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
# 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 |
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|