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.

AA

İç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.

Azure - Sanal Makine Oluşturmak

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.

Azure - Sanal Makine Ayarları

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.

Azure - Sanal Makine

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.

Microsoft Remote Desktop

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 Çalıştırmak

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 - Apache - httpd

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.

Windows 10 Apache Ayarları

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.

Windows System Environment Variable
Windows System Environment Variable

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.

Windows 10 Apache - PHP Kurulumu

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 Grav Kurulumu

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.

Windows Grav Kurulumu

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.

Grav Admin Plugin

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?

Grav Cli Kurulumu

Ö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.

Grav Cli Kurulumu

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.