
Beberapa klien yang menggunakan Drupal versi 8, 9. 10 dan 11 sudah memanfaatkan LiteSpeed Cache untuk Drupal yang tersedia di server hosting kami (hosting yang didukung LiteSpeed).
Apa yang dimaksud dengan LSCache?
LiteSpeed Cache (juga disebut LSCache) adalah jawaban LiteSpeed yang lebih efisien dan sangat mudah disesuaikan untuk Apache mod_cache dan Varnish.
LSCache dibangun dari bawah ke atas dan diintegrasikan ke dalam semua produk server LiteSpeed. Ia dapat:
- secara dramatis mempercepat konten situs web dinamis (seperti halaman PHP)
- memberikan penanganan yang lebih efisien untuk konten statis (seperti gambar)
- mengurangi beban server
Untuk pemasangan plugin LSCache di situs web, Anda dapat melihat halaman ini https://docs.litespeedtech.com/lscache/lscdrupal/installation/
Salah satu instruksinya adalah menambahkan kode ke .htaccess Drupal.
<IfModule LiteSpeed>
CacheLookup on
</IfModule>
Untuk instalasi website Drupal tanpa menggunakan Composer, mengubah .htaccess tidak akan menjadi masalah, tetapi jika kita menggunakan Composer untuk menginstal modul, tampaknya setiap kali Anda memperbarui atau menginstal modul melalui Composer, itu akan mereset .htaccess ke aslinya.
Di sini saya akan menjelaskan langkah-langkah bagaimana kita dapat mengatasi masalah ini.
Untuk memastikan bahwa kode tambahan (<IfModule LiteSpeed>CacheLookup on</IfModule>
) tidak hilang ketika menjalankan Composer, Anda dapat melakukan salah satu dari pendekatan berikut:
1. Gunakan Skrip Patch.htaccess
Buat skrip yang secara otomatis akan menerapkan kembali kode LiteSpeed kustom ke file .htaccess
setelah setiap pembaruan Composer. Hal ini dapat dilakukan dengan menulis skrip shell atau PHP sederhana dan mengeksekusinya setelah Composer berjalan.
Langkah-langkah:
- Buat skrip shell (
update-htaccess.sh
) dengan konten berikut ini:
#!/bin/bash
HTACCESS_FILE="web/.htaccess" # Adjust path if needed
LITESPEED_CODE="<IfModule LiteSpeed>
CacheLookup on
</IfModule>"
# Check if LiteSpeed code is already present
if ! grep -q "LiteSpeed" "$HTACCESS_FILE"; then
echo "$LITESPEED_CODE" >> "$HTACCESS_FILE"
echo "LiteSpeed code added to .htaccess"
fi
- Membuat skrip dapat dieksekusi:
chmod +x update-htaccess.sh
- Tambahkan skrip ke perintah pasca-pembaruan atau pasca-penginstalan Composer di file
composer.json
:
"scripts": {
"post-install-cmd": [
"bash update-htaccess.sh"
],
"post-update-cmd": [
"bash update-htaccess.sh"
]
}
Berikut dibawah ini saya uraikan skripnya dan menjelaskan cara kerjanya selangkah demi selangkah.
Skrip: `update-htaccess.sh
`
#!/bin/bash
HTACCESS_FILE="web/.htaccess" # Adjust path if needed
LITESPEED_CODE="<IfModule LiteSpeed>
CacheLookup on
</IfModule>"
# Check if LiteSpeed code is already present
if ! grep -q "LiteSpeed" "$HTACCESS_FILE"; then
echo "$LITESPEED_CODE" >> "$HTACCESS_FILE"
echo "LiteSpeed code added to .htaccess"
fi
Penjelasan:
1. #!/bin/bash
- Ini adalah baris “shebang”. Baris ini memberitahu sistem untuk mengeksekusi skrip menggunakan shell Bash. Ini memastikan bahwa ketika Anda menjalankan skrip, sistem mengetahui penerjemah mana yang akan digunakan.
2. HTACCESS_FILE="web/.htaccess
- Baris ini mendefinisikan sebuah variabel
HTACCESS_FILE
, yang menunjuk ke lokasi file `.htaccess` file. - Nilai
"web/.htaccess"
adalah jalur file ke file.htaccess
dalam proyek Anda. Sesuaikan jalur sesuai kebutuhan berdasarkan struktur proyek Drupal Anda. Jika.htaccess
Anda berada di root, Anda dapat mengubahnya menjadi.htaccess
.
3. LITESPEED_CODE="<IfModule LiteSpeed> CacheLookup on </IfModule>"
- Baris ini mendefinisikan variabel
LITESPEED_CODE
, yang menyimpan arahan LiteSpeed khusus yang ingin Anda tambahkan ke berkas.htaccess
. - Blok ini berisi kode:
<IfModule LiteSpeed>
CacheLookup on
</IfModule>
4. if ! grep -q "LiteSpeed" "$HTACCESS_FILE"; then
- Ini adalah awal dari pernyataan
if
. grep -q "LiteSpeed" "$HTACCESS_FILE"
memeriksa apakah berkas.htaccess
sudah berisi teks “LiteSpeed.” grep adalah perintah yang mencari pola di dalam berkas.- Opsi
-q
membuatgrep
berjalan dengan tenang, tanpa mencetak output apa pun. Perintah ini hanya mengembalikan nilai benar atau salah berdasarkan apakah teks “LiteSpeed” ditemukan. - Tanda
!
membalikkan hasilnya, yang berarti jika “LiteSpeed” tidak ditemukan di berkas.htaccess
, blok if akan berjalan.
5. echo "$LITESPEED_CODE" >> "$HTACCESS_FILE"
- Jika “LiteSpeed” tidak ditemukan dalam file
.htaccess
, baris ini akan dijalankan. - Perintah
echo
mengeluarkan isi variabelLITESPEED_CODE
(blok LiteSpeed) dan menambahkannya ke file.htaccess
. - Operator
>>
menambahkan teks ke akhir file.htaccess
. Jika Anda menggunakan>
, maka akan menimpa seluruh berkas, tetapi>>
memastikan Anda hanya menambahkan sampai akhir.
6. echo "LiteSpeed code added to .htaccess"
- Baris ini hanya mencetak pesan ke terminal untuk memberi tahu Anda bahwa kode LiteSpeed berhasil ditambahkan ke berkas
.htaccess
.
7. fi
- Ini menandai akhir dari pernyataan
if
. Jika “LiteSpeed” sudah ada di file.htaccess
, skrip akan melewatkan blok di dalamif
dan tidak ada yang berubah.
Tujuan dan Alur Kerja::
1. Memeriksa apakah kode LiteSpeed sudah ada:
- Skrip ini pertama-tama memeriksa apakah file
.htaccess
telah memiliki arahan LiteSpeed untuk menghindari duplikasi kode setiap kali Anda menjalankan skrip.
2. Tambahkan Kode LiteSpeed jika tidak ada:
- Jika direktif LiteSpeed tidak ada, skrip ini akan menambahkan kode khusus ke akhir file
.htaccess
.
3. Eksekusi Pasca-Komposer:
- Skrip ini dirancang untuk dijalankan setelah Anda menjalankan Composer (
composer install
ataucomposer update
). Karena menjalankan Composer dapat menimpa file.htaccess
, skrip ini memastikan bahwa kode LiteSpeed kustom Anda diterapkan kembali setelah setiap Composer dijalankan.
4. Otomatisasi dengan Composer:
- Anda dapat mengotomatiskan menjalankan skrip ini setelah perintah Composer dengan menambahkannya ke file
composer.json
Anda sebagai bagian dari hookpost-install-cmd
danpost-update-cmd
. Ini berarti skrip akan berjalan setiap kali Anda menginstal atau memperbarui dependensi Anda melalui Composer, memastikan kode LiteSpeed kustom Anda tetap terjaga.
Berikut adalah bagian yang relevan di composer.json
:
"scripts": {
"post-install-cmd": [
"bash update-htaccess.sh"
],
"post-update-cmd": [
"bash update-htaccess.sh"
]
}
Dengan cara ini, Anda tidak perlu mengingat untuk menjalankan skrip secara manual setiap kali menjalankan Composer. Prosesnya menjadi otomatis.
Kustomisasi:
- Penyesuaian Jalur File: Pastikan jalur ke file
.htaccess
(web/.htaccess
) sesuai dengan struktur proyek Anda. - Kode Tambahan: Jika Anda ingin menambahkan lebih banyak konfigurasi server khusus, cukup perbarui variabel
LITESPEED_CODE
.
Solusi ini memastikan bahwa konfigurasi LiteSpeed kustom Anda tetap dipertahankan bahkan ketika Composer memodifikasi atau mengganti file .htaccess
.
2. Menggunakan Templat .htaccess
You can maintain a custom .htaccess
template file that includes your custom LiteSpeed code and copy it over after Composer runs.
Steps:
- Create a file called
.htaccess.template
that includes both the default Drupal.htaccess
content and your custom LiteSpeed block. - After running Composer, copy this template back over the updated
.htaccess
:
cp .htaccess.template web/.htaccess
This can also be automated with a Composer post-update script.
3. Memodifikasi Perintah Instal Komposer untuk Mempertahankan .htaccess
Jika Anda ingin memastikan bahwa Composer tidak menimpa .htaccess
, Anda dapat menjalankan:
composer install --no-scripts
Ini akan mencegah Composer mengeksekusi skrip apa pun yang mungkin mengganti atau memperbarui berkas .htaccess
.
Dengan menggunakan salah satu dari pendekatan ini, kode LiteSpeed kustom Anda akan tetap berada di dalam berkas .htaccess
bahkan setelah Composer dijalankan.