Membuat Virtual Direktori
Biasanya, kita harus meletakkan halaman-halaman web kita di folder /var/www (jika di linux) atau /htdocs (jika di windows). Nah, ada trik dimana jika kita ingin meletakkan halaman web di luar folder-folder ini, atau istilahnya Virtual directory.
Pertama kita harus meng-enable modul mod_alias milik apache
Kemudian tambahkan konfigurasi berikut di .httpd.conf
dalam contoh, saya membuat virtual directory bernama /project1 dimana sebenarnya letak project1 ini ada di /home/me/project1
Lalu tambahkan baris berikut untuk setiap virtual direktori:
Kita harus membuat lebih dari satu konfigurasi untuk setiap virtual direktori yang kita buat seperti di atas. Kemudian Restart Apache.
Hosting lebih dari satu website
Apache dapat meng-host lebih dari satu website. Metode ini bisa dilakukan dengan melakukan setting yang disebut "virtual host" di Apache.
di folder /etc/apache2/sites-available/ ada sebuah file bernama "default". Gunakan file ini sebagai template untuk file virtual host. Untuk melakukannya cukup copy file-nya, dan rename dengan nama lain. contoh :
cp default djmadjack.com
kemudian edit file yang baru kta copy tersebut menggunakan text editornano djmadjack.com
kemudian tambahkan baris berikut :
ServerAdmin eric@djmadjack.com
ServerName www.djmadjack.com
DocumentRoot /var/www/djmadjack.com/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
(...)
Baris DocumentRoot adalah letak di mana halaman web kita akan disimpan.
Kemudian kita perlu meng-enable website baru kita.
a2ensite djmadjack.com
Jika sewaktu-waktu kita perlu men-disable, gunakana2dissite djmadjack.com
Terakhir, restart apache.
Direktori Halaman Web per User
Secara default, letak halaman web apache adalh di /var/www. Ada kalanya kuta ingin membuat agar setiap user di komputer memiliki folder web nya sendiri-sendiri, jadi nantinya website kita bisa diakses lewat url : http://example.com/~namauser/
Pertama, kita perlu meng-enable modul mod_userdir di apache
sudo a2enmod userdir
Lalu lakukan konfigurasi di file userdir.conf
gksudo gedit /etc/apache2/mods-enabled/userdir.conf
Kemudian ganti dengan baris berikut :
<IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule> |
Restart apache.
Dengan ini, setiap user dapat memiliki folder web nya di folder public_html di home foldernya masing-masing. Url nya dapat diakses melalui : http://127.0.0.1/~namauser/.
Disable Directory Listing
Secara default, apache akan memperlihatkan direktori jika tidak dapat menemukan file index.html atau index.php. Untuk alasan keamanan, kita mungkin ingin mendisable hal ini.
Pertama, buka file .httpd.conf
Cari baris berikut
Options Includes Indexes FollowSymLinks MultiViews
Kemudian hapus tulisan Indexes menjadi :
Options Includes FollowSymLinks MultiViews
Restart apache.
Melindungi Direktori dengan Password
Kita dapat melindungi sebuah direktori agar tidak dapat diakses orang yang tidak berhak. Caranya dengan menggunakan file .htaccess
Pertama buat file bernama .htacess di direktori yang ingin kita lindungi. Isi dengan baris berikut :
AuthName "Section Name"
AuthType Basic
AuthUserFile /home/username/.htpasswds
Require valid-user
baris /home/username/,htpasswds merupakan lokasi file yang berisi username dan password kita.
Buatlah file tersebut.
Kemudian buka situs berikut, isi username dan password anda pada form yang sesuai, kemudian klik create password. maka password akan dienkripsi.
kemudian isi file .htpasswds kita dengan username dan password yang kita dapat dari situs barusan.
username:password
Restart apache.
Nah sekarang, direktori kita sudah terlindungi. Jika user membuka direktori ini lewat web browser, sebuah dialog box akan muncul dan menanyakan username dan password sebelum kita dapat mengaksesnya. Atau alternatifya kita bisa membukanya lewat :
http://username:password@www.website.com/directory/
Konfigueasi SSL
Ada kalanya kita ingin melindungi website kita dengan SSL untuk alasan keamanan. Untuk kasus self-signed certificate, kita bisa melakukan langkah berikut :
Pertama, enable SSL di Apache
sudo a2enmod ssl
Generate file CSR
sudo openssl req -new > new.ssl.csr
Masukkan passphrase, ingat baik-baik, karen akita akan ditanya lagi di langkah berikutnya.
Kemudian kita akan diberikan serangkaian pertanyaan :
Generating a 1024 bit RSA private key
................++++++
........................++++++
writing new private key to 'privkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:Masukkan kode Negara
State or Province Name (full name) [Some-State]:Masukkan nama Provinsi
Locality Name (eg, city) []:Masukkan nama kota
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Masukkan nama instansi
Organizational Unit Name (eg, section) []:Masukkan nama unit di institusi anda
Common Name (eg, YOUR name) []:Nama lengkap anda
Email Address []:Email anda
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:Kosongi
An optional company name []:Opsional
Kemudian generate certificate nya
sudo openssl rsa -in privkey.pem -out new.cert.key
sudo openssl x509 -in new.ssl.csr -out new.cert.cert -req -signkey new.cert.key -days NNN
sudo cp new.cert.cert /etc/ssl/certs/server.crt
sudo cp new.cert.key /etc/ssl/private/server.key
Ganti NNN dengan jumlah hari certificate ini akan berlaku sebelum expired.
Kemudian lakukan konfigurasi di file situs anda yang ada di sites-available. Contohnya, saya di :
/etc/apache2/sites-available/mydomain.net
:NameVirtualHost *:443 NameVirtualHost *:80ServerAdmin email address here ServerName mydomain.net ServerAlias www.mydomain.net DocumentRoot /srv/www/mydomain.net/public_html/ ErrorLog /srv/www/mydomain.net/logs/error.log CustomLog /srv/www/mydomain.net/logs/access.log combined ServerAdmin jzb@zonker.net ServerName mydomain.net ServerAlias www.mydomain.net DocumentRoot /srv/www/mydomain.net/public_html/ ErrorLog /srv/www/mydomain.net/logs/error.log CustomLog /srv/www/mydomain.net/logs/access.log combined SSLEngine on SSLOptions +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key
Enable situs anda
sudo a2ensite mydomain.net
Restart apache.
Nah, sekarang kita bisa membuka situs kita dengan protokol https://www.example.com
0 comments:
Post a Comment