Linux hosting mu Windows hosting mu sorusu, satın alma ekranında karşınıza çıktığı için sorulan bir soru. Türk hosting firmalarının çoğu hâlâ iki ayrı paket sattığından, siteyi kurmaya hazırlanan kişi hiç beklemediği bir yerde teknik bir kararla baş başa kalıyor. Sonra araştırmaya başlıyor ve karşısına hep aynı üç cümle çıkıyor: "Linux ucuzdur", "Linux daha hızlıdır", "Windows'un arayüzü kolaydır". Bu cümlelerin ikisi tartışmalı, üçüncüsü ise doğrudan yanlış — çünkü ikisinde de göreceğiniz şey bir web paneli, işletim sisteminin masaüstü değil.
Bu yazıda kararı gerçekte belirleyen tek kriteri örnekleriyle göstereceğim: sitenizin yazıldığı teknoloji. Bilgisayarınızda Windows kullanmanız hosting seçiminizi etkilemez; siteniz PHP ile yazıldıysa Linux, ASP.NET ve MSSQL istiyorsa Windows alırsınız. Aşağıda bu eşleşmenin tablosunu, .htaccess ile web.config arasındaki pratik farkları, Linux'a taşırken en çok kırılan şeyin ne olduğunu ve yanlış platform seçtiyseniz nasıl kurtulacağınızı bulacaksınız. Ayrıca sıkça karıştırılan bir noktayı da netleştireceğim: paylaşımlı hosting seçmekle sunucu işletim sistemi seçmek aynı karar değildir.
Linux Hosting ve Windows Hosting Arasındaki Gerçek Fark#
Kısa cevap: fark, sunucuda hangi web sunucusu yazılımının ve hangi uygulama çalışma zamanının bulunduğudur; ziyaretçi açısından hiçbir fark yoktur.
İki paketin altındaki yığın kabaca şöyledir:
- Linux hosting: Ubuntu, AlmaLinux, Rocky ya da CloudLinux üzerinde Apache/LiteSpeed veya Nginx, PHP çalışma zamanı, MySQL/MariaDB veritabanı, yönetim paneli olarak genelde cPanel.
- Windows hosting: Windows Server üzerinde IIS, .NET çalışma zamanı ve isteğe bağlı PHP, MSSQL ve/veya MySQL veritabanı, yönetim paneli olarak genelde Plesk.
Ziyaretçi tarafında ise fark sıfırdır. Tarayıcı, sayfayı hangi işletim sistemi ürettiğini bilmez ve umursamaz. Google da bilmez. Bu yüzden "Linux hosting SEO için daha iyi" gibi bir cümleyle karşılaşırsanız o kaynağı kapatabilirsiniz.
Panel tarafında da bir netleştirme yapayım: Windows hosting almak, sunucunuzun masaüstüne bağlanacağınız anlamına gelmez. Paylaşımlı Windows hostingte de tarayıcıdan bir panele (çoğunlukla Plesk) girersiniz; Linux'ta cPanel'e girdiğiniz gibi. İki panelin de mantığı benzerdir: alan adı eklersiniz, e-posta hesabı açarsınız, veritabanı oluşturursunuz, dosya yöneticisiyle dosya yüklersiniz.
Kararı Belirleyen Tek Kriter: Uygulamanız Neyle Yazıldı#
Seçim aslında tek bir soruya iner: sitenizi çalıştıran kod hangi dilde ve hangi veritabanını istiyor?
Windows hostingi zorunlu kılan üç durum vardır:
- Klasik ASP.NET (.NET Framework) uygulaması.
.aspx,.ashxuzantılı dosyalar,Global.asax,bin/klasöründe DLL'ler görüyorsanız bu uygulama IIS ve .NET Framework ister. Linux'ta çalışmaz. - MSSQL (Microsoft SQL Server) veritabanı. Bağlantı dizesinde
Data Source=...;Initial Catalog=...görüyorsanız MSSQL kullanıyorsunuz demektir. Paylaşımlı hosting tarafında MSSQL genellikle yalnızca Windows paketlerinde sunulur. - Klasik ASP (
.aspuzantılı, eski ama hâlâ ayakta olan uygulamalar) veya Access (.mdb) veritabanı kullanan miras sistemler.
Bunların dışında kalan hemen her şey — WordPress, WooCommerce, Joomla, OpenCart, PrestaShop, Laravel, Node.js, Python — Linux tarafında hem daha yaygın hem de daha az sürprizle çalışır.
Önemli bir istisna var ve bunu Türkçe kaynakların büyük kısmı atlıyor: modern .NET (Core ve sonrası) Linux üzerinde çalışır. Yani uygulamanız .csproj dosyasında modern bir .NET sürümü hedefliyorsa Windows'a mahkûm değilsiniz. Ancak paylaşımlı hosting paketlerinde bu genelde desteklenmez; kendi sunucunuzda çalıştırmanız gerekir. Windows zorunluluğu, gerçekte "eski ASP.NET Framework" zorunluluğudur.
Emin değilseniz, geliştiricinize sorulacak tek cümle şudur: "Bu uygulama .NET Framework mü, yoksa PHP/Node/modern .NET mi ve veritabanı MSSQL mi?" Cevap kararı verir.
Teknoloji ve Platform Eşleşme Tablosu#
| Kullandığınız teknoloji | Linux hosting | Windows hosting | Not |
|---|---|---|---|
| WordPress, WooCommerce | Evet, önerilen | Çalışır ama önerilmez | Eklenti/tema ekosistemi Linux'a göre test edilir |
| Joomla, Drupal, OpenCart, PrestaShop | Evet | Kısıtlı | PHP + MySQL yığını |
| Laravel, Symfony, CodeIgniter | Evet | Kısıtlı | Kuyruk ve cron Linux'ta çok daha rahat |
| Klasik ASP.NET (.aspx) | Hayır | Zorunlu | IIS ve .NET Framework gerekir |
| Klasik ASP (.asp) | Hayır | Zorunlu | Miras sistemler |
| Modern .NET (Core ve sonrası) | Evet (sunucuda) | Evet | Paylaşımlı pakette genelde yok |
| MSSQL veritabanı | Hayır (paylaşımlıda) | Evet | Bağlantı dizesinden anlaşılır |
| MySQL / MariaDB | Evet | Genelde var | İki tarafta da sunulabilir |
| Node.js, Python uygulaması | Evet | Sınırlı | Linux'ta standart |
| Statik HTML site | Evet | Evet | Fark yok, Linux daha ucuz |
Tablodan çıkacak pratik sonuç şu: Windows hosting bir tercih değil, bir zorunluluktur. Zorunluluğunuz yoksa Linux alın.
Yaygın Beş Yanlış İnanış#
"Bilgisayarımda Windows var, o yüzden Windows hosting almalıyım." İlgisi yok. Sunucunun işletim sistemiyle sizin bilgisayarınızın işletim sistemi bağımsızdır. Windows makineden Linux hostingi FTP/SFTP ve tarayıcı üzerinden sorunsuz yönetirsiniz.
"Windows hosting daha kolaydır çünkü arayüzü var." İkisinde de bir web paneli kullanırsınız. Kolaylık algısı panelden gelir, işletim sisteminden değil. cPanel'i ilk kez açan biriyle Plesk'i ilk kez açan biri aynı öğrenme eğrisinde olur.
"Linux hosting daha hızlıdır." Doğrudan bir hız farkı yoktur; fark, paketin donanımından ve web sunucusu yapılandırmasından gelir. Ancak dolaylı bir gerçek payı var: PHP tabanlı uygulamalar Linux üzerindeki LiteSpeed/Nginx yığınında daha iyi optimize edilmiş durumdadır ve önbellek eklentilerinin çoğu bu ortama göre yazılır. Aynı WordPress kurulumu Windows/IIS üzerinde genelde daha az ayarlanmış hâlde kalır. Gerçek hız farkını asıl belirleyen şey disk türü ve kaynak limitleridir; bu konuyu SSD mi NVMe mi hosting yazısında ölçümlerle anlattım.
"Windows hostingte virüs riski daha yüksektir." Saldırıların hedefi işletim sistemi değil, çalışan uygulamadır. Türkiye'de hacklenen sitelerin büyük çoğunluğu güncellenmemiş WordPress eklentileri yüzünden gider ve bunlar Linux üzerindedir. Platform değil, bakım belirler.
"Linux hostingte .NET çalışmaz." Kısmen yanlış. Klasik ASP.NET çalışmaz, modern .NET çalışır. Bu ayrımı bilmemek, gereksiz yere Windows paketi almaya yol açar.
.htaccess ve web.config: Aynı İşin İki Ayrı Dili#
Bu fark, platform değiştirenlerin ilk gün çarptığı duvardır. Linux/Apache tarafında yönlendirme ve URL kuralları .htaccess dosyasıyla yazılır:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Windows/IIS tarafında aynı iş web.config içinde XML olarak yapılır:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTPS Yonlendirme" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
İki dosya birbirinin yerine geçmez. Bir siteyi Windows'tan Linux'a taşırken web.config dosyanız sunucuda hiçbir işe yaramaz; tüm kurallarını .htaccess diline çevirmeniz gerekir. Ters yönde de aynısı geçerlidir. Bu dönüşümü yaparken en çok unutulan şeyler özel hata sayfaları, dizin listeleme kapatma ve MIME türü tanımlarıdır. Apache tarafındaki kural yazımı için htaccess yönlendirme yazısı iyi bir başlangıç noktasıdır.
Bir de sessiz bir tuzak var: WordPress bir Windows sunucuya kurulduğunda kalıcı bağlantılar (permalink) çoğu zaman ilk denemede çalışmaz, çünkü IIS'te URL Rewrite modülü ve uygun web.config gerekir. Site açılır, ama iç sayfalar 404 verir. Aynı kurulum Linux'ta .htaccess otomatik yazıldığı için sorun çıkarmaz.
Büyük ve Küçük Harf Duyarlılığı: Taşırken En Çok Kırılan Şey#
Windows dosya sistemi büyük/küçük harf ayrımı yapmaz; Linux yapar. Bu tek fark, taşıma sonrası sorunların en az yarısını üretir.
Windows'ta hem Logo.PNG hem logo.png aynı dosyayı gösterir. Linux'ta bunlar iki ayrı dosyadır. Sonuç: Windows'ta sorunsuz görünen site Linux'a taşındığında görselleri kaybolur, CSS yüklenmez, include çağrıları hata verir:
Warning: include(Header.php): Failed to open stream: No such file or directory
in /home/kullanici/public_html/index.php on line 12
Dosya sunucuda header.php olarak durduğu hâlde kod Header.php çağırdığı için okunamaz. Taşımadan sonra bu hatayı toplu tespit etmek için PHP hata günlüğüne bakın:
grep -i "failed to open stream" ~/logs/error_log | sort -u
Aynı sorun görsellerde 404 olarak görünür. Site taşıma sürecinin tamamı ve kontrol listesi için web sitesi taşıma yazısına bakın; platform değiştiren bir taşımada bu maddeyi listenin en üstüne alın.
Veritabanı Tarafı: MySQL ve MSSQL#
Veritabanı, platform kararını Windows'a doğru iten en sık ikinci nedendir.
- MySQL / MariaDB: Linux tarafının standardıdır ve Windows paketlerinde de çoğu zaman sunulur. WordPress, OpenCart, Laravel gibi her şey bunu kullanır. Yönetimi phpMyAdmin üzerinden yapılır.
- MSSQL: Microsoft'un veritabanıdır, kurumsal .NET uygulamalarında yaygındır ve paylaşımlı hosting tarafında pratik olarak Windows paketlerine bağlıdır. Yönetimi genellikle Plesk içindeki araçlar veya uzaktan bağlantıyla SQL Server Management Studio üzerinden yapılır.
Karar noktası şu: MSSQL kullanan bir uygulamayı MySQL'e taşımak basit bir dışa/içe aktarma işi değildir. Saklı yordamlar, veri tipleri (nvarchar, datetime2), kimlik sütunu davranışı ve sorgu sözdizimi farklıdır. Böyle bir dönüşüm geliştirici işidir ve çoğu durumda Windows hostingde kalmak daha ucuza gelir.
Örnek bir bağlantı dizesi karşılaştırması, hangisinde olduğunuzu anlamanızı sağlar:
// MySQL (Linux tarafı)
$pdo = new PDO('mysql:host=localhost;dbname=magaza;charset=utf8mb4', $kullanici, $parola);
// MSSQL (Windows tarafı)
$pdo = new PDO('sqlsrv:Server=localhost;Database=magaza', $kullanici, $parola);
Paylaşımlı Hosting mi Sunucu mu: Karıştırılan İki Ayrı Karar#
Türkçe kaynakların en çok kafa karıştırdığı yer burası. "Linux mu Windows mu" ile "paylaşımlı hosting mi sunucu mu" iki bağımsız sorudur ve sırayla cevaplanır:
- Önce teknoloji: uygulamanız PHP mi, .NET Framework mü? Bu, işletim sistemini belirler.
- Sonra barındırma tipi: paylaşımlı hosting mi, sanal sunucu mu, fiziksel sunucu mu? Bu, trafik ve yönetim ihtiyacınızı belirler.
Yani "Windows sunucu" ile "Windows paylaşımlı hosting" aynı şey değildir. İlkinde uzak masaüstüyle bağlanıp istediğinizi kurarsınız; ikincisinde bir panel üzerinden site yayınlarsınız. Aynı biçimde "Linux hosting" ile "Linux VDS" arasında da yönetim sorumluluğu açısından uçurum vardır.
Hangi paket boyutunun size yeteceğine karar vermek için hangi hosting paketini seçmeliyim yazısına bakabilirsiniz. Linux paylaşımlı hostingte kalacaksanız, uygulamanızın istediği PHP eklentilerinin (intl, imagick, soap gibi) açık olduğunu da kontrol edin; bu ayarların nasıl yapıldığını cPanel PHP eklenti seçimi yazısında bulacaksınız.
Yanlış Platform Seçtiyseniz Ne Olur, Nasıl Taşınır#
Yanlış platform seçmenin bedeli, hangi yöne yanlış yaptığınıza göre değişir.
Linux almanız gerekirken Windows aldıysanız, aslında acil bir sorun yok: WordPress veya PHP siteniz büyük ihtimalle çalışıyordur, sadece bazı yerlerde (permalink, eklenti uyumu, önbellek) fazladan uğraşırsınız. Uygun bir zamanda Linux tarafına taşıyabilirsiniz; PHP + MySQL yığını bire bir karşılık bulduğu için taşıma genellikle sorunsuzdur. Dikkat edilecek tek şey büyük/küçük harf duyarlılığıdır.
Windows almanız gerekirken Linux aldıysanız, uygulamanız hiç çalışmaz. .aspx dosyalarını Apache düz metin olarak gösterir ya da 500 hatası verir. Burada tek çözüm doğru platforma geçmektir; kod tarafında bir ayarla düzelmez.
Taşıma sırası her iki yönde de aynıdır:
- Yeni pakette siteyi kurun ve dosyaları yükleyin.
- Veritabanını dışa aktarıp yeni sunucuda içe aktarın.
- Yapılandırma dosyasındaki veritabanı bilgilerini güncelleyin.
- Yönlendirme kurallarını hedef platformun diline çevirin (
.htaccess↔web.config). - Yeni sunucuyu geçici bir adresle test edin.
- Her şey çalışıyorsa DNS'i çevirin, eski paketi en az iki hafta kapatmayın.
Beşinci adımı atlamayın: DNS'i test etmeden çevirmek, hatayı ziyaretçilerle birlikte keşfetmek demektir.
Sıkça Sorulan Sorular#
Windows kullanıyorum diye Windows hosting mi almalıyım#
Hayır, kendi bilgisayarınızın işletim sistemi hosting seçimini hiçbir şekilde etkilemez. Windows bilgisayardan Linux hostinge bağlanmak için tarayıcı ve bir FTP/SFTP istemcisi yeterlidir; dosya yükleme, veritabanı yönetimi ve panel işlemlerinin tamamı web üzerinden yapılır. Bu yanlış anlama, "Windows hosting" adının masaüstü Windows'u çağrıştırmasından kaynaklanıyor. Karar tamamen sitenizin yazıldığı teknolojiye göre verilir.
WordPress için Linux mu Windows mu daha uygun#
WordPress için Linux hosting açık farkla daha uygundur. WordPress PHP ve MySQL üzerine kuruludur, çekirdek ekibi ve eklenti geliştiricileri kodlarını ağırlıklı olarak Linux ortamında test eder, önbellek eklentilerinin çoğu Apache veya LiteSpeed varsayımıyla yazılır. Windows üzerinde WordPress çalışır, ancak kalıcı bağlantılar için IIS tarafında ek yapılandırma gerekir, bazı eklentilerde dosya izni ve yol sorunlarıyla karşılaşırsınız. Zorlayıcı bir nedeniniz yoksa Linux tarafında kalın.
Linux hosting gerçekten daha mı ucuz#
Genellikle evet, ancak fark işletim sisteminden değil lisans maliyetinden gelir. Windows Server ve MSSQL lisanslı ürünlerdir ve bu maliyet paket fiyatına yansır; Linux dağıtımları ve MySQL/MariaDB için böyle bir kalem yoktur. Aradaki fark paket seviyesine göre değişir ve güncel rakamları paket sayfalarından görmeniz gerekir. Fiyatı tek başına karar kriteri yapmayın: ASP.NET uygulaması olan biri için ucuz Linux paketi kullanılamaz olduğundan hiç ucuz değildir.
ASP.NET sitem Linux hostingde çalışır mı#
Uygulamanız klasik .NET Framework ile yazıldıysa çalışmaz, modern .NET ile yazıldıysa çalışabilir. Ayrım .csproj dosyasındaki hedef çerçeveye bakılarak yapılır; Global.asax ve bin/ klasöründe DLL bulunan klasik yapılar IIS ve Windows gerektirir. Modern .NET uygulamaları Linux üzerinde çalışsa da paylaşımlı hosting paketlerinde genellikle desteklenmez, kendi sunucunuzda çalıştırmanız gerekir. Emin değilseniz uygulamayı yazan geliştiriciye hedef çerçeve sürümünü sormak en hızlı yoldur.
Hostingimi Windows'tan Linux'a taşıyabilir miyim#
PHP ve MySQL kullanan bir site için evet, taşıma büyük ölçüde sorunsuzdur; dosyaları ve veritabanını aktarmanız yeterlidir. İki noktaya dikkat edin: yönlendirme kurallarını web.config içinden .htaccess diline çevirmeniz gerekir ve Linux'un büyük/küçük harf duyarlılığı nedeniyle dosya adı uyuşmazlıkları ortaya çıkabilir. MSSQL veritabanı kullanan bir uygulamada ise durum farklıdır; veritabanını MySQL'e dönüştürmek geliştirici işidir ve çoğu durumda mevcut platformda kalmak daha mantıklıdır.
Linux ve Windows hostingde SSL kurulumu farklı mı#
Sertifikanın kendisi iki platformda da aynıdır, sadece kurulum ekranı değişir. Linux tarafında cPanel'in SSL/TLS bölümünden ücretsiz sertifika çoğunlukla otomatik kurulur ve yenilenir. Windows tarafında Plesk'in SSL sekmesi üzerinden benzer bir akış işler; bazı kurulumlarda sertifikayı IIS'e bağlama adımı ayrıca yapılır. HTTP'den HTTPS'e yönlendirmeyi ise platform diline göre yazmanız gerekir: Linux'ta .htaccess, Windows'ta web.config içinde. Sertifikanın türü ve güvenlik seviyesi platforma göre değişmez.
Aynı hesapta hem Linux hem Windows site barındırabilir miyim#
Aynı paylaşımlı hosting hesabında barındıramazsınız; her hesap tek bir sunucu üzerinde ve tek bir işletim sistemi altında çalışır. İki farklı platform gerektiren iki siteniz varsa iki ayrı paket almanız gerekir. Alternatif olarak, alan adlarınızı ayrı tutup her birinin DNS'ini ilgili sunucuya yönlendirebilirsiniz; alan adı yönetimini tek yerde tutup barındırmayı ayırmak tamamen mümkündür. Kendi sunucunuza geçerseniz sanallaştırma ile aynı donanım üzerinde iki ayrı işletim sistemi çalıştırmak da bir seçenektir.
Kapanış#
Linux hosting mu Windows hosting mu sorusunun cevabı, fiyat karşılaştırmasında ya da "hangisi kolay" tartışmasında değil, sitenizin kodunda saklı. Uygulamanız klasik ASP.NET ile yazılmışsa veya MSSQL veritabanı kullanıyorsa Windows zorunludur; bunun dışında kalan hemen her senaryoda — WordPress, WooCommerce, Laravel, OpenCart, statik site — Linux hem daha yaygın hem daha az sürprizli seçimdir. Kendi bilgisayarınızın işletim sistemi, panelin görünüşü ve "hangisi daha hızlı" iddiaları bu kararda ölçüt değildir. Platform değiştirecekseniz .htaccess ile web.config dönüşümünü ve Linux'un büyük/küçük harf duyarlılığını taşıma listenizin ilk iki maddesi yapın.
PHP tabanlı bir site kuracaksanız web hosting paketleri doğrudan bu yığın için yapılandırılmış gelir; WordPress kuracaksanız WordPress hosting tarafında kurulum, önbellek ve SSL hazır durumdadır. Uygulamanız kendi çalışma zamanını, özel bir veritabanını veya root erişimi gerektiriyorsa paylaşımlı paket yerine VDS sunucu tarafına geçmek gerekir.