Konfigurasi Apache 2.4 up untuk Virtualhost

Misalkan Anda memiliki server web dengan IP 222.222.222.222 dan akan mendaftarkan nama domain domainsaya.com di server tersebut, berikut adalah langkah konfigurasinya :

Setting DNS ditempat Anda mendaftarkan domain sehingga nama domain tersebut mengarah ke IP 222.222.222.222. Dengan demikian siapapun di internet ketika akan mencari domainsaya.com akan diarahkan ke IP 222.222.222.222.

Berikutnya tinggal setting di Web server kita, dalam hal ini Apache 2.4. Bagaimana caranya ?

Buatlah sebuah file conf di /etc/apache/site-available/domainsaya.conf. Isilah dengan :

<VirtualHost 222.222.222.222:80>
DocumentRoot /home/domainsaya/public_html
ServerName domainsaya.com
# Other directives here
       <Directory /home/domainsaya/public_html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

File konfigurasi domainsaya.conf ini harus memiliki symbolic link di /etc/apache/site-enabled/ agar dapat berfungsi :

ln -s /etc/apache/site-available/domainsaya.conf /etc/apache/site-enable/domainsaya.conf

Kemudian Apache perlu kita reload

#service apache restart

Semoga bermanfaat.

Tambahan :

Apache 2.4.3 telah menambahkan feature keamanan baru yang memungkinkan muncul pesan error “403 forbidden” yang tidak muncul jika menggunakan Apache 2.2.x. Atau bisa juga pesan berupa “client denied by server configuration”.
Fitur ini membutuhkan identitas pengguna untuk mengakses direktori. Fitur ini diaktifkan secara DEFAULT di dalam httpd.conf yang dibuat bersamaan pada saat instalasi Apache pertama kali. Kita dapat melihat aktifnya fitur ini dari directive :

Require all denied

Directive di atas tersebut akan menolak akses dari semua users. Untuk mengubahnya anda dapat saja menghapus directive tersebut, atau menambahkan directive lawannya di directory yang akan Anda buat terbuka akses nya :

Require all granted

diletakkan di :

;
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted

Warning: date() on ZendServer

Apabila Anda menemukan error seperti ini ketika menggunakan fungsi date()  :

Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Jakarta’ for ‘WIT/7.0/no DST’ instead in /home/toosa/public_html/basicphp/date1.php on line 2

Ini tandanya Zend Server Anda belum terisi dengan benar. Karena itu masuklah ke Administrasi Zend Server, masuk ke Server Setup lalu cari directive date.timezone , isilah sesuai dengan time zone yang Anda inginkan, misalnya Asia/Jakarta.

 

Install Zend Server 5.3 Community Edition (CE)

IMHO, Pada prinsip nya Zend Server fungsinya sama seperti setup sebuah Web Server + PHP biasa, yaitu Apache + PHP, hanya saja di enhance dengan pengendalian server PHP yang lebih baik, dan ditambahkan fitur-fitur yang lebih mendukung kebutuhan level Enterprise.

Apabila Anda sudah memasang Apache dan PHP standard dari apt-get aptitude, atau Synaptic, maka beberapa file  PHP akan diganti dengan PHP dari Zend, misalkan php5-curl akan diganti dengan php-5.3-curl-zend-server dan seterusnya.

Ok mari kita mulai dengan asumsi :

  1. Menggunakan OS Linux Ubuntu, kebetulan saya menggunakan Ubuntu 10.10
  2. Kita akan menggunakan Apache 2 dan PHP 5.3, jadi Zend server yang dipilih adalah ZendServer CE PHP 5.3.

Tidak ada masalah jika di server Anda sudah ada Apache dan PHP5 sebelumnya, nanti akan di replace pada saat instalasi.

Mari kita lakukan langkah-langkah sebagai berikut :

  1. Login lah sebagai root
  2. Setting file /etc/apt/sources.list , tambahkan
    • deb http://repos.zend.com/zend-server/deb server non-free
  3. Kemudian tambahkan Zend's repository public key dengan cara :
    • wget http://repos.zend.com/zend.key -O- |apt-key add –
  4. Jalankan sikronisasi dengan server repository Zend :
    • aptitude update
  5. Install Zend Server
    • aptitude install zend-server-ce-php-5.3

Hingga saat ini instalasi sudah selesai, mari kita lihat hasilnya dengan melihat :

http://localhost:10081/ZendServer

atau

https://localhost:10082/ZendServer

 

Anda akan ditanya persetujuan :

 

Lalu Next  :

 

Masukkan password dan selanjutnya akan ditanya email, NEXT …

setelah itu SELESAI 🙂

 

Memfungsikan PHP di userdir Apache Ubuntu 10.10

Ketika apache dan php di install di Linux Ubuntu 10.10, php memang sudah bisa dijalankan di /var/www, tetapi ketika kita mengaktifkan modul userdir agar /home/username/public_html bisa digunakan, ternyata baru .html yang bisa diaktifkan, sedangkan *.php belum bisa berjalan. ini karena secara default php5.conf belum mengaktifkan php di public_html.

Bukalah file /etc/apache2/mods-enabled/php5.conf :

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
         <Directory /home/*/public_html>
             php_admin_value engine Off
         </Directory>
    </IfModule>
</IfModule>
 

Anda harus memberikan remark (#) seperti di bawah ini :

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
   # <IfModule mod_userdir.c>
   #     <Directory /home/*/public_html>
   #          php_admin_value engine Off
   #     </Directory>
   # </IfModule>

</IfModule>

Terakhir jangan lupa merestart Apache nya :

$ /etc.init.d/apache2 restart

1 2