Aslında başlık biraz yuvarlak cümle oldu ama web sayfası yapmak isteyenler için giriş dersi niteliğinde olacak. Ama zaten bir geliştiriciyseniz sizde faydalanabilirsiniz. Bu yazıyı okuduktan sonra benimle aynı fikirde olmayanlar, karşı görüşlerini lütfen yorum olarak bıraksınlar.
Şimdi başlayalım. Eğer bir web sayfası yapacaksanız temelde 4 türlü yol var.
1-Bütün yazılımınızı ve tasarımınızı hazır olarak kullanabilirsiniz. Bu size fazlaca bir esneklik vermeyecektir. Mesela xxx.wordpress ya da xxx.blogspot gibi bedava hizmet veren sitelerden bedava host(dosyalarınızın web ortamında tutulması ve yayımlanması hizmeti) ve domain(internette sizi bulacakları adres) temin edebilirsiniz. Aynen “bilisimkitabi.wordpress.com” gibi.
Bu tarz sitelerde yazılar yazabilir, günlük tutabilirsiniz ve temalarınıza sınırlı şekilde erişim sağlayabilirsiniz. Uzantısı size hizmet verecek olan sistemin reklamı ile biter(wordpress.com veya blogger.com). Bu benim tavsiyem değildir. Daha doğrusu web sitesi yapmak kelimesinin de karşılığı değildir. Size dosya barındırma limiti de koymaları işin cabası. Ama kendi fikirlerinizi, görüşlerinizi, bilgi birikiminizi bir blog halinde başkaları ile paylaşmak sizlere yetiyorsa tam aradığınız şey bu bölüm.
2-İkinci olarak yine yazılımınızı ve tasarımınızı hazır olarak kullanabilirsiniz. Ancak hosting ve domain hizmetlerini kendiniz bizzat alarak tabi. Godaddy, İsimtescil ya da Natro gibi bu hizmeti kendileri veren siteler var. Yıllık ücretleri ortalama bir site için Hosting paketi : 20$, Domain ise "siteadiniz.com" ya da "siteadiniz.net" uzantılar için ortalama 10$.
Host ve Domain işlemi tamamsa geriye yazılım ve tasarım kalır. Yazılımı yine hazır olarak bedava temin edebilirsiniz. WordPress ve Joomla , bu yazılımların en fazla kullanılanlar ama WordPress, fazladan Google’dan SEO desteği alıyor. Yani sitenizin Google’da üst sıralarda çıkmasını istiyorsanız bu sistem sizi rakiplerinize karşı maça 5-0 önde başlatacaktır.
Yazılım işi tamamsa geriye tema işlemi kalıyor. Bedava wordpress ya da joomla temaları mevcut ancak bu temalar sizlere sınırlı değişiklikler sunuyor. Size tavsiyem Themeforest gibi sitelerden beğendiğiniz bir temayı satın almanız. Bu temalar WordPress için ortalama 50$. İstediğiniz gibi HTML, CSS, Javascript ve PHP kodlarıyla oynayabilirsiniz. WordPress’in kurulumu yaklaşık 30 dakikanızı alır. Zaten içinde veri tabanınızı da hazır kuracak ve sizi bu zahmetten de kurtaracaktır.
Daha sonra veri tabanı içinde istediğiniz gibi tablo ekleyip çıkarabilirsiniz. Hatta kendinizi bu işlerde geliştirirseniz ilerleyen zamanlar da kendi temanızı da yazma fırsatınız olabilir.
3-Üçüncü yöntem olarara, yazılımınızı kendiniz yazabilir ve ara yüzü yani temayı satın alabilirsiniz. Yazılım konusunda web alanında server tarafında iki tane dil çokça kullanılır. ASP ve PHP. Ancak JAVA, Ruby ve Python gibi dillerin çeşitli Framework'leri ile de web sayfaları yapabilirsiniz.
Benim tavsiyem tabi ki PHP’dir. PHP server tarafında kullanılır. Veri tabanıyla bağlantılarınızı sağlar ve birçok veri getirme ve HTML kodları arasına yazdırma işlemlerini sağlar. Aldığınız hazır temalar içinde zaten CSS, HTML, JQuery, Javascript yazılmış durumdadır. Size kalan PHP ile verileri çekip, işleyip HTML içine gömmek olacak.
Bu anlattığım iş yükünüzü hafifletir ve zaman kazanmış olursunuz. Böylece kısa zamanda daha çok para kazanabilir, daha çok iş yapabilirsiniz.
4- Dördüncü yöntem, benim tavsiyem şimdi anlatacağım guruba giriyor. Yazılım(PHP tarafı) kendinize ait olacak ve tema satın(Hazır HTML, CSS, Javascript kodları)alacaksınız. Ama PHP yazarken bir kütüphane kullanacaksınız. PHP kütüphane konusunda sizlere tavsiyem Laravel ve Yii2 Framework olacak. Kendi kodları ve dizin yapısı itibari ile sizlere daha çok zaman kazandıracak ve yazdığınız kodlar daha esnek, güvenilir ve hızlı olacak. PHP öğrenmeden Framework kullanmak sizlere zor gelebilir ama öncelikle PHP öğrenin. Daha sonra kendinize bir kütüphane arayın ama bol dokümanlı olsun. Yii2 Framework’ün en büyük sıkıntısı dokümanlarının Türkçe olarak az olmasıdır. Haricinde mükemmel ötesi bir kütüphane.
5-Gelelim son bölümümüze. Yazılım ve tasarımın tamamen size ait olması olayına. Bu biraz daha zor bir olay ve genellikle uzmanlık ve vakit ister. PHP, SQL, MySQL, HTML, CSS, JQuery, Javascript gibi birçok dili ve scriptleri yalayıp yutmuş olmalısınız.
Bitmedi, tasarım ve göz zevkiniz olmalı. Yani Photoshop ile site tasarımı. Tasarla tasarla bitmez. Ana sayfa ve en az 10 tane alt sayfa.Tasarım bitti bir de bu tasarımı HTML ve CSS kullanarak arayüze dökme işlemi. Bu da yetmez sitenin layout dediğimiz düzenini çok iyi ayarlamanız gerekli. Yeter mi yetmez!!!!.
Müşteriniz sizden bir de Mobil teması istedi. Yapabilir misiniz? İlk başlarda hayır ama onu da Bootstrap denilen bir nevi CSS kütüphanesi ile halletmeye çalışırsınız. Aksine Slider koyacaksınızya, Jquery yazmalısınız ama kendinizi orta seviyenin üstünde Jquery’de geliştirmelisiniz. Ara yüz tarafını hallettiniz diyelim.
Gelelim PHP tarafına. Sitenin birçok dil desteği olmalı. Mesela İngilizce ve Rusça. Dili hallettiniz bu defa URL yapısı karşınıza çıkar. Yetmedi Session yönetimi. Hangi sayfaları kimler görecek yetkisi. Verileri kimler düzenleyebilir. Admin, Editör, User… gibi birçok Auth yetkilendirme işlemleri falan. Dosya yükleme ve kullanıcı girişleri gibi diğerlerini de sayarsak işiniz zor be. PHP tarafını tamamen siz yazarsınız, yetmez SQL kodları yazarsınız ve bunların optimizasyonu da cabası.İş biter fakat 1 yıl boyunca yaptığınız hatalarla uğraşırsınız. İş bitene kadar bütün tarayıcılar da sitenin hatalarını bulmak ve düzeltmekle uğraşırsınız. IE Explorer tabi ömrünüzden 1 yıl yer. Bunların hepsi bitti birde dosya upload işlemleri var. Tabi her dosyayı sunucunuza yükletmemelisiniz. Bunun güvenliği var. Her an hack yeme olasılığınız var. Bu işin çok kısa bir yöntemi var. Eğer dosya yükleme sürecini görmek ya da göstermek işlemi sizin için önemliyse bunun İsmi Uploadify ya da kullandığınız kütüphanelerin çeşitli eklentileri de olabilir. Hem de bedava sadece kullanmayı öğrenmelisiniz. Dosya yükleme modüllerinin güvenliğini sağlamak da cabası. Yüklenen dosyanın Content-Type bilgisi ya da dosya ismi her an bir virüs içeriyor olabilir. Mutlaka ismini değiştirin ve uzantılarına dikkat edin. Content-Type kontrol edilmeli ve içerik şüpheli ise dosya yüklemesi iptal edilmelidir. Login işlemleri ve kullanıcı doğrulama esnasında Injection Saldırıları ile karşı karşıya gelebilirsiniz ve PHP ya da ASP’de daha yeniyseniz muhakkak Injection Saldırılarından kaçamazsınız. Bunun için PHP’nin ya da ASP’nin hazır metodlarından yararlanmalısınız. Ama bazen bu da yeterli olmayabiliyor. Çünkü yüzlerce Injection yöntemi var hangi biri için oturup kod yazacaksınız. Ama bunu da sizin için yapan bir kaç yol biliyorum. Bunlardan bir tanesi SQL yazarken pdo kullanmak diğeri ise güvenli bir Framework kullanmak(Yii2 veya Laravel Active Record). Bu iki yolda sizler için güvenliği önemli bir ölçüde sağlayacaktır. Gelelim web sayfasında yorum bölümlerine. Kullanıcının sunucuya gönderdiği her bilgi, yorum ya da dosya bir güvenlik açığıdır. XSS saldırıları bu aşamada devreye girer. Eğer yorumlarınızı süzmeden içeriye alırsanız hoooop birde baktınız ana sayfanız açılır açılmaz başka siteye yönleniyor ya da hacklink yediniz. Eğer bunlardan biri yoksa iframe virüsü vardır muhakkak. CSRF açıklarında karşı gerekli önlemleri almalısınız yoksa kullanıcı bilgileri başka kişilerin eline geçer ve sonuç hiçte iç açıcı olmayacaktır.
Dosyalarınızı yayına almak için sunucuya yüklemenize yardımcı olan programlara da FTP(File Transfer Protocol) denir. File Zilla ve WinSCP bilinen FTP programlarıdır. Ben WinScp’yi tavsiye ediyorum. Dosyaları uzakta ki bir sunucuya atma işleminden sonra dosyaların yazma izinlerini de iyi bir şekilde ayarlamalısınız. Ardından Apache sunucular da .htaccess dosyası kullanmayı da iyi bir şekilde öğrenmelisiniz.
Yazımın ilerleyen kısımlarında web sayfası yaparken gerekli diğer programları, araçları ve gereçleri yazacağım. Şimdilik kolay gelsin…