WEB SERVER
1. Pengertian Web Server

Secara singkat, pengertian web server adalah perangkat lunak yang memberikan layanan atau service kepada client untuk menerima request HTTP maupun HTTPS dari client yang dikenal. Client yang dimaksud adalah web browser (semisal: Internet Explorer, Google Chrome, Mozilla Firefox). Setelah itu, web server akan mengirimkan request yang diminta oleh client dalam bentuk halaman web, yang secara umum berbentuk dokumen HTML.
2. Prinsip & Cara kerja Web Server
Anda mungkin telah mengetahui bahwa semua protokol yang terdapat di internet melibatkan satu pihak sebagai server dan pihak lainnya sebagai klien. Begitu pula dengan HTTP (Hypertext Transfer Protocol), yang merupakan wadah bagi aplikasi web yang dijalankan.

Cara kerja dari web server
3. Contoh Aplikasi Web Server.
1. Apache

PHP pada apache web server ditempatkan sebagai salah satu modulnya (mod_php) untuk membuat kinerja PHP lebih baik dan stabil. Apache sendiri termasuk dalam kategori freeware, dengan proses instalasi yang relatif mudah, dapat beroperasi pada berbagai variasi sistem operasi, mudah pengaturan konfigurasinya hanya dengan empat file konfigurasi, dan juga mudah menambahkan peripheral lain ke dalam platform web servernya.
2. Nginx

- Arsitektur Event-Based. Berbeda dengan Apache yang menggunakan process based, nginx menggunakan arsitektur event-based sehingga mampu meminimilkan thread untuk memproses sebuah permintaan dari klien, yang artinya memori yang terpakai juga menjadi lebih kecil. Server ringan dan sangat responsif.
- Performa Luar Biasa. Semakin banyak thread digunakan, maka semakin banyak memori yang diperlukan. Dalam hal ini, nginx telah didesain untuk menangani hingga sepuluh juta permintaan klien tiap harinya, atau beberapa ratus permintaan per detik.
- Fitur Mantap. Jika apache seperti toko serba ada yang menyediakan produk dengan lengkap, nginx hanya menyediakan fitur-fitur yang kebanyakan orang cari, seperti static file serving, virtual hosts, reverse proxying, access control, URL rewriting, dsb.
3. IIS (Internet Information Services)

IIS sendiri sebetulnya dapat digunakan sebagai platform tempat aplikasi web berjalan. IIS mendukung berbagai macam protokol seperti HTTP, FTP, SMTP, NNTP, dan SSL. Kelebihannya, IIS merupakan web server yang sangat kompatibel dengan Windows sebagai imbas dari keluaran Microsoft, mendukung platform .NET yang hanya bisa dilakukan dengan IIS. Walau begitu, IIS termasuk web server berbayar, cukup mudah diserang oleh para cracker, serta keamanannya mudah ditembus.
4. Lighttpd

Web server yang satu ini dapat beroperasi dalam komputer dengan sistem operasi Linux atau keluarga Unix lainnya. Salah satu kelebihan menggunakan Lighttpd adalah kemampuannya dalam mengatur CPU load dengan efektif, juga beberapa fitur advance lainnya seperti SCGI, FastCGi, Output-Compression dan URL-Writing.
4. Virgo

Fitur-fitur yang terdapat pada Virgo adalah :
- Web Admin Console
- Gogo Shell
- Plans
- Provisioning
- Spring 3
- User Region
- Web Container
- JMX Management
- Logging
- Hot Deployment
- Advanced Resolution Failure Diagnostics
- Legacy Library Support
- Equinox Console Extension
- Automatic Thread Stack Dump on Deadlock.
4. Apache.
Apache merupakan salah satu jenis web server yang paling banyak digunakan di internet. Awalnya, apache didesain untuk sistem operasi UNIX. Apache sendiri memiliki beberapa macam dukungan seperti kontrol akses, PHP, dan SSL. Kontrol akses apache dijalankan bergantung dari nomor IP CGI (Common Gateway Interface) atau nama host. Apache menempatkan kontrol akses sebagai modul, dan yang paling terkenal adalah modul Perl (Practical Extraction and Report Language). Sementara itu, PHP (Personal Home Page) merupakan sebuah program yang menyerupai CGI, untuk memproses teks dan bekerja pada web server.
PHP pada apache web server ditempatkan sebagai salah satu modulnya (mod_php) untuk membuat kinerja PHP lebih baik dan stabil. Apache sendiri termasuk dalam kategori freeware, dengan proses instalasi yang relatif mudah, dapat beroperasi pada berbagai variasi sistem operasi, mudah pengaturan konfigurasinya hanya dengan empat file konfigurasi, dan juga mudah menambahkan peripheral lain ke dalam platform web servernya.
5. Nginx.
Nginx (dibaca engine x) merupakan salah satu web server open source
selain apache. Walaupun sebetulnya apache sudah begitu populer,
terdapat satu kekurangannya, yaitu tak dapat menangani kebutuhan web
server dengan traffic yang tinggi. Nginx kemudian tercipta untuk menjadi
sebuah solusi yang lebih mengedepankan performa, kemudahan, dan
kecepatan. Nginx sendiri memiliki beberapa kelebihan, di antaranya :
- Arsitektur Event-Based. Berbeda dengan Apache yang menggunakan process based, nginx menggunakan arsitektur event-based sehingga mampu meminimilkan thread untuk memproses sebuah permintaan dari klien, yang artinya memori yang terpakai juga menjadi lebih kecil. Server ringan dan sangat responsif.
- Performa Luar Biasa. Semakin banyak thread digunakan, maka semakin banyak memori yang diperlukan. Dalam hal ini, nginx telah didesain untuk menangani hingga sepuluh juta permintaan klien tiap harinya, atau beberapa ratus permintaan per detik.
- Fitur Mantap. Jika apache seperti toko serba ada yang menyediakan produk dengan lengkap, nginx hanya menyediakan fitur-fitur yang kebanyakan orang cari, seperti static file serving, virtual hosts, reverse proxying, access control, URL rewriting, dsb.
6. Konfigurasi HTTP & HTTPS pada Linux Debian.
A. HTTPS (Hypertext Transfer Protocol Secure) adalah merupakan versi aman (secure) dari HTTP.

jika paket tidak tersedia atau mungkin disk 3 debian tidak ada, anda bisa mendownlad paket ssl di link berikut. ssl-cert-check_3.27-2_all.deb
setelah download taruh file di /home, ganti nama agar mudah di penggil dari terminal. misalnya ssl.deb. lakukan perintah instalasi dengan perintah #dpkg -i /home/ssl.deb



Kemudian sesuaikan data diri berupa namaa negara, provinsi, kota dan lain-lain seperti gambar dibawah.




Sebelum keluar, jangan lupa menyimpan, Ctrl +O, dak keluar dengan Ctrl + X



- Pembahasan Sebelumnya:
instalasi debian 8 dan Seting IP Statik pada debian
instalasi SSH Server pada debian
instalasi NTP Server pada debian
instalasi Samba Server pada debian
instalasi DHCP Server pada debian
instalasi DNS Server pada debian
instalasi Web Server(HTTP) pada debian
instalasi FTP Server pada debian - Siapkan alat dan bahan yang sudah dibahas di pembahasan sebelumnya:
- PC yang telah terinstall Virtual Machine
- Debian server 8 dengan interface yang telah dikonfigurasi IP address,
- DNS telah terinstal pada server dan berfungsi dengan baik.
- Web server telah terinstal pada server dan berfungsi dengan baik.
- DHCP telah terinstal pada server dan berfungsi dengan baik (opsional).
- Install paket ssl, dengan nama paket adalah “ssl-cert”, jalankan dengan perintah #apt-get install ssl-cert

jika paket tidak tersedia atau mungkin disk 3 debian tidak ada, anda bisa mendownlad paket ssl di link berikut. ssl-cert-check_3.27-2_all.deb
setelah download taruh file di /home, ganti nama agar mudah di penggil dari terminal. misalnya ssl.deb. lakukan perintah instalasi dengan perintah #dpkg -i /home/ssl.deb
- setelah paket ssl-cert berhasil terinstaal pada debian, lanjutkan dengan mengaktifkan mode untuk ssl dengan menggunakan perintah #a2enmod ssl seperti berikut:

- selanjutnya Aktifkan website untuk “default-ssl”. Dengan perintah #a2ensite default-ssl.conf

- selanjutnya kita membuat folder untuk menaruh sertifikat ssl, yang nanti di akses oleh server. Buatlah folder “sertifikat” pada directory “/home”, kemudian lihat hasilnya dengan mengetikkan “ls”.

- Buatlah sertifikat dengan perintah berikut:
Kemudian sesuaikan data diri berupa namaa negara, provinsi, kota dan lain-lain seperti gambar dibawah.

- Masuk ke directory “sites-available” yang letaknya pada directory “/etc/apache2” dilanjutkan dengan menampilkan isi direktorinya.

- Backup (copy) file “default-ssl.conf” menjadi default-ssl.conf.bak” pada folder yang sama. bckup dimaksudnkan untuk mengantisipasi kerusakan data pada default-ssl.conf saat kita jadikan praktik. gunakan perintah cp untuk mengcopy file

- Pada file “default-ssl.conf” pastikan letak halaman web utamanya sudah benar.
Pada file yang sama, kemudian ubah letak sertifikatnya.

Sebelum keluar, jangan lupa menyimpan, Ctrl +O, dak keluar dengan Ctrl + X
- Restart apache2 nya sebelum melakukan pengujian.
- Pengujian
- Bukalah browser yang terdapat pada client
- Ketikkan alamat domain pada address bar, lanjutkan dengan mengklik “advanced” dan diteruskan dengan mengklik “add exception” yang akan menampilkan jendela baru.

- Lanjutkan dengan melihat sertifikat. Klik “view” untuk menampilkan sertifikat, kemudian “close” lanjutkan dengan “confirm…”

- Hasil akhir tampilan sesuai dengan halaman index yang dibuat.

- Cobalah untuk mengubah letak directory dari sertifikat.
- Cobalah untuk mengubah lokasi directory default https sehingga tampilannya berbeda dengan http.
https://akar2.wordpress.com/2017/04/07/konfigurasi-secure-web-server-https-di-debian/
7. Instalasi Konfigurasi PHP Module.
1. Instalasi PHP Apache Module
PHP dapat dipasang sebagai bagian dari Apache module. Cara ini adalah cara yang paling mudah dalam mengkombinasikan web server Apache dan PHP. Namun konsekuensinya adalah PHP akan mewarisi permission
dari proses Apache. Hal ini tentunya akan berdampak pada aspek keamanan
pada server anda. Lebih lanjut tentang aspek keamanan ini dapat anda
baca pada PHP manual berikut
PHP: Installed as an Apache module - Manual
When PHP is used as an Apache module it inherits Apache's user permissions (typically those of the "nobody" user). This…php.net
When PHP is used as an Apache module it inherits Apache's user permissions (typically those of the "nobody" user). This…php.net
Langkah pertama dalam melakukan instalasi PHP sebagai bagian dari Apache module adalah dengan menjalankan perintah
$ sudo apt update $ sudo apt install php libapache2-mod-php
Untuk mengecek apakah PHP telah berjalan di server anda, anda dapat membuat sebuah file dengan isi
<?php phpinfo(); ?>
di root directory server yang secara default berada di
/var/www/html/
, misalkan dengan nama file /var/www/html/info.php
.Default owner directory/var/www/html/
adalahroot
, sehingga anda memerlukan hak akses root untuk membuat atau memodifikasi file dalam directory tersebut.
Kemudian cobalah akses file tersebut menggunakan web browser, misalnya dengan mengakses
http://<domain server anda>/info.php
atau http://<alamat IP server anda>/info.php
. Bila anda mendapatkan output seperti pada Gambar 1 berarti proses instalasi PHP telah berhasil.
Pada Ubuntu 16.04 versi PHP yang digunakan adalah versi 7.0. Bila anda memerlukan versi lama atau versi lebih baru, maka anda harus menggunakan cara yang berbeda yang tidak dibahas dalam artikel ini.
2. Modifikasi Konfigurasi PHP
Tanpa
langkah berikut, sebenarnya instalasi PHP tersebut telah dapat
digunakan, namun kadang kita perlu melakukan beberapa modifikasi untuk
menyesuaikan dengan kebutuhan program PHP yang nantinya kita buat.
Instalasi MySQL module
Bila
anda ingin menggunakan PHP untuk mengolah RDBMS MySQL atau MariaDB,
maka anda perlu mengaktifkan PHP MySQL module dengan cara menjalankan
perintah
$ sudo apt install php-mysql
kemudian anda perlu me-restart service Apache dengan perintah
$ sudo systemctl restart apache2.service
Untuk memastikan bahwa modul
php-mysql
telah aktif, buatlah sebuah file di root directory server, misalnya /var/www/html/mysql.php
dengan isi
kemudian akses file tersebut menggunakan web browser, misalnya dengan mengakses
http://<domain server anda>/mysql.php
atau http://<alamat IP server anda>/mysql.php
. Jangan lupa, anda perlu mengganti $servername
, $username
, dan $password
pada script untuk disesuaikan dengan konfigurasi server anda. Bila output script tersebut adalah Connection success.
maka instalasi anda berhasil, namun bila tidak maka berarti ada masalah dengan proses instalasi yang anda lakukan.
Pencarian dan Instalasi Berbagai Modul PHP
Untuk
meningkatkan fungsionalitas dari PHP, anda dapat menambahkan beberapa
modul tambahan ke dalam PHP. Untuk mencari modul-modul yang tersedia
dalam repository, gunakanlah perintah
$ sudo apt-cache search php-
Bila
anda ingin pencarian yang lebih spesifik, kombinasikan dengan perintah
grep, misalnya anda ingin mencari modul PHP yang berkaitan dengan zip,
maka anda dapat menggunakan perintah
$ sudo apt-cache search php- | grep zip
Contoh output dari perintah tersebut adalah
libphp-pclzip - transitional dummy package php-bz2 - bzip2 module for PHP [default] php-pclzip - ZIP archive manager class for PHP php-zip - Zip module for PHP [default] php-zipstreamer - Stream zip files without i/o overhead php7.0-bz2 - bzip2 module for PHP php7.0-zip - Zip module for PHP
Bila anda sudah memutuskan modul apa yang perlu anda install, misalnya
php-zip
, maka gunakan perintah apt install
untuk melakukan instalasi PHP modul tersebut. Berikut adalah contoh perintah untuk melakukan instalasi modul php-zip
$ sudo apt install php-zip
Kemudian restart service Apache dengan perintah
$ sudo systemctl restart apache2.service
Menyembunyikan Versi PHP pada HTTP Header
Bila
anda tidak menginginkan versi PHP anda tampil pada HTTP Header, demi
alasan keamanan misalnya, maka anda dapat memodifikasi file
/etc/php/7.0/apache2/php.ini
dan /etc/php/7.0/cli/php.ini
. Pastikan variable expose_php
pada kedua file tersebut bernilai Off
seperti ini.expose_php = Off
Kemudian restart service Apache dengan perintah
$ sudo systemctl restart apache2.service
Mengganti Default Directory Index
Bila anda memiliki dua file index, misalnya
index.html
dan index.php
, dalam satu directory yang sama, maka yang dieksekusi oleh Apache adalah file index.html
. Bila anda ingin mengubah urutan prioritas file index, maka anda dapat mengaturnya melalui file /etc/apache2/mods-available/dir.conf
.
Ubahlah urutan
index.php
pada DirectoryIndex yang semula pada urutan keempat seperti ini<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule>
menjadi urutan pertama seperti ini
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>
Kemudian restart service Apache dengan perintah
sudo systemctl restart apache2.service
8. Instalasi Konfigurasi Web Server pada Linux Debian.
Pertamakali
pastikan CD instalasi Linux Debian 7 Server sudah terpasang dengan
baik. Jika sudah berikut adalah perintah untuk konfigurasi Web-Server :
# apt-get install apache2 php5 phpmyadmin mysql-server -y
Setelah itu akan muncul popup untuk mengisis password untuk MySQL.
Note: Saya disini menggunakan semua password yang sama, karena supaya mudah diingat.
Pada gambar diatas dapat diisi password untuk MySQL user, dan gambar kedua untuk mengisi ulang kembali passwordnya.
Pilih "apache2" seperti pada gambar diatas. Pilih dengan menekan tombol spasi pada keyboard anda.
Klik "Ya" pada konfigurasi database phpmyadmin. Lihat gambar diatas.
Masukan password untuk administrative user dan untuk phpmyadmin, dan konfirmasi password. Lihat gambar diatas.
Langkah berikutnya adalah konfigurasi untuk menjalankan web-server, berikut adalah konfigurasinya :
Masuk ke direktori /etc/apache2/sites-enable :
# cd /etc/apache2/sites-enable
Selanjutnya salin file 000-default ke web
# cp 000-default web
Konfigurasi file web seperti berikut :
# nano web
Lihat kedua gambar diatas, pada gambar kesatu itu tampilan pertamakali, lalu konfigurasi menjadi seperti pada gambar kedua.
Note: Ganti tanda bintang (*) menjadi Ip Address server. pada Document Root saya menambahkan direktori baru untuk web saya, yaitu : /var/www/myweb/ . Untuk selebihnya llihat pada gambar diatas.
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.
Langkah berikutnya masuk ke direktori /var/www/ untuk konfigurasi file index.
# cd /var/www/
Buatlah direktory baru dengan nama "myweb" (tanpa tanda kutip), kenapa namanya harus myweb? Karena lokasi untuk menyimpan file web saya simpan di /var/www/myweb.
Berikut perintah untuk membuat direktori baru dengan nama "myweb" :
# mkdir myweb
Jika sudah, masuk ke direktory myweb :
# cd myweb
Posisi kita sekarang berada di /var/www/myweb.
Buat dan konfigurasi file dengan nama index.php disini, caranya seperti berikut :
# nano index.php
Disini kita ketik script php dan html untuk contoh web kita. Sebagai contohnya lihat pada gambar diatas.
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.
Langkah selanjutnya yaitu me-restart konfigurasinya supaya dapat digunakan, berikut caranya:
# /etc/init.d/apache2 restart
Jika konfigurasi sudah benar akan muncul pesan [OK].
Langkah terakhir yaitu pengecekan konfigurasi.
Pastikan Server debian dengan client sudah terhubung dan dapat nge-Ping dari Client ke Server. Buka Web browser dan ketik nama domain servernya.
Jika berhasil akan tampil seperti gambar diatas.
Konfigurasi Web-Server sudah selesai, Sekarang Web-Server sudah dapat digunakan.
# apt-get install apache2 php5 phpmyadmin mysql-server -y
Setelah itu akan muncul popup untuk mengisis password untuk MySQL.
Note: Saya disini menggunakan semua password yang sama, karena supaya mudah diingat.
Gambar.1 password mysql |
Gambar.2 Repeat password mysql |
Pada gambar diatas dapat diisi password untuk MySQL user, dan gambar kedua untuk mengisi ulang kembali passwordnya.
Gambar.3 Pilihan phpmyadmin |
Pilih "apache2" seperti pada gambar diatas. Pilih dengan menekan tombol spasi pada keyboard anda.
Gambar.4 Pilihan phpyadmin |
Klik "Ya" pada konfigurasi database phpmyadmin. Lihat gambar diatas.
Gambar.5 Password phpmyadmin |
Gambar.6 Password dari mysql untuk phpmyadmin |
Gambar.7 Konfirmasi password |
Masukan password untuk administrative user dan untuk phpmyadmin, dan konfirmasi password. Lihat gambar diatas.
Langkah berikutnya adalah konfigurasi untuk menjalankan web-server, berikut adalah konfigurasinya :
Masuk ke direktori /etc/apache2/sites-enable :
# cd /etc/apache2/sites-enable
Selanjutnya salin file 000-default ke web
# cp 000-default web
Konfigurasi file web seperti berikut :
# nano web
Gambar.8 Konfigurasi file web |
Gambar.9 Konfigurasi file web |
Lihat kedua gambar diatas, pada gambar kesatu itu tampilan pertamakali, lalu konfigurasi menjadi seperti pada gambar kedua.
Note: Ganti tanda bintang (*) menjadi Ip Address server. pada Document Root saya menambahkan direktori baru untuk web saya, yaitu : /var/www/myweb/ . Untuk selebihnya llihat pada gambar diatas.
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.
Langkah berikutnya masuk ke direktori /var/www/ untuk konfigurasi file index.
# cd /var/www/
Buatlah direktory baru dengan nama "myweb" (tanpa tanda kutip), kenapa namanya harus myweb? Karena lokasi untuk menyimpan file web saya simpan di /var/www/myweb.
Berikut perintah untuk membuat direktori baru dengan nama "myweb" :
# mkdir myweb
Jika sudah, masuk ke direktory myweb :
# cd myweb
Posisi kita sekarang berada di /var/www/myweb.
Buat dan konfigurasi file dengan nama index.php disini, caranya seperti berikut :
# nano index.php
Gambar.10 Konfigurasi membuat file index.php |
Disini kita ketik script php dan html untuk contoh web kita. Sebagai contohnya lihat pada gambar diatas.
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.
Langkah selanjutnya yaitu me-restart konfigurasinya supaya dapat digunakan, berikut caranya:
# /etc/init.d/apache2 restart
Jika konfigurasi sudah benar akan muncul pesan [OK].
Langkah terakhir yaitu pengecekan konfigurasi.
Pastikan Server debian dengan client sudah terhubung dan dapat nge-Ping dari Client ke Server. Buka Web browser dan ketik nama domain servernya.
Gambar.11 Tampilan hasil web-server |
Jika berhasil akan tampil seperti gambar diatas.
Konfigurasi Web-Server sudah selesai, Sekarang Web-Server sudah dapat digunakan.
Tidak ada komentar:
Posting Komentar