Windows Üzerinde Apache PHP MySQL xDebug PhpMyAdmin Mail Server Kurulumu
Windows Üzerinde Apache PHP MySQL xDebug PhpMyAdmin Mail Server Kurulumu
[alert type=”success” close=”false”]Önemli Not: Aslında bu yazıyı yazmaya 2013 yılında başlamışım ve daha sonra da taslak olarak bırakmışım. Bu yazı en başta kendim için bir nottur. Zaman geçince bazı noktaları hatırlamakta zorlanabiliyoruz. Bu yazının mail server kurulumu ile ilgili kısmı ise başka bir yazıda ele alınacaktır.[/alert]
Apache PHP MySQL xDebug PhpMyAdmin kurulumu için bir çok hazır seçenek bulunmasına rağmen insanın bu kurulumları kendisi yapması kadar da zevkli bir iş yok. Çünkü sunucunuzu ayarlarken, en ince detaylara kadar girebilmek ve herşeye tam olarak hükmedebilmek işin profesyonellik kısmını olşturuyor. Ancak kurulum esnasında dikkat edilmesi gereken noktalar da yok değil. Kuruluma başlamadan önce Alet Çantamızı hazırlayalım isterseniz. Alet Çantamızda neler olacak?
Apache 2.4.34 Win64 VC15 PHP 7.2.8 Win64 VC15 (Thread Safe - TS) Zip Sürümü MySQL 5.5.61 Win64 (Siz son sürümünü de kullanabilirsiniz.) PHPMyAdmin 4.8.2 xDebug 2.6.1 PHP7.2 VC15 TS MySQL-Front 6.0
Alet Çantamızda bulunan her bir aracın kurulum alanında indirme adresleri verilecektir. Benim yukarıda verdiğim sürümlerin daha güncel hali bulunabilir. İsterseniz onları da indirip, aynı şekilde kurulumları tamamlayabilirsiniz. Ancak yine de dikkat edimesi gereken bazı hususlar mevcuttur. Birazdan kuruluma geçtiğimizde daha detaylı olarak irdeleyeceğiz ancak apache php ikilisinin mutlaka uyumlu olması gerekiyor. Aksi takdirde Apache sunucumuz kesinlikle çalışmayacaktır. Yine mevcut en üst sürümleri kullanmakta fayda görülse de bazen mevcut en üst sürümler bir çok hataları da beraberinde getiriyor. Ayrıca PHP sürüm yükseltmeleri o kadar da zor bir iş değil.
Gelelim artık kuruluma;
Kuruluma başlamadan önce, dosyalarımızı nereye kuracağımızı belirtmekte fayda var aslında. Çünkü sunucu işleri bunlar, derli toplu olması daha mantıklı. Ben kuruluma ait dosyaları da kodladığım sitelerimi de harddiskimde sadece sitelerim için oluşturduğum 20GB lık D: sürücümde tutuyorum. Böyle yapmamım da bir amacı var, format atmam gerektiğinde veya bilgisayar çöktüğünde kodlamış olduğum sitelere herhangi birşey olmuyor. Yine Apache ve PHP dosyalarımı da burada tutarak, formattan sonra sadece Apache servisini kurarak bütün yükten kurtulmuş oluyorum. Kurulum yeri tercihi size ait. Benim Apache ve PHP ye ait kurulum ve yerel sitelerimi barındırma şeklim aşağıdaki gibi olacak.
-D:/ --- Server ------ Apache ------ PHP ------ xDebug --- Sitelerim
Sizde bu şekilde bir tanımlama yaparsanız, hem dosyalara ulaşmanız kolay olacaktır hem de onları yönetmeniz. Benim geliştirebildiğim en kolay sistem bu.
KURULUM AŞAMALARI
- Ön Hazırlık
- Apache Kurulumu
- PHP Kurulumu
- MySQL Kurulumu
- phpMyAdmin Kurulumu
- xDebug Kurulumu
- MySQL-Front Kurulumu
APACHE SUNUCUSU İNDİRİLMESİ ve KURULUMA HAZIRLANMASI
Öncelikle Apache Sunucumuzu indirelim. Ben bunun için Apache Lounge adlı siteyi kullanıyorum. Apache dosyalarını en son PHP sürümlerine göre derliyorlar. Bize de sadece kullanmak kalıyor.
Apache Sunucularından : http://www.apachelounge.com/download/
İndirmeyi yukarıdaki adresten yapıyoruz. Şu anda en son VC15 (Visual C++ 2017 Redistributable) için Apache 2.4.34 sürümü mevcut. Ben bütün kurulumları 64 bit için yapacağım. Siz sisteminiz 32 bit ise veya 32 bit sürümleri kullanmak istiyorsanız, 32 bitlik versiyonunu da indirebilirsiniz. PHP dosyaları için de aynısı olması gerekiyor.
İndirme tamamlandıktan sonra indirdiğimiz zip dosyasına çift tıklıyor ve zip dosyasının içinde yer alan Apache24 klasörünün içeriğini (kendisini değil) D:\Server\Apache klasörünün içine çıkartıyoruz. Şimdilik bu kadar, PHP için de yapılması gereken işlemleri yaptıktan sonra Apache için bazı işlemler yapacağız.
PHP İNDİRİLMESİ ve KURULUMA HAZIRLANMASI
Dosyalar için PHP Sürümü: https://windows.php.net/download/
Bu yazı hazırlanırken PHP 7.2.8 en son sürümdü. Burada dikkat etmeniz gereken en önemli husus, Apache için VC sürümü ne ise, PHP için de aynı olmak zorunda. Dolayısıyla VC15 Apache sürümü için VC15 PHP sürümünü kullanabilirsiniz. Yine Apache sunucu üzerinde PHP koşacağımız için Thread Safe (TS) sürümünü indirmemiz gerekiyor. Yoksa zaten Apache sunucusu çalışamayacak. İndirdiğimiz zip dosyasının içeriğini D:\Server\PHP içerisine çıkartıyoruz.
APACHE ve PHP’nin ÇALIŞIR HALE GETİRİLMESİ
Artık Apache ve PHP dosyalarımızı da çıkarttığımıza göre düzenlemelerimize başlayabiliriz. Öncelikle PHP ile ilgili düzenlemelerimizi yapalım:
PHP dosyalarını çıkarttığınız klasörünün içerisinde php.ini-development (Geliştiriciler için ayarları yapılmış. İsterseniz php.ini-production olanını da düzenleyebilirsiniz) adında bir dosya var. Bu dosyayı php.ini olarak tekrardan adlandırın ve bir metin düzenleyici ile açın.
// Bul memory_limit = 128M // Değiştir (Benim bilgisayarımdaki RAM miktarı 16GB o yüzden PHP için 1GB versem sorun yok. Siz değiştirmeyebilirsiniz.) memory_limit = 1024M // Bul ; extension_dir = "./" // Bu şekilde değiştir. Ancak PHP klasörünün yolunu kendi kurulumunuza göre belirtin. // ext klasörü eklentilerin olduğu klasördür. extension_dir = "D:/Server/PHP/ext" // Bu satırları bul ;extension=bz2 ;extension=curl ;extension=fileinfo ;extension=gd2 ;extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=interbase ;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc ;extension=pdo_pgsql ;extension=pdo_sqlite ;extension=pgsql ;extension=shmop ; The MIBS data available in the PHP distribution must be installed. ; See http://www.php.net/manual/en/snmp.installation.php ;extension=snmp ;extension=soap ;extension=sockets ;extension=sqlite3 ;extension=tidy ;extension=xmlrpc ;extension=xsl // Kullanacak olduğunuz eklentilerin başındaki ; işaretini silin. Kullanmayacaklarınızın başından ; ü kaldırmayabilirsiniz. // Bul ;date.timezone = // Bu şekilde değiştir date.timezone = Europe/Istanbul
php.ini dosyamızı kaydedip, kapatıyoruz. Şimdi PHP eklentilerimizin çalışabilmesi için PHP klasörünün yolunu Windows a bildirmemiz gerekiyor. “Bu Bilgisayar” a sağ tıklayıp özellikler diyoruz. Açılan pencerenin sol tarafında yer alan “Gelişmiş Sistem Ayarları” kısmına tıklıyoruz. Açılan pencereden altta bulunan “Ortam Değişkenleri” butonuna tıklıyoruz. Açılan yeni pencere “Sistem Değişkenleri” kısmında “PATH” değişkenini buluyoruz ve çift tıklıyoruz. Yeni bir pencere açılacak, orada “Yeni” butonuna tıklayıp açılan yere “D:\Server\PHP” (tırnaklar olmadan) yazıyoruz. Tamam Tamam Tamam deyip pencereleri kapatıyoruz.
Bu adımdan sonra bilgisayarımızı yeniden başlatmakta fayda var. Aksi takdirde bazı eklentileri PHP ye tanıtmakta büyük sıkıntılar çıkabiliyor. O yüzden çok GEÇERLİ bir sebebiniz YOKSA lütfen BİLGİSAYARINIZI YENİDEN BAŞLATIN.
Bilgisayarınızı yeniden başlattıktan sonra APACHE ayarlarımızı tamamlayalım.
// D:/Server/Apache/conf klasörünün içerisinde httpd.conf dosyasını metin editörü ile açıyoruz. // Bul Define SRVROOT "c:/Apache24" // Değiştir Define SRVROOT "D:/Server/Apache" -------------------------------------------------- // Bul #LoadModule rewrite_module modules/mod_rewrite.so // Değiştir LoadModule rewrite_module modules/mod_rewrite.so -------------------------------------------------- // Bul #LoadModule vhost_alias_module modules/mod_vhost_alias.so // Altına Ekle - Kendi klasör yapımıza göre #PHP7 LoadModule php7_module "D:/Server/PHP/php7apache2_4.dll" PHPIniDir "D:/Server/PHP" -------------------------------------------------- // Bul <Directory /> AllowOverride none Require all denied </Directory> // Değiştir <Directory /> AllowOverride none #Require all denied </Directory> -------------------------------------------------- // Bul DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs"> // Değiştir DocumentRoot "D:/Sitelerim" <Directory "D:/Sitelerim"> -------------------------------------------------- // Yukarıdaki satırların hemen altında yer alan // Bul AllowOverride None // Değiştir AllowOverride All -------------------------------------------------- // Bul DirectoryIndex index.html // Değiştir DirectoryIndex index.html index.php -------------------------------------------------- // Bul AddType application/x-gzip .gz .tgz // Altına Ekle AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps -------------------------------------------------- // Bul # Virtual hosts #Include conf/extra/httpd-vhosts.conf // Değiştir # Virtual hosts Include conf/extra/httpd-vhosts.conf
Kaydedip kapatıyoruz. D:/Server/Apache/conf/extra klasörünün içerisine giriyoruz ve httpd-vhosts.conf dosyasını metin editörü ile açıyoruz. ve içindeki herşeyi silip içine aşağıdakini yazıyoruz.
# Virtual Hosts # # Required modules: mod_log_config Include conf/virtualhosts/*.conf
httpd-vhosts.conf dosyamızı da kaydedip kapatıyoruz. D:/Server/Apache/conf klasörünün içerisine geliyor ve “virtualhosts” adında yeni bir klasör oluşturuyoruz. Sanal sunucularımız ile ilgili ayarlar bu klasörün içerisinde yer alacak. Bunun için hemen bir tane sanal sunucu oluşturalım. Benim tavsiyem bir standart oluşturmanız ve gerçekte kullanılmayan bir domain uzantısı kullanmanız. Ben bir tane test için sanal sunucu oluşturacağım.
Bunun için domain olarak “test.era” seçiyorum. era gerçekte kullanılan bir domain uzantısı değil. com bile kullanabilirsiniz ancak öyle bir site varsa artık siteye değil kendi bilgisayarınızda çalışan sanal siteye ulaşacaksınız. O yüzden dikkatli olun. Mesela ben vakti zamanında okullardaki bilgisayarlardan çocuklar youtube a girmesinler diye youtube.com adında bir sanal sunucu oluşturmuştum ve gerçek youtube.com a erişimi engellemiştim. 🙂 Neyse konumuza geri dönecek olursak, sanal sunucu oluşturma ile ilgili program paylaşacağım. Eğer benim stilimde dosya oluşturmalar yaparsanız programı sorunsuz kullanabileceksiniz. Onunla ilgili başka bir yazı yayınlayacağım. Şimdi gelelim “test.era” adında sanal sunucumuzu oluşturmaya:
D:/Sitelerim içinde “test.era” adında bir klasör oluşturun. D:/Server/Apache/conf/virtualhosts klasörünün içinde “test.era.conf” adı altında bir dosya oluşturun ve notepad ile açın ve aşağıdaki kodları yapıştırın.
<virtualhost *:80> DocumentRoot "D:/Sitelerim/test.era" ServerName test.era ServerAlias www.test.era ErrorLog "logs/test.era-error.log" CustomLog "logs/test.era-access.log" common <directory "D:/Sitelerim/test.era"> AllowOverride All Options Indexes FollowSymLinks Order allow,deny Allow from all </directory> </virtualhost>
En son olarak C:/Windows/System32/drivers/etc içerisinde yer alan “host” dosyamıza bazı satırlar ekleyeceğiz. host dosyamız yazma koruması altında olabilir. Ya dosyaya yazma izinlerini verin. Ya da dosyanın adını host.bak şeklinde değiştirip, yeni bir dosya açın ve adını host yapın. Sistem klasörünün altında yer aldığı için izinleriniz olmadığı uyarılarını alırsanız en kolay yol, “host” dosyasını masaüstüne taşımak orada düzenlemek ve en son yine klasörüne koymaktır. Ancak ileride paylaşacağım sanal sunucu programının düzgün çalışabilmesi için etc klasörünün yazma korumasını kaldırmak olacaktır. Bununla ilgili google da kısa bir arama yapabilirsiniz. Dikkat etmeniz gereken husus, bu dosyanın uzantısı yoktur. Host dosyasının içerisine;
127.0.0.1 test.era 127.0.0.1 www.test.era
yazıp kaydedin ve kapatın.
Şimdi gelelim artık Apache sunucumuzun kurulumuna ve çalıştırılmasına. Windows tuşuna basıp “cmd” yazıyoruz ve yönetici olarak çalıştır diyor. Hizmet kurulumu yapacağımız için yönetici yetkilerine sahip olmamız gerekiyor. Komut satırında sırasıyla aşağıdaki komutları veriyoruz. Her bir satır bir komut demektir. Yani satır tamamlanınca enter tuşuna basmanız gerekiyor.
D: cd D:\Server\Apache\bin httpd -k install
“The ‘Apache2.4’ service is successfully installed.” ifadesini gördüğünüzde Apache sunucusu başarıyla kurulmuş demektir. Aşağıdaki komutu da verdikten sonra Apache sunucusu başlamış olacaktır.
httpd -k start
MySQL KURULUMU
MySQL Sunucu için doğrudan indirme linkleri aşğıdaki gibidir:
MySQL 8.0.12 x64 http://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.12-winx64.msi
MySQL 5.7.23 x86 http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.23-win32.msi
MySQL 5.7.23 x64 http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.23-winx64.msi
MySQL 5.6.41 x86 http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.41-win32.msi
MySQL 5.6.41 x64 http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.41-winx64.msi
MySQL 5.5.61 x86 http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.61-win32.msi
MySQL 5.5.61 x64 http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.61-winx64.msi
MySQL 5.1.73 x86 http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.73-win32.msi
MySQL 5.1.73 x64 http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.73-winx64.msi
Ben daha az yer kapladığı için MySQL 5.5.61 ü kuruyorum. MySQL 8 sürümüyle birlikte 32 bitlik sürüm göremedim. Ayrıca MySQL 8 sürümünün direk kurulum dosyasını indiriseniz, içinde MySQL Configuration Tools adlı dosyayı bulamayacağınızdan MySQL sunucunuzun ayarlarını komut satırından yapmanız gerekiyor. O yüzden MySQL 8 sürümünü MySQL Installer ile kurun. MySQL 5 sürümlerinde verilen linklerin hepsi kendi alt sürümlerinin en son versiyonlarıdır. İstediğimiz MySQL sürümünü indirdikten sonra kurulumu next next next şeklinde bitiriyoruz. Önemli olan kısım ise MySQL Configuration Tool kısmı. Burada sunucunuzu developer olarak seçin ve kurulum esnasında mutlaka bir root parolası belirleyin. Yine belirtmekte fayda var MySQL 5.1 sürümünü kuracaksanız, PHPMyAdmin çalışmayacaktır.
PHPMYADMIN KURULUMU
Öncelikle PHPMyAdmin için bir sanal sunucu oluşturmakla işe başlayalım. Apache ve PHP’nin Çalışır Hale Getirilmesi başlığının sonunda hatırlarsanız bir sanal sunucu eklemiştik test.era diye. Şimdi yine aynı adımları uygulayarak “phpmyadmin.era” adında yeni bir sanal sunucu daha oluşturuyoruz. phpmyadmin.era.conf dosyasının içeriğini aynı test.era.conf ta olduğu gibi oluşturuyor ve test.era yazan yerlerin adlarını phpmyadmin.era şeklinde değiştiriyoruz. Bu adımdan sonra Apache sunucusunu yeniden başlatmanız gerekiyor. Bunun için D:\Server\Apache\bin klasörünün içinde yer alan ApacheMonitor.exe adlı dosyayı çalıştırın ve Restart butonuna tıklayarak Apache servisini yeniden başlatın. Artık yeni sanal sunucunuz çalışır hale gelecektir. Gelelim dosyalara:
PHPMyAdmin 4.8.2 https://www.phpmyadmin.net/downloads/ adresinden phpMyAdmin-4.8.2-all-languages.zip adlı dosyayı indiriyoruz. Buradaki 4.8.2 değişebilir. İndirdiğimiz sıkıştırılmış dosyanın içerisindeki dosyaları D:\Sitelerim\phpmyadmin.era klasörünün içerisine çıkartıyoruz. Burada dikkate etmemiz gereken sıkıştırılmış dosyayı çift tıklayarak açtığımızda içerisinde “phpMyAdmin-4.8.2-all-languages” adlı bir klasör göreceğiz. Bu klasörün içerisindeki dosyaları yukarıdaki klasöre çıkartıyoruz. Yani phpmyadmin.era klasörümüzün ana dizininde “doc, examples, js, libraries, locale vb.” gibi klasörler olması gerekiyor.
Tarayıcımızı açıp http://phpmyadmin.era/setup diyoruz. Sunucular kısmından “Yeni Sunucu” diyoruz ve yeni bir pencere açılacak. Ayarlar aşağıdaki gibi olacak. İlk kısım sekme adı, ortadaki ayar adı, sondaki ifade de değeri şeklinde yazıyorum.
Temel ayarlar - Bu sunucunun ayrıntılı adı - localhost Kimlik doğrulaması - Kimlik doğrulaması türü - config Kimlik doğrulaması - Yapılandırma kimlik den. için kullanıcı - root Kimlik doğrulaması - Yapılandırma kimlik den. için parola - ****** (Buraya root için belirlediğiniz parolayı yazın)
Yukarıdaki bilgileri girdikten sonra uygula deyin. Sunucular kısmında artık localhost diye göreceksiniz. Yapılandırma dosyası bölümünden dili Türkçe yapıp “İndir” butonuna tıklayın. Verdiği php dosyasını da phpmyadmin.era klasörünün anadizinine koyun. Adres çubuğuna http://phpmyadmin.era/ yazdığınızda phpmyadmin in çalıştığını göreceksiniz.
xDebug KURULUMU
Hatırlarsanız test.era diye bir sanal sunucu kurmuştuk. O sanal sunucunun klasöründe (D:/Sitelerim/test.era) index.php diye bir klasör oluşturalım ve içerisine aşağıdaki kodları yazıp kaydedelim.
<?php phpinfo();
Adres çubuğuna http://test.era/ yazalım ve sitemizi açalım. Sayfadaki herşeyi Ctrl+A yaparak kopyalayalım ve https://xdebug.org/wizard.php adresini açıp oradaki kutucuğa yapıştıralım. “Analyse my phpinfo() output” butonuna tıklayalım. Sihirbaz bize hangi dosyayı indireceğimizi ve bunu nasıl tanıtacağımızı anlatıyor. DLL dosyasını indirin ve D:/Server/PHP/ext klasörünün içine atın. Sihirbazda yeşil ile renklendirilmiş zend_extension diye başlayan satırı php.ini dosyasınızın içine en alta yapıştırın. Bunun altında aşağıdaki satırları da yapıştırın. Yine D:/Server klasörü altında xDebug adında bir klasör oluşturun. Apache sunucunuzu tekrardan başlatın. Kurulum bu kadar. xDebug ile üretilen debug kayıtlarını da http://ceefour.github.io/wincachegrind/ adresinden indireceğiniz wincachegrind programı ile analiz edebilirsiniz.
[xDebug] xdebug.remote_enable = 1 xdebug.profiler_enable=On xdebug.profiler_output_dir="D:/Server/xDebug" xdebug.profiler_append=On
MySQL-Front KURULUMU
MySQL-Front ücretsiz (eskiden ücretliydi) bir MySQL veritabanı organizatörü. Kolay yoldan veritabanı ekleme, tablo ekleme, düzenleme, sorgu çalıştırma vb gibi işlemleri yapabiliyor. Kullanması gayet basit. Biraz kurcaladığınızda gayet kolay olduğunu fark edeceksiniz. Programı http://www.mysqlfront.de/ adresinden indirebilirsiniz.
Biraz uzun bir yazı olduğunun farkındayım. Bu yazının devamı daha gelecek. Eklemeyi düşündüğüm bir kaç nokta daha var.