Installing Apache Web Server On Windows 7

Instalasi di Windows 7 tidak semudah instalasi di Windows XP karena sekuriti-nya yang lebih ketat. Pada Windows 7 (termasuk Windows 8 dan Vista), beberapa folder seperti program Files hanya bisa diakses oleh administrator. Karena alasan ini maka saya memilih membuat folder instalasi Apache (dan program web lainnya) di luar “C:\Program Files” yaitu di “D:\Web_Programs” (di folder ini akan di-install Apache, PHP, phpMyAdmin, MySQL, FileZilla, dll)

Untuk proses instalasi saya akan banyak menggunakan command prompt (Start >> All Programs >> Accessories >> Command Prompt) karena program ini bisa dijalankan sebagai administrator. Untuk menjalankan command prompt sebagai administrator, klik-kanan ikon command-prompt dan klik “Run as Administrator”. Akan terlihat pada jendela command prompt label “Administrator: Command Prompt”.Apache_runasadmin

Untuk mengetahui daftar command yang ada serta cara menggunakannya, ketik saja HELP. Berikut adalah command yang mungkin berguna dalam proses instalasi:

cd.. <enter> naik/masuk ke parent directory
D: <enter> Pindah ke direktori D dari direktori C
cd “web_programs\apache24\bin” <enter> masuk ke direktori…
dir <enter> tampilkan isi direktori
httpd.exe <enter> jalankan httpd.exe (kursor ada pada folder dimana program berada)
httpd.exe -k install <enter> instal apache (httpd.exe) sebagai service.
httpd.exe -k uninstall <enter>
httpd.exe -k start <enter>
netstat -ao <enter>  tampilkan process dengan PID dan port yang digunakan
tasklist <enter> tampilkan process dengan PID dan nama program/service.
taskkill pid/ 1234 /f <enter> menghentikan process dengan PID=1234 secara paksa.

Untuk memilih/mengetik/menjalankan file yang ada dalam suatu folder (misal apache2.4.9-win32-no_ssl-binary.exe) dengan mudah, ketik salah satu keyword (misal “apache”) lalu tekan tombol TAB beberapa kali sampai tampil nama file yang kita inginkan.

1. Pastikan Komputer Bersih Dari Duplikasi File

Apabila komputer pernah diinstal Apache sebelumnya, atau ingin mengulang instalasi yang bermasalah, salah versi, dll, lakukan pembersihan komputer dari file-file lama sebelum melakukan instalasi ulang. (1) Stop/kill process httpd.exe (2) Uninstal Apache dari Control Panel.

2. Pastikan Port 80 Tidak digunakan Program Lain

Port 80 hanya akan kita berikan pada Apache. Program lain yang secara default “listening” atau menggunakan port ini (IIS web server, Skype) harus distop dulu atau diset supaya menggunakan port lain.

Buka Command Prompt (cmd.exe) dan ketik netstat -ao <enter> maka akan terlihat proses/service yang sedang aktif (State=”listening”) menggunakan port tertentu (misal “0.0.0.0:80”). Nama program/service yang menggunakan port 80 tidak terlihat langsung tetapi kita bisa melihat process Id-nya (PID). Catat PID yang menggunakan port 80, kita akan mencari program/service yang menggunakan PID tersebut.Apache_netstataoUntuk melihat program/service yang running dengan processID tertentu kita bisa gunakan perintah tasklist pada command prompt.

Hint: Bila kamu lupa dengan perintah-perintah DOS, cukup ingat untuk mengetik HELP, lalu untuk mengetahui lebih detil tentang command taskkill ingat untuk mengetik HELP TASKKILL)Apache_tasklist

Service yang menggunakan port 80 bisa kita hentikan dengan TASKKILL /PID 1234 /T /F (yang artinya: hentikan proses dengan id 1234, termasuk child process yang dijalankannya, dengan paksa!) atau secara manual menonaktifkan prosesnya melalui tab Services pada Task Manager (tekan CTR+ALT+DEL pilih Task Manager) atau (tekan CTR+SHIFT+ESC) atau yang lebih baik langsung membuka program Services dengan mengetik SERVICES.MSC pada command prompt.

Permasalahan yang agak mengganggu adalah bila port 80 digunakan oleh service yang mengaku sebagai “system” dengan PID=4. Pada kenyataannya service ini dapat mewakili banyak service dari third party software (jadi semacam svchost), seperti ReportingServicesService.exe (dari MS SQL) dll. Saya tidak punya saran tentang bagaimana mengelola port http pada situasi seperti ini, karena memang tidak semestinya Apache server running di desktop dengan banyak aplikasi. Dan tidak mungkin di production system (web host) Apache running di Windows 7. Kalau mengerti Linux, mungkin lebih baik menginstall Linux di desktop (dan memilih Linux sebagai host server).

3. Download Apache 2.4.X Atau XAMPP?

Opsi untuk mendownload Apache bersamaan dengan program lain (PHP, MySQL, dll) melalui XAMPP (dan program sejenisnya) sangat mempermudah proses download dan pemilihan versi Apache dan PHP yang saling compatible. Tetapi saya lebih suka menginstal satu persatu untuk mempermudah troubleshooting, karena saya tidak perlu men-troubleshoot permasalahan yang ditimbulkan XAMPP, cukup program yang saya butuhkan saja. Yang penting kita tahu file mana yang harus di download, tapi pasti banyak issue lain yang akan membingungkan pemula 🙂

Saya sarankan bagi pemula untuk menggunakan kombinasi versi Apache dan versi PHP yang sudah teruji, yaitu bukan versi terbaru (sesuaikan juga dengan versi yang digunakan web host, bila perlu). Atau menggunakan XAMPP. Langkah yang saya ambil adalah mendownload XAMPP dan mendownload Apache/PHP/MySQL sesuai dengan versi yang digunakan oleh XAMPP. Ini akan sangat membantu untuk mendapatkan file pendukung yang kompatibel (misal php modules)

Sebagai gambaran, XAMPP 1.8.3 menggunakan versi-versi berikut ini:
Visual C++ 2008 Redistributable
Apache2.4.4
PHP5.5.9 VC11
MySQL 5.5.32 Community Server
phpMyAdmin 4.0.4
FileZilla FTP Server 0.9.41

Download Apache dari http://www.apachelounge.com. Saya memilih Apache yang lebih baru (2.4.9) yang di-compile dengan Visual Studio 2012 compiler (VC11), agar kompatible dengan PHP dan program lain yang juga up-to-date.Apache_install_1Apache yang saya download adalah httpd-2.4.9-win32-VC11.zip. Httpd adalah nama lain dari Apache. File ini untuk Windows 32-bit (x86). VC11 adalah versi binary yang di-compile dengan Visual Studio 2012. Pastikan WinRAR atau sejenisnya sudah terinstal untuk membuka file zip.

Untuk meyakinkan keaslian file yang kita download, kita bisa menggunakan tehnik autentikasi yang disediakan (PGP & SHA1). Ini perlu bila Apache yang kita download akan kita install di local server yang accessible dari internet (kita akan host website kita di server lokal). Tapi karena kita hanya butuh Apache untuk local development, aspek security bisa kita kesampingkan.

Unzip atau extract file ke sebarang folder untuk mendapatkan 3 files yaitu \apache24, README.TXT dan file text lainnya. Pindahkan folder \apache24 ke folder dimana kita akan meletakkan semua program web kita, yaitu D:\Web_Programs (kalau mau extract bisa langsung ke folder ini). Dengan begitu kita akan mempunyai 5 file penting berikut:

D:\Web_Programs\apache24\htdocs\index.html (ini default homepage berisi “It Works!”)
D:\Web_Programs\apache24\conf\httpd.conf (ini file konfigurasi Apache)
D:\Web_Programs\apache24\bin\httpd.exe (Ini program Apache)
D:\Web_Programs\apache24\bin\apachemonitor.exe (Ini program untuk start/stop/restart Apache)
D:\Web_Programs\readme_Apache24.txt (ini saya rename dari readme.txt hasil unzip)

Readme_Apache24.txt berisi cara menginstal Apache, diantaranya:
-Be sure you have installed the Visual C++ Redistributable for Visual Studio 2012 Update 4.
Download and install, if you not have it already, from:
http://www.microsoft.com/en-us/download/details.aspx?id=30679
Loads 2.4 Win32 modules VC9 or VC10.
– Unzip the Apache24 folder to c:/Apache24 (that is the ServerRoot in the config). Default folder for your your webpages is DocumentRoot “c:/Apache24/htdocs”. When you unzip to an other location, change ServerRoot in the httpd.conf, and change in httpd.conf the Documenroot, Directories, ScriptAlias, also when you use the extra folder config file(s) change to your location there.
Start apache in a DOS box: >httpd.exe
Install as a service: >httpd.exe -k install
ApacheMonitor: Double click ApacheMonitor.exe, or put it in your Startup folder.

4. Menginstal Visual C++ 2012 Redistributable

Ini adalah requirement versi Apache yang kita download (VC11). Cek pada “Add/Remove Programs” di Control Panel, apakah Microsoft Visual C++ Redistributable 2012 sudah terinstal. Jika belum (seperti gambar berikut), download dari Microsoft.com:
http://www.microsoft.com/en-us/download/details.aspx?id=30679Apache_VC++Setelah file didownload (Catat lokasi download, misalnya “C:\users\jay\downloads\vcredist_x86.exe“) maka kita akan menginstal melalui Command Prompt.Apache_instalVCRedist

5. Mengedit File Konfigurasi Apache (httpd.conf)

Tidak seperti Apache versi lama, versi baru tidak ada installer yang akan menjalankan installation wizard. Konfigurasi 100% dilakukan secara manual pada file httpd.conf.
Karena kita tidak meletakkan folder Apache24 di C:\ maka kita akan mengganti setiap kalimat “C:/Apache24” dengan “D:/Web_Programs/Apache24“. Ini bisa dilakukan dengan fitur Find & Replace pada text editor (saya menggunakan Notepad++)Apache_findreplaceKarena pada saat akan berjalan, Apache terlebih dahulu membaca httpd.conf baris per baris, maka apabila ada kesalahan dalam konfigurasi maka Apache (httpd.exe) tidak akan bisa dijalankan. Untuk itu maka harus dipahami fungsi setiap “directive” yang ada dalam httpd.conf.

Disini saya tidak akan membahas semua directive, hanya yang penting, atau yang dibutuhkan untuk menjalankan httpd.exe tanpa error.

(1) Pastikan Server Root didefinisikan dengan benar, dalam hal ini server root kita adalah D:\web_programs\apache24. Server root harus didefinisikan karena selanjutnya lokasi file seringkali dinyatakan dengan nama pendek, misalnya “/module/mod_dir.so”, bukan dengan nama panjang “D:/web_programs/apache24/module/mod_dir.so”. Selain itu, nanti direktori root akan kita proteksi aksesnya.

ServerRoot “D:/web_programs/apache24”

(2) Pastikan Apache menggunakan port yang direncanakan, dalam hal ini port 80:

Listen 80

(3) Pastikan nama server didefinisikan dengan benar (sekalian saja admin email didefinisikan juga sehingga file log tertentu akan dikirimkan ke admin):

ServerName localhost:80
ServerAdmin admin@localhost

(4) Sekalian pastikan server root, yaitu “/” atau “D:/web_programs/apache24” diproteksi (sekuriti dari subdirektori akan ditentukan di subdirektori masing-masing):

<Directory />
AllowOverride none
Require all denied
</Directory>

(5) Pastikan Document Root didefinisikan dengan benar, dan sekuriti serta fitur untuk direktori ini didefinisikan dengan benar:

DocumentRoot “D:/Web_Programs/Apache24/htdocs”
<Directory “D:/Web_Programs/Apache24/htdocs”>
Options Indexes FollowSymLinks Includes ExecCGI MultiViews
AllowOverride None
Require all granted
</Directory>

Biasanya, directive lain dalam HTTPD.CONF sudah dikonfigurasi secara default untuk bisa menjalankan HTTPD.EXE. Kita akan bahas lebih banyak lagi saat menginstal PHP dan MySQL.

Untuk mengaktifkan suatu directive, hapus tanda “#” di depannya, atau tambahkan baris baru dibawahnya.
Untuk menjalankan fitur “find & replace” ketik CTR+F

6. Test Menjalankan Apache (httpd.exe) Dari Command Prompt (Optional)

Setelah Visual C++ 2012 Redistributable diinstal dan httpd.conf dikonfigurasi “secukupnya”, apa lagi yang ketinggalan? Kita akan test apakah konfigurasi sudah benar, dengan menjalankan apache (httpd.exe) dan membuktikan index.html bisa dilihat di browser…

Masuk ke folder D:\web_programs\apache24\bin dan ketik httpd.exe <enter>Apache_httpdexecute

Dan oh, Apache diblok oleh Windows 7 Firewall. Berikan akses untuk Apache (Allow Access).

Setelah httpd.exe dijalankan tanpa error, saya lupa melakukan test dengan membuka browser dan mengetik “localhost”, tapi langsung install Apache sebagai service.

7. Instal Apache (httpd.exe) Sebagai Service

Masuk ke folder D:\web_programs\apache24\bin dan ketik httpd.exe -k install <enter>Apache_httpdinstallerrorInstalasi tidak berhasil karena ada service yang terlebih dahulu menggunakan port 80 (ingat, sebelumnya kita menjalankan httpd.exe dan belum mematikannya).

Perintah netstat -ao memperlihatkan ada service/program yang menggunakan port 80 yaitu service dengan PID=4644.

Perintah tasklist memperlihatkan program yang running dengan PID=4644 yaitu httpd.exe (sesuai perkiraan). Hey, ternyata ada dua proses httpd.exe.

Perintah taskkill /pid 4644 /f akan menghentikan proses httpd.exe.Apache_httpdinstallerror2Saat melakukan instalasi ulang Apache sebagai service (httpd.exe -k install) ternyata disebutkan “Service already installed”. Hmmm… untuk meyakinkan diri, saya uninstal service lalu saya instal sekali lagi dan… “The Apache2.4 service is successfully installed”!

8. Menguji Apakah Apache Mampu Memproses INDEX.HTML

Apache kita asumsikan berfungsi dengan baik bila file D:\web_programs\apache24\htdocs\index.html bisa diakses melalui browser (dengan mengetik “localhost” pada address bar). Disini index.html berisi kalimat “It works!“. Tentu saja httpd.exe harus dalam keadaan running.

apache_itworks

9. Menggunakan ApacheMonitor Untuk “Start/Stop/Restart” Apache

Klik-kanan pada ikon ApacheMonitor di D:\web_programs\apache24\bin\apachemonitor.exe dan pilih “pin to task bar”. Ini untuk mempermudah akses ke program tersebut. Proses “start/stop/restart” bisa dilakukan melalui ikon di system tray di pojok kanan bawah:Apache_monitortray

 

 

 

10. Langkah Selanjutnya?

Setelah Apache server berhasil memproses file index.html, apa langkah selanjutnya?
Apache web server saja tidak cukup untuk membuat website, kecuali kita hanya ingin menampilkan web statis (menggunakan html file). Bila kita ingin menjalankan file php (untuk web dinamis) dan aplikasi berbasis database (MySQL) maka kita harus menginstal kedua program tersebut.

Leave a comment