Windows Ortamında Grav Kurulumu
Grav içerik yönetimi uygulamasına dair daha önce kurulumdan geliştirme eklentilerine değin pek çok yazı yayınlama imkanım oldu ve bu yazılar neticesinde de pek çok soru ve istek mesajı aldım.
İçerik planlarım çerçevesinde net bir zaman veremesemde tema ve eklenti geliştirme süreçlerine dair de detaylıca değinmek gibi bir niyetim var. Diğer yandan, üretilen içerikleri ayrıca video olarak da paylaştığıma tanıklık etmiş olabilirsiniz.
Genel olarak, bu yazılarda macOS ve Ubuntu işletim sistemlerinde değinmemin nedeni elbette taraflıktan ziyade Windows işletim sistemine oldukça yabancı olmam. Grav ile ilgili aldığım son mesaja istinaden bu konuda bir değişiklik yapmak, kenarda duran birkaç fikri bir arada değerlendirmek istedim. Mesaj özetle Kirby alternatifi olarak Grav’ın değerlendirilmesi, ancak CMD aracılığıyla işlemlerim kolay yürütülemiyor oluşu üzerineydi. Grav’ın hala hak ettiği değeri görmediğini düşünen biri olarak elbette ilgili konuya kayıtsız kalmak istemedim ve Windows ortamında Grav kurulumu ve yönetimi üzerine bir yazı için kolları sıvadım.
Windows kurulu bir bilgisayarım olmadığı, Parallels1 gibi bir uygulama ile de bilgisayarıma gereksiz bir yük oluşturmamak adına Windows Azure2 üzerinde bir sanal makine oluşturmaya karar verdim. Şimdiye kadar kişisel işlerimde sıklıkla DigitalOcean kullanmış olmam sebebiyle Azure ortamını da merak etmekteydim. Böylelikle bu merakımı da bir nebze olsun gidermek istedim. Diğer yandan Windows 10’u da kurcalama imkanım olacağı için gayet uygun bir çözüm olduğunu düşünüyorum. Siz hali hazırda Windows işletim sistemi kurulumu bir makineye (tavsiyem Windows 10) sahipseniz sanal makine oluşturma adımlarını atlayıp PHP ve Apache kurulumlarına ya da XAMPP düzenlemelerine geçebilirsiniz.
Windows Azure ve Windows 10 Sanal Makine
Sanal Makineler > Ekle > Görünüm altında yer alan işletim sistemleri arasından VM (Virtual Machine / Sanal Makine) için temel işletim sistemi olarak Windows 10 Pro 1809’u seçtim. Unutmadan, Gelen Bağlantı Noktaları alanından web yayını için 80 ve RDP bağlantısı için 3389 portlarına izin vermelisiniz. RDP (Remote Desktop Protocol) bir uzak masaüstü bağlantı protokolü. Bu protokol sayesinde Windows makinemize uzaktan bağlantı sağlayabilir ve işlemler gerçekleştirebiliriz. RDP Yönetici Hesabı‘nı da tanımlamanın ardından Gözden geçir + oluştur diyerek işlemi başlattım. Ortalama 6-7 dakikalık bir sürede makine hazır hale gelmekte. Bir sonraki aşamada RDP üzerinden uzak makineye bağlanacak ve Apache ile PHP kurulumlarını gerçekleştireceğim.
RDP Bağlantısının Sağlanması
Yukarıdaki adımların neticesinde artık sanal makinem Sanal Makineler altında listelenmekte. Bir sonraki aşamada makine adını ya da ayarlar linkini (…) tıklayarak Bağlan seçeneklerine ulaşabiliriz. RDP seçeneği ile bağlantı sağlayacağız. Dolayısıyla RDP dosyasını bilgisayarımıza indirip Remote Desktop Connection uygulamasıyla ilişkilendirmeliyiz. İndirdilen dosyayı çift tıklamamız bu işlem için yeterli olacaktır. Bağlantının sağlanması için VM (Sanal Makine) oluştururken girdiğimiz kullanıcı adı ve şifresini ekrandaki ilgili alanlara girmeliyiz. Bilgileri doğru bir şekilde girmiş isek önce Windows 10 işletim sistemi karşılama ekranı ve ardından Masaüstü karşımıza çıkacaktır.
Bilgisayarınızda PHP ve/veya Apache kurulu değilse aşağıdaki adımları takip ederek ilgili kurulumları gerçekleştirebilirsiniz. Önemli olan husus, XAMPP gibi3 geliştirme ortamlarının kendilerine has ayarlar barındırabileceğini unutmamanız. Bu nedenle en temelde PHP ve Apache kurulumlarını ayrıca gerçekleştirmek istedim. Şayet, XAMPP aracılığıyla PHP ve Apache kurulumlarını kontrol ediyorsanız aşağıdaki kurulum işlemlerini es geçebilir ve doğrudan Environments Variables başlığı altındaki XAMPP notuna göz atabilirsiniz.
Windows Ortamında PHP Kurulumu
PHP > Windows sayfasında Windows için yayınlanan son PHP sürümlerini görebilirsiniz4. Ben kurulum işleminde PHP 7.3 sürümünü tercih ettim ve sanal makine içerisinde açık olan Microsoft Edge internet tarayıcısı aracılığıyla ilgili arşiv dosyasını sanal makineye indirdim. Arşiv *.zip
dosyası içeriğini C:\
altına php adıyla aktardım. Ardından, VC Redist kurulum paketini de birkaç adımlık işlemin ardından makineye kuruldum.
Windows Ortamında Apache Kurulumu
Apache Lounge web sayfasından yayınlanan son Apache sürümünü görüntüleyip ilgili arşiv dosyasını ve C++ Redistributable Visual Studio 2017 paketini sanal makineye indirdim5. Örnek kurulum işleminde httpd 2.4.38 sürümünü tercih ettim. Arşiv *.zip
dosyası içeriğini C:\
altına Apache24 adıyla aktardım.
Apache Kurulum Ayarları
Kurulumların ardından C:\Apache24\conf
altında bulunan httpd.conf
dosyasını bir metin editörü ile açarak uygun bir yere (mümkünse metin dosyasının en alt bölümüne) şu satırları eklemeliyiz.
LoadModule php7_module "C:/php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"
Bu eklemelerin ardından var olan bazı alanların düzenlenmesi aşamasına geçebiliriz. httpd.conf dosyası içerisinde DirectoryIndex satırı bulup index.html
değerini index.php
olarak düzenleyebilirsiniz.
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
ServerName
değerini localhost
olarak güncellemek olacak. ServerName
aramasının ardından ilk olarak satırı yorum olarak tanımlayan #
işaretini kaldıralım ve sonrasında www.example.com
ifadesini localhost
olarak değiştirelim.
ServerName localhost:80
rewrite_module
modülünü aktifleştirmek için ilgili satırı bulalım ve satır başındaki yorum ifadesini (#
) kaldıralım.
LoadModule rewrite_module modules/mod_rewrite.so
Son olarak, Directory
içerisinde tanımlı Options Indexes FollowSymLink
satırını Options All
ve AllowOverride None
satırını AllowOverride All
şeklinde güncelleyelim. PHP kurulumu için ilk işlemlerimiz bu kadar. Yukarıdaki işlemlerin ardından MS-Dos tabanlı kod yazma konsolu olan CMD
uygulamasını açabilir ve Apache servis kurulumunu başlatabiliriz.
C:\Apache24\bin\httpd -k install
Bu komutun ardından eğer herhangi bir yazım hatası yapmamış isek kısa bir sürede kurulum işlemlerine geçilecek ve güvenlik duvarı bildirimi ile Apache servisine onay vermeniz istenecektir. Gerekli izni de vermenizin ardından kurulum işlemini sonlandırmış olacağız. Hata ile karşılaşmış ve ilgili hatayı düzenlemiş isek (yukarıdaki adımları tekrar kontrol ettiğimizi ve bir yazım hatası olmadığını varsayıyorum) httpd -k restart
ile Apache servisini yeniden başlatabilir ve işlemlerin kontrolünü sağlayabilirsiniz. Herhangi bir hata olmaması durumunda az önce de bahsi geçen güvenlik duvarı bildirimi karşınıza çıkacaktır. Yukarıdaki işlemlerin başarıyla tamamlanmasının ardından Windows işletim sistemi sistem ayarlarına küçük bir ekleme yapmamız gerekecek.
Environments Variables
Control Panel > System Properties > Advanced > Environments Variables > System Variables alanına yer alan Path satırını seçip Edit butonunu tıklayalım. Açıklacak yeni pencere içerisine New butonu aracılığıyla şu yeni 3 satırı ekleyelim ve ilgili pencereleri kapatalım.
C:\php
C:\Apache24
C:\Apache24\\bin
Bu satırları eklememizin ardından aşağıdaki komutu uygulayalım.
C:\Apache24\bin\httpd -S
Eğer şimdiye kadar gerçekleştirdiğimiz işlemlerde bir hata söz konusu olmadıysa şu dönüşü alırız.
VirtualHost configuration:
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex default: dir="C:/Apache24/logs/" mechanism=default
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=c:/Apache24
PHP Kurulum Ayarları
İlk olarak C:\php
klasörümüz altında yer alan php.ini-development
dosyasını -development
ifadesini kaldırarak php.ini
ismiyle güncelleyelim ve metin editörü ile bu dosyayı açalım. Bu dosya içerisinde ;
ifadeleri yorum olarak değerlendirilir ve işleme alınmaz. Bu nedenle işleme alınmasını istediğimiz satırların başında yer alan ;
karakterlerini kaldırmamız gerekir. İlk olarak extension_dir
satırını bularak bu işlemi gerçekleştirelim. İlgili satırın son hali şu şekilde olacaktır.
extension_dir = "ext"
Bir sonraki işlemlerimiz ise Grav kurulumunun gereksinim duyacağı geliştirmeleri aktifleştirmek; curl, ctype, dom, gd, json, mbstring, openssl, session, simplexml, xml, zip. extension
araması yaparak bu geliştirme tanımlamaları başında yer alan ;
ifadelerini kaldırarak geliştirmelerin işleme alınmasını sağlayabiliriz.
Bu işlemlerin ardından sanal makinemizi yeniden başlatabiliriz. VM’nin yeninde başlatılmasını ardından (elbette bu süreçte RDP oturumu da sonlanacaktır ve yeniden bağlantı kurmanız istenecektir) Microsoft Edge tarayıcısını açıp localhost adresini görüntüleyebiliriz. Başlangıç aşamasında bizi karşılayan index.html dosyası olacaktır. Hemen phpinfo()
fonksiyonunun olduğu bir php
dosyası oluşturalım. Erişime açılmasını istediğimiz dosyalarımız C:\Apache24\htdocs
klasörü içerisinde yer almakta. Metin editörünü açarak ifadesini yazıp dosyayı index.php
olarak kayıt etmemiz başlangıç için yeterli olacaktır.
XAMPP Kullanıyorsanız
Şayet, PHP ve Apache yönetimini XAMPP gibi bir geliştirme ortamı aracılığıyla sağlıyorsanız Environments Variables tanımlamalarındaki satırları XAMPP kurulumuna göre gerçekleştirmeniz gerekir.
C:\xampp\php
C:\xampp\apache
C:\xampp\apache\bin
C:\xampp\htdocs\grav\bin
C:\xampp\htdocs\grav\bin\grav
C:\xampp\htdocs\grav\bin\gpm
Bu tanımlamaların ardından Windows Ortamında Grav Cli İşlemleri başlığı altında belirtilen şekilde cli aracılığıyla işlemler gerçekleştirebilirsiniz.
Windows Ortamında Grav Kurulumu
PHP ve Apache kurulumlarını başarıyla tamamlamamızın ardından artık getgrav.org adresini ziyaret edebilir6 ve burada yer alan grav paketini makinemize indirebiliriz. Tavsiyem Admin eklentisinin de yer aldığı paketi indirmeniz yönünde olacaktır. Fakat birazdan admin eklentisinin yanı sıra cli aracılığıyla da nasıl grav kurulumumuzu yönetebileceğimizden bahsedeceğim. Grav paketimizi indirdik ve arşiv içeriğini C:\Apache24\htdocs
içerisine aktaralım. Bu sayede localhost
bağlantısını adres barına yazdığımızda bizi grav web sayfamız karşılayacaktır. Elbette farklı bir klasör oluşturup grav dosyalarınızı bu klasör altında da yayına açabilirsiniz. Örneğin, localhost/blog
şeklinde bir adres için grav dosyalarınızı C:\Apache24\htdocs\blog
klasörü içerisinde tutmalısınız.
Gerekli PHP geliştirmelerini ve Apache modüllerini kurulum sürecinde aktifleştirmiştik. Bu sayede localhost
aracılığıyla grav dosyalarımızı görüntülemek istediğimizde büyük ihtimalle sorunsuz bir şekilde karşılama ekranını görebileceğiz. Şayet bir hata almış iseniz ilgili açıklamayı takip ederek unuttuğunuz bir PHP ve/veya Apache düzenlemesini yukarıdaki kurulum adımlarındaki ilgili bölümü takip ederek tamamlayabilirsiniz.
Admin eklentisini kurmuş isek grav kurulumu bizi doğrudan admin hesabını oluşturacağımız ekrana yönledirecektir. İlgili kullanıcı bilgilerini doldurup formu gönderdiğimizde yönetim panelini görüntüleyebiliriz.
Windows Ortamında Grav Cli İşlemleri
Evet, admin paneli aracılığıyla içerik yönetimi başta olmak üzere tüm işlemleri kolaylıkla gerçekleştirebiliriz. Peki, admin plugin yerine komut satırı aracılığıyla işlemler yapmak istersek ne olacak?
Örneğin bin/grav list
komutunu kullanmayı deneyelim. Komutu uygulamamızın ardından şu dönüşü almamız oldukça muhtemel.
bin/grav list
'bin' is not recognized as an internal or external command,
operable program or batch file.
Bunun nedeni environment olarak bin/grav’ın bir anlam ifade etmiyor oluşu. Dolayısıyla tıpkı php ve Apache tanımlamalarında olduğu gibi sisteme bu ifadenin bir anlam taşıdığını söylemeliyiz.
Yine Control Panel > System Properties > Advanced > Environments Variables > System Variables alanına yer alan Path satırını seçip Edit butonunu tıklamalı ve açıklacak yeni pencere içerisine New butonu aracılığıyla şu yeni 3 satırı eklemeliyiz.
C:\Apache24\htdocs\grav\bin
C:\Apache24\htdocs\grav\bin\grav
C:\Apache24\htdocs\grav\bin\gpm
Artık grav cli komutumuzu php
üzerinden çalıştırabiliriz. Örneğin, tüm eklenti ve temalarımızı listeleyelim.
php bin/grav list
Ya da admin plugin kurmadığımızı varsayalım ve install işlemi gerçekleştirmek istiyor olalım!
php bin/grav install
Hatta yeni bir içerik oluşturalım.
mkdir C:\Apache24\htdocs\grav\user\pages\03.about
copy con C:\Apache24\htdocs\grav\user\pages\05.other\default.md
İçeriğimiz de şöyle olsun;
---
title: About
---
### Headings
İlgili içeriği kendinize göre özelleştirdikten sonra Ctrl + C
tuşlarına basarak dosyayı kapatabilirsiniz. Evet, hepsi bu kadar! Bu adımların sonucunda ister kişisel bilgisayarınızda, isterseniz Azure altında oluşturduğunuz Windows işletim sistemli bir sanal makinede grav web uygulamasını kurabilir ve deneme/geliştirme işlemleri gerçekleştirebilirsiniz.
Sonuç Olarak
Windows ortamında doğrudan PHP ve Apache kurarak ya da XAMPP gibi bir geliştirme ortamı aracılığıyla Grav için uygun ortamı sağlayabilirsiniz. Ek olarak ISS içerisinde de PHP kurulumu gerçekleştirebilir ve gerekli düzenlemelerle Grav’ı yayına açabilirsiniz. Gereksinim her ne olursa olsun, servisler arasında uygun bağlantıları sağladıktan sonra kullanılan ortamın pek bir önemi kalmayabiliyor. elbette, Grav flat-file özelliği sebebiyle gereksinimleri oldukça minimize ettiği için daha avantajlı bir hale geliyor.