Bagaimana cara menginstal secara manual Apache, PHP dan MySQL di Windows?

48

Bagaimana cara saya menginstal Apache dengan dukungan PHP dan server MySQL di Windows tanpa menggunakan paket siap pakai seperti WAMPServer atau XAMPP?


sumber

Jawaban:

65

Apache

Pertama, saya sarankan Anda membaca Platform Catatan Khusus Apache untuk Windows - ini menjelaskan beberapa fitur khusus Windows seperti menjalankan sebagai layanan yang tidak Anda miliki di OS lain dan Anda mungkin belum pernah menggunakan sebelumnya.

Seperti disebutkan dalam catatan khusus platform ini, Apache tidak menyediakan binari untuk Windows, namun mereka memiliki tautan ke beberapa situs pihak ketiga yang menyediakan binari, misalnya Apache Lounge .

Dari situs web itu, kami dapat mengunduh versi 32-Bit (win32) atau 64-Bit (Win64) - jika OS Anda 64-Bit, Anda harus selalu mencoba menginstal versi perangkat lunak 64-Bit, tetapi perhatikan bahwa Anda Anda perlu menggunakan modul 64-Bit juga, itu berarti jika Anda hanya memiliki modul 32-Bit kemudian unduh Apache 32-Bit.

Inilah versi yang saya gunakan saat menulis ini: Apache 2.4.10 Win64 . Versi terbaru ketika jawaban ini terakhir diperbarui: Apache 2.4.38 Win64 (lihat tanggal edit di bagian bawah posting).

Setelah diunduh, cukup ekstrak Apache24folder ke root dari hard drive Anda, sehingga Anda memiliki jalur seperti C:\Apache24\bin.

Buka jendela baris perintah (Windows + R dan ketik cmdkemudian tekan Enter), ubah direktori menjadi C:\Apache24\bindan jalankan httpd.exe, biasanya tidak seharusnya mencetak kesalahan.

Jika Anda mendapatkan dialog kesalahan yang menyatakan bahwa MSVCR110.dlltidak ada di sistem Anda, Anda harus menginstal Visual C ++ Redistributable untuk Visual Studio 2012 - seperti biasa, ketika diminta, pilih versi bit yang sesuai: vcredist_x86.exeuntuk sistem 32-Bit dan vcredist_x64.exeuntuk 64 -Tapi itu.

Jika Anda mendapatkan kesalahan yang mengatakan bahwa itu tidak dapat mengikat ke port 80, periksa apakah aplikasi lain menggunakan port itu - juga Skype diketahui menggunakan port 80 dan 443 secara default; hapus centang "Gunakan port 80 dan 443 sebagai alternatif untuk koneksi masuk" di pengaturan koneksi lanjutannya , restart Skype untuk menerapkan perubahan, dan kemudian Anda harus dapat memulai Apache tanpa masalah.

Peringatan seperti Could not reliably determine the server's fully qualified domain namedapat diabaikan untuk saat ini.

Windows Firewall dapat meminta Anda untuk mengizinkan Apache berkomunikasi di jaringan tertentu, saya sarankan Anda menggunakan pengaturan default: izinkan di jaringan rumah dan kantor, tetapi tidak di jaringan publik / tidak terpercaya.

Kemudian, buka browser dan browse ke http://localhost, jika Anda melihat halaman mengatakan It works !itu berarti instalasi Apache Anda berfungsi.

Anda sekarang dapat menghentikan Apache yang sedang berjalan dengan menekan Ctrl + C di command prompt.

Jika Anda mendapat peringatan tentang tidak dapat menentukan nama domain yang memenuhi syarat sistem, perbaiki dengan mengedit C:\Apache24\conf\httpd.confdan mengedit ServerNamevariabel (itu harus sudah ada di komentar, cukup batalkan komentar dan ubah):

ServerName <yourhostname>

Ganti <yourhostname>dengan nama host sistem atau localhost.

Terakhir, jika Anda ingin menjalankan server secara otomatis ketika sistem dimulai (bahkan jika tidak ada yang masuk), Anda harus menjalankannya sebagai layanan - di prompt perintah baru yang ditinggikan (sebagai administrator), ketik:

httpd.exe -k install

Itu saja, sekarang Anda memiliki layanan baru di Layanan (Windows + R lalu ketik "services.msc" lalu tekan Enter) bernama "Apache2.4" yang dapat Anda kontrol seperti halnya layanan Windows lainnya.

Membatasi akses Apache localhosthanya - opsional

Jika Anda mengatur ini untuk tujuan pengembangan Anda ingin memastikan bahwa tidak seorang pun kecuali Anda dapat mengaksesnya, firewall Anda harus sudah mengurusnya, tetapi mari kita tambahkan lapisan keamanan lainnya dengan memberi tahu Apache untuk menerima permintaan dari lokal hanya mesin.

Buka file konfigurasi Apache C:\Apache24\conf\httpd.conf, cari blok direktori default <Directory "c:/Apache24/htdocs">.

Pada akhirnya jika itu, harus ada garis Require all granted, ini berarti bahwa siapa pun dapat mengakses server ini. Mari kita buat Require localyang hanya memungkinkan akses dari mesin lokal.

Juga, Anda dapat memberitahu Apache untuk hanya mengikat ke antarmuka loopback, dengan cara itu meskipun firewall dan arahan kontrol akses yang disebutkan di atas gagal, server masih tidak akan terbuka untuk seluruh internet.

Untuk ini, cari Listendirektif (secara default diatur ke 80) dan ubah menjadi berikut:

Listen 127.0.0.1:80
Listen [::1]:80

Baris pertama cukup jelas, yang kedua adalah yang setara pertama IPv6, tanda kurung digunakan dalam notasi IPv6 untuk memisahkan alamat dan port.

Simpan file, jika Anda sudah menjalankan server kemudian restart untuk mengambil perubahan kami ke akun, dan sekarang hanya localhostmemiliki akses, semua orang akan mendapatkan 403 Forbidden.

PHP

Saya sarankan Anda membaca dokumentasi PHP resmi tentang menginstalnya di sistem Windows.

Unduh binari PHP terbaru dari halaman pengunduhan resmi PHP untuk Windows , pilih versi aman yang cocok dengan versi bit instalasi Apache Anda (x86 untuk 32-Bit, x64 untuk 64-Bit).

Versi non-thread-aman hanya ketika dijalankan sebagai biner CGI - info lebih lanjut di sini .

Versi yang saya gunakan adalah ini: PHP 5.6.2 VC11 x64 Thread Safe . Versi terbaru saat jawaban ini terakhir diperbarui: PHP 7.3.3 VC15 x64 Thread Safe (lihat tanggal edit di bagian bawah posting).

Buat PHPfolder kosong di root hard drive Anda, dan ekstrak arsip yang diunduh sebelumnya di sana, Anda harus memiliki path seperti C:\PHP\ext, jika tidak, Anda melakukan sesuatu yang salah.

Di C:\PHP, ganti nama php.ini-productionatau php.ini-development(tergantung pada apa yang Anda inginkan) php.ini.

Buka php.inifile itu, cari extension_dir = "ext"dan batalkan komentar pada baris itu (hapus yang pertama ;). Ini menetapkan dir ekstensi default ke ext(yang memutuskan untuk C:\PHP\extdan menghindari keharusan untuk menambahkan ext/ke semua jalur ekstensi secara manual seperti di versi sebelumnya dari posting ini.

Sekarang konfigurasikan Apache untuk menggunakan PHP itu, dengan mengedit C:\Apache24\conf\httpd.conf- setelah semua LoadModulebaris, tambahkan berikut ini:

(Follow adalah untuk PHP 7 hanya )

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(Berikut ini untuk PHP 5 hanya )

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Sekarang cobalah untuk memulai Apache secara manual dengan membuka command prompt C:\Apache24\bindan menjalankan httpd.exe- jika Anda tidak melihat kesalahan, itu berarti file konfigurasi Anda valid dan PHP kemungkinan besar berfungsi .

Anda dapat menguji instalasi PHP Anda dengan membuat file seperti info.phpdengan <?php phpinfo();di dalamnya dan pergi http://localhost/info.php- Anda akan melihat sedikit info tentang sistem Anda dan instalasi PHP Anda dan semua modulnya. Jika Anda mendapatkan sesuatu yang lain seperti "Kesalahan server internal" itu berarti ada sesuatu yang salah.

Anda sekarang dapat membunuh proses Apache Anda saat ini (Ctrl + C di konsol) dan memulai layanan - bagian berikut tidak berinteraksi dengan Apache dan dapat dilakukan dengan server sudah dimulai.

Komposer - opsional

Komposer adalah alat untuk manajemen dependensi dalam PHP, seperti manajer paket. Hal ini memungkinkan untuk menginstal paket PHP dengan mudah dan bahkan seluruh kerangka kerja.

Komposer membutuhkan ekstensi PHP OpenSSL untuk diaktifkan, jadi mari kita aktifkan C:\PHP\php.ini.

Gunakan fungsi pencarian editor teks Anda untuk mencari php_openssl.dll, seharusnya sudah ada baris komentar untuk itu, cukup batalkan komentar pada baris itu.

Sekarang unduh pemasang Windows dari Composer dari halaman unduh mereka - atau cukup gunakan tautan langsung ini .

Ikuti instruksi, ketika diminta untuk path ke PHP, browse ke C:\PHPdan pilih php.exe.

Itu saja, Komposer sekarang diinstal di seluruh sistem dan dapat digunakan dari mana saja - Anda dapat mencobanya, cukup buka command prompt baru (Anda tidak dapat menggunakan yang sudah terbuka karena perlu membaca PATHvariabel baru yang ditetapkan oleh Komposer installer) dan ketik composer.

Anda harus mendapatkan logo ASCII-art yang bagus dan sesuatu seperti ini:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

Ekstensi PHP MySQL - opsional

Jika Anda ingin mengakses database MySQL dari PHP, Anda harus mengaktifkan ekstensi yang memungkinkan Anda melakukannya, seperti php_mysqliatau php_pdo_mysql- Saya sarankan untuk mengaktifkan keduanya.

Buka file konfigurasi PHP C:\PHP\php.inidi editor teks Anda dan cari php_mysqliatau php_pdo_mysql- mereka seharusnya sudah ada, batalkan komentar mereka.

Selesai, sekarang Anda dapat mengakses database MySQL menggunakan salah satu mysqliatau PDO.

MySQL

Pada halaman pengunduhan MySQL Installer unduh penginstal web mysql-installer-web-community-xxxxx.msi.

Saya menggunakan mysql-installer-web-community-5.6.21.1.msi. Versi terbaru ketika jawaban ini terakhir diperbarui: mysql-installer-web-community-8.0.15.0.msi (lihat tanggal edit di bagian bawah posting).

Pemasang akan secara otomatis menginstal versi yang sesuai (32-Bit atau 64-Bit) tergantung pada sistem Anda, meskipun versi bit MySQL tidak harus cocok dengan versi Apache dan PHP tetapi masih bermanfaat untuk menggunakan versi 64-bit komputer Anda. sistem mendukungnya untuk memanfaatkan lebih dari 3 GB RAM , itu cukup penting karena server basis data cenderung menggunakan banyak RAM.

Ikuti langkah-langkah di penginstal, jika Anda menginstal ini untuk pengembangan maka Developer defaultakan menjadi pilihan terbaik Anda, itu juga akan menginstal MySQL Workbench yang merupakan klien GUI asli, sehingga menghindari Anda harus menginstal alat berbasis web yang lambat seperti PHPMyAdmin jika Anda tidak nyaman menggunakan klien baris perintah.

Setelah semuanya terpasang, penginstal akan menanyakan beberapa nilai konfigurasi dasar Anda, saya sarankan menonaktifkan "Buka port firewall untuk akses jaringan" kecuali jika Anda ingin mengakses database dari mesin lain di jaringan.

Atur kata sandi root - jika itu hanya untuk tujuan pengembangan dan firewall Anda memblokir koneksi masuk dari jaringan maka kata sandi yang kuat tidak diperlukan.

Terakhir, Anda dapat menonaktifkan MySQL Notifier yang tidak berguna dengan mengklik kanan ikon baki, masuk ke Tindakan -> Opsi, lalu hapus centang pada Run at Windows Startupkotak centang dan terapkan. Itu akan menghemat Anda beberapa MB RAM dan menghindari memperlambat mesin Anda ketika sedang boot.

Dan itu saja, Anda sekarang memiliki server WAMP yang berfungsi penuh yang berjalan sebagai layanan dan tidak bergantung pada pengguna mana pun (dapat diakses bahkan jika tidak ada yang masuk).

Perhatikan bahwa saya tidak tahu tentang keamanan ini, untuk tujuan pengembangan saya akan mengatakan ini cukup aman karena firewall Anda harus memblokir koneksi masuk untuk kedua Apache (port 80 dan atau 443) dan MySQL (port 3306).

Ini diuji pada instalasi Windows 7, itu juga harus berfungsi dengan baik pada Vista, Windows 8 dan mungkin Windows Server 2008/2012 - jangan ragu untuk berkomentar dan / atau downvote jika itu tidak terjadi.

Zechariah Raman
sumber
3
Saya hanya perlu mencatat bahwa mungkin perlu batalkan komentar pada extension_dir = "ext" untuk Windows di php.ini.
chivvijim
@jaffamcneill memang Anda benar, saya memperbarui jawaban saya untuk akun itu.
Ypu menyelamatkan hidupku. Saya berjuang dengan ini selama satu minggu terakhir tetapi mysql tidak akan diaktifkan di phpinfo. Saya memperbaikinya dengan bantuan Anda. Terima kasih banyak.
clever_bassi
Kapan kita harus menggunakan modul mod_fcgid? Saya punya masalah adalah saya memiliki banyak pengguna di sistem pada saat yang sama membuat beberapa permintaan. Saya membutuhkan versi 64bit karena 32 bit kehabisan memori (VFP ODBC dengan permintaan laporan yang banyak). Apakah pengaturan Anda di atas berfungsi dengan baik atau apakah saya perlu menggunakan modul php_fcgid dan menginstal PHP sebagai cgi moodule? Ini selalu membingungkan saya ... Terima kasih atas wawasan apa pun.
Jeremy
1
Ketika MSVCR110.dllkesalahan muncul (pada versi Apache saat ini) saya akhirnya menginstal Visual C ++ Redistributable 2010 SP1. Setelah itu saya mendapatkan kesalahan lain tentang file tersebut VCRUNTIME140.dll, yang mengharuskan saya untuk menginstal Visual C ++ Redistributable untuk Visual Studio 2015.
Coded Monkey
8

PHP 7

Petunjuk dalam jawaban di atas berfungsi dengan baik pada Juli 2017, namun, jika Anda ingin menggunakan PHP 7, Anda harus menambahkan baris berikut C:\Apache24\conf\httpd.conf, alih-alih yang ada di jawaban itu (yang hanya berfungsi untuk PHP 5) [Tambahkan yang berikut setelah semua LoadModulebaris] :

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Pastikan semua jalur sudah benar. Jika Anda tidak memiliki php7apache2_4.dlldalam direktori PHP Anda, Anda mungkin mengunduh paket yang salah.

rahuldottech
sumber