Pada saat konfigurasi shared hosting di Debian ada beberapa paket yang harus di install kecuali

Wednesday, 11 May 2016

Kontrol panel hosting menyediakan solusi elegan sebagai host dari beberapa situs website yang berjalan pada Share hosting, VPS (Virtual Private Server) dan Dedicated Server. Kontrol panel hosting semacam ini menawarkan kemudahan untuk mengelola perangkat lunak berbasis web untuk menyederhanakan proses penanganan server, tanpa perlu memiliki pengetahuan akan server administration.

Kontrol panel yang paling populer saat ini dan kuat brandingnya adalah cPanel dan Plesk. Kedua kontrol panel ini merupakan aplikasi berbayar yang dibayar setiap bulan bagi sebuah provider hosting untuk di install dalam servernya. Namun untungnya, ada beberapa kontrol panel alternatif yang bersifat open source yang tersedia untuk di download secara gratis dengan fitur hampir sama dengan yang berbayar, yaitu sebagai berikut:

1. Cpanel

Cpanel Adalah kontrol panel hosting yang berbasis Unix/Linux. Antarmuka grafisnya membantu Anda untuk mengelola website beserta account hosting Anda dengan sangat mudah dan cepat. Cpanel memberi Anda akses penuh atas berbagai elemen pengaturan dari situs web dan administrasi hostingnya melalui web browser misalnya seperti Membuat database, membuat account email, auto responder, dan mengelola file website.

2. Plesk

Plesk adalah control panel hosting yang mirip dengan cPanel. Plesk memungkinkan Anda untuk mengelola account hosting Anda melalui antarmuka berbasis web. Anda dapat menginstall kontrol panel ini didalam VPS atau dedicated server. Plesk juga memungkinkan Anda untuk mengontrol ribuan virtual host dalam satu mesin. Kontrol panel memungkinkan Anda untuk mengotomatisasi banyak tugas yang pada gilirannya mengurangi biaya dan sumber daya. Hal ini juga meningkatkan profitabilitas, efisiensi dan kepuasan pelanggan.

Fitur yang ditawarkan oleh Plesk, yaitu seperti berikut ini:

1. Membuat akun FTP. 2. Mengelola dan membuat akun email dan database seperti MySQL dan PsotgreSQL. 3. Menambahkan domain dan subdomain. 4. Restore dan Backup data.

5. Mengelola DNS dan sumber daya lainnya.

3. ISPConfig

ISPConfig adalah kontrol panel open source multi bahasa yang memungkinkan Anda untuk mengelola beberapa server di bawah satu kontrol panel. ISPConfig berlisensi di bawah lisensi BSD. Kontrol panel open source ini juga mampu mengelola FTP, SQL, BIND DNS, database dan virtual server.

Fitur yang disediakan oleh ISPConfig adalah seperti berikut ini:

1. Dapat memanage lebih dari satu server dari satu panel kontrol. 2. Antarmuka web yang memudahkan untuk administrator, reseller dan klien login. 3. Mendukung webserver seperti Apache dan Nginx. 4. Konfigurasi mirroring dan cluster. 5. Mengelola akun email dan FTP.

6. Dan masih banyak lagi

4. Kloxo

Kloxo adalah salah satu kontrol panel website yang terbilang canggih dan disediakan secara gratis untuk distro Redhat dan CentOS. Memiliki fitur seperti FTP, spam filter, PHP, Perl, CGI, dan banyak lagi. Fitur seperti Messaging, Backup restore dan modul Ticketing juga tersedia dalam kontrol panel tersebut. Ini membantu user untuk mengelola/menjalankan kombinasi Apache dengan BIND, dan beralih antarmuka antara program ini tanpa kehilangan data Anda.

5. Zpanel

Zpanel adalah kontrol panel hosting yang disediakan secara gratis dan sangat mudah digunakan pada kontrol panel webhosting kelas enterprise seperti Linux, UNIX, MacOS, dan Microsoft Windows. Zpanel ditulis dalam bahasa PHP murni dan berjalan dengan baik pada Apache, PHP dan MySQL. Muncul dengan serangkaian fitur inti penting untuk menjalankan layanan hosting web Anda. Fitur inti tersebut meliputi Apache Web Server, hMailServer, FileZilla Server, MySQL, PHP, Webalizer, RoundCube, phpMyAdmin, phpSysInfo, FTP Jailing dan masih banyak lagi.

6. Webmin

Webmin merupakan kontrol panel webhosting yang powerfull dan sangat fungsional. Software yang dirancang untuk platform Unix dan Linux dengan cara yang sederhana. Webmin cukup mampu untuk mengelola berbagai komponen lingkungan berbasis web dari pengaturan webserver untuk maintaining FTP dan Email Server.

Fitur yang disediakan pada Webmin, adalah sebagai berikut:

1. Mengkonfigurasi dan membuat server virtual pada Apache. 2. Mengelola, menginstal atau menghapus paket perangkat lunak (RPM format). 3. Untuk keamanan, Anda dapat menyetting fitur firewall. 4. Mengubah pengaturan DNS, alamat IP, konfigurasi routing.

5. Mengelola database, tabel dan field MySQL.

7. EHCP

EHCP (Easy Hosting Control Panel) adalah software kontrol panel gratis untuk menjaga server hosting berbasis web. Dengan penggunaan EHCP Anda dapat mengelola database MySQL, account email, account domain, account FTP dan banyak lagi. Ini adalah satu-satunya control panel yang telah built-in support untuk Nginx dan PHP-FPM yang tidak menggunakan Apache dan memberikan kinerja yang baik untuk server low end.

8. DTC

Domain Technologie Control (DTC) adalah control panel hosting terutama untuk admin dan akuntansi layanan hosting GPL. Dengan bantuan interface web berbasis GUI, DTC dapat mendelegasikan tugas seperti membuat email, account FTP, subdomain, database dan banyak lagi. Ia mengatur database MySQL yang berisi semua informasi hosting.

9. Interworx

Interworx adalah sistem manajemen server Linux dan kontrol panel webhosting. Interworx memiliki seperangkat tool yang memberikan kewenangan administrator untuk memerintah servernya sendiri dan end user dapat melihat atau meninjau hasil pengelolaan website mereka. Kontrol panel ini pada dasarnya dibagi menjadi dua mode operasi, yaitu:

1. Nodeworx, yaitu modus administrator yang membantu mengelolaan server.

2. SiteWorx, yaitu website owner view yang membantu end users untuk mengelola account mereka hosting dan fitur-fitur didalamnya.

10. Ajenti

Ajenti merupakan satu – satunya kontrol panel berbasis open source yang kaya fitur, kuat dan ringan. Kontrol panel yang menyediakan antarmuka web responsif untuk mengelola server kecil set-up dan juga paling cocok untuk Dedicated dan VPS hosting. Muncul dengan banyak built-in plugin untuk mengkonfigurasi dan mengelola perangkat lunak server dan layanan seperti Apache, Nginx, MySQL, FTP, Firewall, File System, Cron, Munin, Samba, Squid dan banyak program lainnya seperti File Manager, Kode Editor untuk developer serta akses Terminal.

Dari daftar diatas Anda dapat memilih yang terbaik, yang sesuai dengan kebutuhan Anda. :-)

Pada saat konfigurasi shared hosting di Debian ada beberapa paket yang harus di install kecuali

The Falcot Corp administrators decided to use the Apache HTTP server, included in Debian Bullseye at version 2.4.52.

Memasang paket apache2 adalah semua yang diperlukan. Ini berisi semua modul, termasuk Multi-Processing Modules (MPM) yang mempengaruhi bagaimana Apache menangani pemrosesan paralel dari banyak permintaan, yang biasanya disediakan dalam paket terpisah apache2-mpm-*. Ini juga akan menarik apache2-utils yang mengandung utilitas baris perintah yang kita akan temui nanti.

MPM yang digunakan secara signifikan mempengaruhi cara Apache menangani permintaan bersamaan. Dengan MPM worker, itu menggunakan thread (proses ringan), sedangkan dengan MPM prefork itu menggunakan kumpulan proses yang dibuat terlebih dahulu. Dengan MPM event ini juga menggunakan thread, tapi koneksi yang tidak aktif (terutama yang terus dibuat terbuka dengan fitur HTTP keep-alive) diserahkan kembali ke manajemen thread yang terdedikasi.

The Falcot administrators also install libapache2-mod-php so as to include the PHP 7.4 support in Apache. This causes the default event MPM to be disabled, and prefork to be used instead. To use the event MPM one can use php-fpm.

Apache adalah server yang modular, dan banyak fitur dilaksanakan oleh modul eksternal yang dimuat oleh program utama saat inisialisasinya. Konfigurasi standar hanya memfungsikan modul-modul yang paling umum, tetapi memfungsikan modul cukup dengan menjalankan a2enmod modul; untuk menonaktifkan modul, perintahnya adalah a2dismod modul. Program ini benar-benar hanya membuat (atau menghapus) link simbolik di /etc/apache2/mods-enabled/ menunjuk pada file yang sebenarnya (yang disimpan dalam /etc/apache2/mods-available/).

Dengan konfigurasi bakunya, server web mendengarkan pada port 80 (seperti yang dikonfigurasi di /etc/apache2/ports.conf), dan menyajikan halaman dari direktori /var/www/html/ (seperti yang dikonfigurasi di /etc/apache2/sites-enabled/000-default.conf).

11.2.2. Menambahkan dukungan untuk SSL

Apache 2.4 termasuk modul SSL (mod_ssl) yang diperlukan untuk HTTP yang aman (HTTPS) secara baku. Hanya perlu diaktifkan dengan a2enmod ssl, kemudian direktif yang diperlukan harus ditambahkan ke berkas konfigurasi. Contoh konfigurasi tersedia di /etc/apache2/sites-available/default-ssl.conf.

→ https://httpd.apache.org/docs/2.4/mod/mod_ssl.html

SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN/chain.pem SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt

Some extra care must be taken if you want to favor SSL connections with Perfect Forward Secrecy (those connections use ephemeral session keys ensuring that a compromise of the server's secret key does not result in the compromise of old encrypted traffic that could have been stored while sniffing on the network). Have a look at Mozilla's recommendations in particular:

→ https://wiki.mozilla.org/Security/Server_Side_TLS#Apache

As an alternative to the standard SSL module, there is an extension module called mod_gnutls, which is shipped with the libapache2-mod-gnutls package and enabled with the a2enmod gnutls command. Unfortunately the version packaged for Debian had serious issues and even security implications and is therefor not part of the Debian Bullseye release.

→ https://mod.gnutls.org/

11.2.3. Mengkonfigurasi Host Virtual

Suatu host virtual adalah identitas tambahan untuk server web.

Apache menganggap dua macam host virtual: yang didasarkan pada alamat IP (atau port), dan yang mengandalkan nama domain dari server web. Metode pertama memerlukan mengalokasikan alamat IP yang berbeda (atau port) untuk setiap situs, sedangkan yang kedua dapat bekerja pada satu alamat IP (dan port), dan situs dibedakan oleh nama host yang dikirim oleh klien HTTP (yang hanya bekerja di versi 1.1 dari protokol HTTP — untungnya versi tersebut sudah cukup tua sehingga semua klien sudah menggunakannya).

(Semakin) langkanya alamat IPv4 biasanya lebih mengarah ke metode kedua; namun, itu dibuat lebih kompleks jika host virtual perlu menyediakan HTTPS juga, karena protokol SSL tidak selalu disediakan untuk berbasis nama virtual hosting; ekstensi SNI (Server Name Indication) yang memungkinkan kombinasi tersebut tidak ditangani oleh semua browser. Ketika beberapa situs HTTPS perlu menjalankan pada server yang sama, mereka akan biasanya dibedakan baik dengan berjalan pada port lain atau pada alamat IP yang berbeda (IPv6 dapat membantu di sana).

Konfigurasi default untuk Apache 2 memfungsikan host virtual berbasis nama. Selain itu, sebuah host virtual default didefinisikan dalam berkas /etc/apache2/sites-enabled/000-default.conf; host virtual ini akan digunakan jika tidak ditemukan host yang cocok dengan permintaan yang dikirim oleh klien.

Masing-masing host virtual ekstra ini kemudian digambarkan oleh sebuah berkas yang disimpan dalam /etc/apache2/situs-available/. Maka menyiapkan sebuah situs web untuk domain falcot.org adalah cukup dengan sekedar membuat berkas berikut, kemudian memfungsikan host virtual dengan a2ensite www.falcot.org.

Contoh 11.13. Berkas /etc/apache2/sites-available/www.falcot.org.conf

<VirtualHost *:80> ServerName www.falcot.org ServerAlias falcot.org DocumentRoot /srv/www/www.falcot.org </VirtualHost>

Apache server, yang dikonfigurasi sejauh ini, menggunakan berkas log yang sama untuk semua host virtual (walaupun ini bisa diganti dengan menambahkan direktif CustomLog dalam definisi host virtual). Maka masuk akal untuk menyesuaikan format berkas log ini agar menyertakan nama host virtual. Ini dapat dilakukan dengan menciptakan sebuah berkas /etc/apache2/conf-available/customlog.conf yang menentukan format baru untuk semua berkas log (dengan direktif LogFormat) dan memfungsikannya dengan a2enconf customlog . Baris CustomLog harus juga akan dihapus (atau dijadikan komentar) dari berkas /etc/apache2/sites-available/000-default.conf.

Contoh 11.14. Berkas /etc/apache2/conf-available/customlog.conf

# Format log baru termasuk nama host (virtual) LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost # Sekarang mari kita pakai format "vhost" ini secara baku CustomLog /var/log/apache2/access.log vhost

Bagian ini mengulas secara singkat beberapa direktif konfigurasi Apache yang sering digunakan.

Berkas konfigurasi utama biasanya memuat beberapa blok Directory blok; mereka memungkinkan menentukan perilaku yang berbeda untuk server tergantung pada lokasi berkas yang diminta. Blok tersebut umumnya memuat direktif Options dan AllowOverride.

Contoh 11.15. Blok direktori

<Directory /srv/www> Options Includes FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>

Direktif DirectoryIndex berisi daftar berkas yang akan dicoba ketika permintaan klien cocok dengan suatu direktori. Berkas pertama yang ada dalam daftar digunakan dan dikirim sebagai respon.

Direktif Options diikuti oleh daftar pilihan yang diaktifkan. Nilai None menonaktifkan semua pilihan; sejalan dengan itu, All memfungsikan mereka semua kecuali MultiViews. Pilihan yang tersedia meliputi:

  • ExecCGI menunjukkan bahwa skrip CGI dapat dijalankan.

  • FollowSymlinks memberitahu server bahwa taut simbolik dapat diikuti, dan bahwa respon harus berisi isi dari target taut tersebut.

  • SymlinksIfOwnerMatch also tells the server to follow symbolic links, but only when the link and its target have the same owner.

  • Includes memfungsikan Server Side Includes (disingkat SSI). Ini adalah direktif yang tertanam di halaman HTML dan dieksekusi sambil jalan untuk setiap permintaan.

  • IncludesNOEXEC memfungsikan Server Side Includes (SSI) tapi menonaktifkan perintah exec dan membatasi direktif include ke berkas teks/markup.

  • Indexes memberitahu server untuk memberikan daftar isi direktori jika permintaan HTTP yang dikirim oleh klien menunjuk ke direktori tanpa berkas indeks (yaitu, ketika tidak ada berkas yang disebutkan oleh direktif DirectoryIndex yang ada dalam direktori ini).

  • MultiViews memungkinkan negosiasi konten; ini dapat digunakan oleh server untuk mengembalikan halaman web yang cocok dengan bahasa pilihan sebagaimana dikonfigurasi dalam peramban.

Direktif AllowOverride mencantumkan semua pilihan yang dapat diaktifkan atau dinonaktifkan melalui berkas .htaccess. Penggunaan umum pilihan ini adalah untuk membatasi ExecCGI, sehingga administrator memilih pengguna yang diizinkan untuk menjalankan program di bawah identitas server web (pengguna www-data).

11.2.4.1. Memerlukan Otentikasi

In some circumstances, access to part of a website needs to be restricted, so only legitimate users who provide a username and a password are granted access to the contents. These feature are provided by the mod_auth* modules.

Contoh 11.16. berkas .htaccess yang memerlukan otentikasi

Require valid-user AuthName "Private directory" AuthType Basic AuthUserFile /etc/apache2/authfiles/htpasswd-private

Berkas /etc/apache2/authfiles/htpasswd-private berisi daftar pengguna dan kata sandi; itu umumnya dimanipulasi dengan perintah htpasswd. Sebagai contoh, perintah berikut digunakan untuk menambahkan pengguna atau mengubah sandi:

# htpasswd /etc/apache2/authfiles/htpasswd-private user New password: Re-type new password: Adding password for user user

11.2.4.2. Membatasi Akses

Dapat digunakan untuk membatasi akses berdasarkan kepada banyak kriteria; kita akan berhenti di menggambarkan pembatasan akses berdasarkan alamat IP dari klien, tapi itu bisa dibuat jauh lebih kuat daripada itu, terutama ketika beberapa direktif Require digabung dalam sebuah blok RequireAll.

Contoh 11.17. Hanya mengizinkan dari jaringan lokal

Require ip 192.168.0.0/16

Penganalisis log sering dipasang pada sebuah server web; karena memberi administrator gambaran yang presisi atas pola penggunaan server.

Para administrator Falcot Corp memilih AWStats (Advanced Web Statistics), untuk menganalisis berkas log Apache mereka.

Langkah konfigurasi pertama adalah penyesuaian berkas /etc/awstats/awstats.conf. Para administrator Falcot mempertahankannya kecuali parameter berikut:

LogFile="/var/log/apache2/access.log" LogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" SiteDomain="www.falcot.com" HostAliases="falcot.com REGEX[^.*\.falcot\.com$]" DNSLookup=1 LoadPlugin="tooltips"

Semua parameter ini didokumentasikan oleh komentar dalam berkas templat. Secara khusus, parameter LogFile dan LogFormat menggambarkan lokasi dan format berkas log dan informasi di dalamnya; SiteDomain dan HostAliases berisi daftar berbagai nama yang dipakai oleh situs web utama.

Untuk situs lalu lintas tinggi, DNSLookup biasanya tidak diatur ke 1; untuk situs kecil, seperti Falcot yang dijelaskan di atas, pengaturan ini memungkinkan mendapatkan laporan yang lebih mudah dibaca yang meliputi nama-nama lengkap mesin bukan alamat IP mentah.

AWStats juga akan diaktifkan untuk host virtual lain; masing-masing host virtual perlu memiliki berkas konfigurasi tersendiri, seperti misalnya /etc/awstats/awstats.www.falcot.org.conf.

Contoh 11.18. Berkas konfigurasi AWStats untuk sebuah host virtual

Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"

AWStats uses many icons stored in the /usr/share/awstats/icon/ directory. In order for these icons to be available on the web site, the Apache configuration needs to be adapted to include the following directive (check out /usr/share/doc/awstats/examples/apache.conf for a more detailed example):

Alias /awstats-icon/ /usr/share/awstats/icon/