Windows ortamında geliştirme yapmak için birçok harici yazılımı farklı araçlarla kurmamız gerekiyor. Bunların bazıları kendi ortamlarında çalışırken birçoğu sistemin geneline etki eden yan etkilere sebep oluyor. Özellikle hayatımıza SSD sürücüler girmeden önce Visual Studio ve özellikle Microsoft SQL Server kurulumu yapan kişiler sisteme ne kadar müdehalede bulunduğunu ve genel bir yavaşlamaya sebep olduklarını bilirler. Hem bu tarz yan etkilerin önüne geçmek her de her ortamda aynı geliştirme ortamını sağlayabilmek adına paket yöneticilerini kullanabiliriz.
Paket yöneticileri linux ile uğraşanların yabanclı olduğu bir kavram değil. apt, pacman, yum gibi farklı paket yöneticileri linux’ün ilk günlerinden beri hayatımızı kolaylaştıran araçlar arasında buluyor. Bu tarz araçlar ile linux ortamında yazılım kurulumlarını kolayca gerçekleştirebiliyoruz.
Windows için bu paket yöneticilerine alternatif olarak karşımıza ilk çıkan yazılım chocolatey oluyor.
Chololatey’i kurduktan sonra artık linux ortamındaki apt-get install
komutuna benzer şekilde choco install mysql
benzeri komutlar ile kurulum yapabiliyoruz. choco oldukça geniş bir paket arşivine sahip vlc den sql server express e kadar birçok paketi choco reposunda bulabilirsiniz.
https://chocolatey.org/packages
Scoop da chocolatey’e benzer bir paket yöneticisi fakat çok daha minimal bir anlayışa sahip. Her şeyden önemlisi scoop ile yüklediğiniz araçlar sisteminize müdehale etmiyor. Kullanıcı seviyesinde yükleniyor ve bu yazılımları yüklemek için scoop’a admin yetkisi vermenize bile gerek kalmıyor. Scoop üzerinden örneğin mysqli yüklediğinizde scoop otomatik olarak servis oluşturmuyor. Bu aşamaları da kendiniz isterseniz yapabiliyorsunuz.
Scoopu yüklemek için powershell üzerinden alttaki komutu çalıştırmanız yeterli.
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Detaylar için scoop’un resmi sitesine de bakabilirsiniz
Artık scoop install ile istediğimiz araçları yükleyebiliriz. Eğer kullanmak istediğiniz araçların son sürümlerini değil de önceki sürümlerini yüklemek isterseniz versions bucketını da scoop a dahil etminizde fayda var. bunun için alltaki komutu kullanabilirsiniz.
scoop bucket add versions
Şu aşamadan sonra scoop update diyerek güncel kurulum adreslerini çekip mysql ve php kurulumunu yapabiliriz.
Kurulumunu yapabileceğimiz paketleri kontrol etmek için scoop search komutunu kullanabiliriz.
scoop install php mysql56
diyerek php7 ve mysql5.6 kurulumunu gerçekleştirebiliriz. Bu işlemden sonra komut satırı üzerinden php
, mysql
, mysqld
, mysqladmin
gibi komutları kullanabiliyoruz.
varsayılan kurulumda mysql in şifresi bulunmuyor şifre belirmemek için alttaki komutu kullanabilirsiniz
mysqladmin -u root password newpassword
mysql’i windows servisi haline getirmek için mysqld üzerinde bulunan install komutunu kullanabiliriz.
mysqld --install-manual
Ardından windows servis yöneticisi üzerinden mysql’in başlangıcını otomatik yaparsak sistem başlangıcından otomatik olarak başlayacaktır. Windows servis penceresini hızlı açmak için başlat > çalıştır (Win+R) üzerinden services.msc
ile ulaşabiliriz.
Artık mysql i komut satırı üzerinden kullanabiliriz
Benzer şekilde php’nin de komut satırından sürümünü kontrol edebiliriz
Php ile istediğimiz dizinde yerel geliştirme ortamı başlatmak için ise
php -S localhost:3000
komutunu kullanabiliyoruz
ektra php extesionları açmak için php.ini dosyasınındaki
extension_dir = "ext"
satırındaki commenti kaldırıp istediğimiz extensionları aktifleştirmemiz yeterli. örnek bir php.ini için alttaki linke bakabilirsiniz.
https://gist.github.com/roser137/7228628d1db04a8094f485f6bba332a1
Bu sayede wamp veya xampp sistemlerinde olduğu gibi alt dizin oluşturmaya gerek kalmadan python ve node benzeri bir şekilde doğrudan localhost üzerinden geliştirme yapabiliyoruz.
Bu şekilde yaptığmız geliştirme ortamında .htaccess
gibi dosyalar ile apache’ye yönelik ayarlamalara gerek kalmadan sorunsuzca routing işlemlerini gerçekleştirebiliyoruz.
nssm ile başlangıça servis yerleştirme
scoop ile yüklenen paketler sisteme müdehale etmiyor, ek windows servisleri oluşturmuyor. mysql için bunu yukarıda anlattığım gibi yapabiliyoruz çünkü mysql bunu dahili olarak destekliyor. fakat php, nginx gibi yazılımlar kurmak ve bunları başlangıça yerleştirmek istiyorsak nssm den faydalanbiliriz.
scoop ngix php cgi örnek config
server { listen 80; server_name localhost; root c:/users/user/www; location / { autoindex on; index index.html index.htm index.php; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Şimdilik bu kadar. İlerleyen yazılımlarında scoop ile grep, curl, ack gibi araçlar ile geliştirme ortamımızı nasıl daha kullanışlı hale getirebiliriz onlara bakacağız. Ayrıca aynı makinede farklı python, php versionlarını nasıl yönetebiliriz onları inceleceğiz.