Kendi sunucunuzu yönetmek, birçok Laravel geliştiricisi için bir geçiş ritüelidir. Bir VPS kurar, root olarak SSH ile bağlanır ve aniden hiçbir güvenlik önleminiz olmadığını fark edersiniz. Size bırakılan açık portlar, yedeklemeleri atlamak veya sadece bir dua ile yerel makinenizden dağıtım yapmak gibi hatalar yapmanız için kimse sizi durdurmuyor.
Bu özgürlük heyecan verici görünebilir — ta ki Cumartesi günü saat 2’de bir şey bozulana kadar.
Binlerce Laravel geliştiricisine üretim altyapısını yönetmelerinde yardım ettikten sonra, aynı hataların tekrar tekrar ortaya çıktığını gördük. Bunlar kenar durumlar değil. Belirli kalıplar. Ve her biri önlenebilir.
İşte ilk kez sunucu yöneticisi olanların yaptığı en yaygın yedi hata, bunların neden tehlikeli olduğu ve Deploynix’in her birini baştan sona nasıl önlediği.
Hata 1: Her Şeyi Root Olarak Çalıştırmak
Hata 1: Her Şeyi Root Olarak Çalıştırmak
Yeni bir sunucuya SSH ile bağlandığınızda, root kullanıcısısınız. Sınırsız güçte olduğunuz için bu durum tam bir sorun kaynağı olabilir.
Uygulamanızı, web sunucunuzu ve arka plan işlemlerinizi root olarak çalıştırmak, Laravel uygulamanızda meydana gelebilecek bir güvenlik açığının (doğrulanmamış dosya yükleme, SQL enjeksiyonu, yanlış yapılandırılmış rota) bir saldırgana tüm sunucunuzu kontrol etme imkanı vermektedir. Bu sadece uygulamanızı değil, her şeyi etkiler.
En az ayrıcalık ilkesi bir nedenle vardır. Web sunucunuz sınırlı bir kullanıcı olarak çalışmalıdır. Uygulamanız sınırlı bir kullanıcı olarak çalışmalıdır. Root erişimi, gerçekten gerekli sistem düzeyindeki işlemler için saklanmalıdır.
Deploynix bunu nasıl önler: Deploynix üzerinden bir sunucu sağladığınızda — ister DigitalOcean, Vultr, Hetzner, Linode, AWS ya da özel bir sağlayıcı olsun — platform otomatik olarak uygun izinlere sahip özel bir deploynix kullanıcısı oluşturur. Uygulamanız bu kullanıcı altında çalışır, root altında değil. SSH root girişi varsayılan olarak devre dışı bırakılmıştır. İhtiyacınız olduğunda web terminali üzerinden sudo erişiminiz vardır, fakat gündelik işlemleriniz uygun şekilde sandbox ortamında tutulur.
Hata 2: Yedeklemeleri Atlama (veya Sağlayıcınızın Yedekleme Yapacağını Varsaymak)
Hata 2: Yedeklemeleri Atlama (veya Sağlayıcınızın Yedekleme Yapacağını Varsaymak)
Bu durum, yalnızca geç oldu sırada anlaşılır; acı vericidir.
Pek çok ilk kez sunucu yöneticisi, bulut sağlayıcısının veritabanını yedeklediğini varsayar. Bazı sağlayıcılar anlık yedeklemeler sunar, ancak bunlar tam sunucu anlık görüntüleridir — ayrıntılı değildirler, veritabanları için yeterince sık değillerdir ve geri yükleme işlemi yavaş ve karmaşıktır.
Diğerleri ise, yedekleme kurulumunu asla yapmaz. İleride hallolacaktır diye düşünürler. Ama o “ilerisi” bir türlü gelmez ve bir göç işlemi ters gider veya bir disk dolarak veritabanını bozar.
Deploynix bunu nasıl önler: Deploynix, MySQL, MariaDB ve PostgreSQL veritabanlarını destekleyen yerleşik bir yedekleme sistemine sahiptir. Otomatik yedekleme programları ayarlayabilir ve AWS S3, DigitalOcean Spaces, Wasabi veya herhangi bir özel S3 uyumlu depolama sağlayıcısında saklayabilirsiniz.
Yedekleme programlarınıza göre çalışır, sunucu dışında saklanır ve birkaç tıklamayla geri yüklenebilir. Kurulumun iki dakikadan az sürdüğü düşünüldüğünde, yedekleme yapmamanız için hiçbir mazeret yoktur.
Hata 3: Güvenlik Duvarını Açık Bırakmak
Hata 3: Güvenlik Duvarını Açık Bırakmak
Birçok bulut sağlayıcısından yeni bir sunucu, tüm portlar açık biçimde gelir. Her port. Bu, veritabanı portunuz (3306, 5432), önbellek portunuz (6379) ve çalıştırdığınız her diğer hizmetin internete tamamen açık olduğu anlamına gelir.
Otomatik tarayıcılar, sunucu yayına girdiği andan itibaren açık veritabanı portlarını bulur. Eğer MySQL örneğinizin zayıf bir şifre varsa — ya da daha kötüsü, şifre yoksa — verileriniz bu paragrafı okumadan önce gidebilir.
Deploynix bunu nasıl önler: Deploynix, sunucu sağlama sırasında güvenlik duvarı kurallarını ayarlar. Varsayılan olarak, yalnızca uygulamanızın gerçekten ihtiyaç duyduğu portlar açıktır: SSH (22), HTTP (80) ve HTTPS (443). Veritabanı ve önbellek portları yalnızca yerel bağlantılara kapalıdır.
Ek portlar açmanız gerektiğinde, güvenlik duvarı kurallarını doğrudan Deploynix panelinden yönetebilirsiniz. Ama kritik nokta şudur ki, varsayılan güvenlidir. Port açmak için açıkça seçim yapmanız gerekir, ve bunun kazara açık bırakılması söz konusu değildir.
Hata 4: SSL Sertifikalarını Atlama
Hata 4: SSL Sertifikalarını Atlama
2026 yılında basit HTTP üzerinden bir üretim uygulaması çalıştırmak sadece bir güvenlik riski değildir — aynı zamanda bir güvenilirlik sorunudur. Tarayıcılar belirgin “Güvenli Değil” uyarıları gösterir. Arama motorları, şifrelenmemiş siteleri cezalandırır. Kullanıcılarınızın gönderdiği herhangi bir veri — parolalar, ödeme bilgileri, kişisel ayrıntılar — internet üzerinde düz metin olarak dolaşır.
İlk kez sunucu yöneticileri, Let’s Encrypt’i manuel olarak kurmanın göz korkutucu olduğunu düşünerek genellikle SSL’yi atlarlar. Certbot’u yüklemeniz, web sunucunuzu yapılandırmanız, otomatik yenilemeyi ayarlamanız ve sertifikanın her 90 günde bir döndüğü zaman hiçbir şeyin bozulmadığından emin olmanız gerekir.
Deploynix bunu nasıl önler: Deploynix üzerinde SSL sertifikası temini otomatik olarak gerçekleşir. Bir site eklediğinizde, Deploynix bir Let’s Encrypt sertifikası verir ve web sunucunuzu buna göre yapılandırır. Sertifika yenileme otomatik olarak gerçekleşir — yönetilmesi gereken cron işleri yok, manuel bir müdahale gerektirmez.
Vanity alanlarınız için, Deploynix *.deploynix.cloud alt alanlarında wildcard sertifikaları sağlar; böylece, sahne ve önizleme ortamlarınız ilk günden itibaren şifrelenmiş olur. Cloudflare kullanıyorsanız, Deploynix, çatışmalar olmadan uca-kadar şifreleme için Tam Sıkı SSL modunu destekler.
Hata 5: Ortam Değişkenlerini Sabitlemek
Hata 5: Ortam Değişkenlerini Sabitlemek
Her Laravel geliştiricisi .env dosyalarının farkındadır. Ama ilk kez sunucu yöneticileri genellikle bu dosyalarla iki temel hatadan birini yaparlar.
İlk hata .env dosyasını sürüm kontrolüne dahil etmektir. Bu, veritabanı kimlik bilgilerinizi, API anahtarlarınızı ve uygulama sırlarınızı Git geçmişinize — kalıcı olarak — koyar. Dosyayı daha sonra silseniz bile, tarih hâlâ saklanan her sırrı içerir.
İkinci hata ise, sunucu üzerinde doğrudan SSH ile .env dosyasını düzenleyerek yaptığınız değişiklikleri kaybetmektir; neyin değiştiğini, ne zaman ve neden olduğunu izlemek imkansız hale gelir. Bir denetim yolu yoktur, geri dönüş yolu yoktur ve birden fazla sunucu arasında ortam değişkenlerini senkronize etmenin yolu yoktur.
Deploynix bunu nasıl önler: Deploynix, her site için panelde özel bir ortam değişkeni düzenleyici sunar. .env dosyanız, platform üzerinden yönetilir, manuel SSH oturumları ile değil. Değişkenler güvenli bir şekilde saklanır ve dağıtımlar sırasında tutarlı bir şekilde uygulanır.
Bu yaklaşım, sırlarınızın asla Git deposunuza ulaşmamasını sağlar. Bu, yetkili takım üyeleri tarafından görülmekte ve her dağıtımda güvenli bir şekilde uygulanmaktadır.
Hata 6: İzleme veya Uyarı Kurmamak
Hata 6: İzleme veya Uyarı Kurmamak
Sunucunuz çalışıyor. Uygulamanız dağıtılmış. Her şey yolunda görünüyor. Dizüstü bilgisayarınızı kapatıyor ve akşam yemeğine çıkıyorsunuz.
Üç saat sonra, veritabanınız tüm mevcut belleği tüketmiş, uygulamanız 500 hataları döndürmekte ve kullanıcılarınız o süre boyunca hata sayfalarıyla karşılaşmaktadır. Hiçbir şey izlemediği için bunun farkına varamazsınız.
İlk kez sunucu yöneticileri, izlemeyi lüks bir şey olarak görme eğilimindedir. Oysa durum böyle değildir. Bu, bir sorunu dakikalar içinde yakalamak ile sinirli müşteri e-postalarıyla saatler sonra buluşup sorunu keşfetmek arasındaki farktır.
Deploynix bunu nasıl önler: Deploynix, kutudan çıktığı anda gerçek zamanlı sunucu izleme içerir. CPU kullanımı, bellek tüketimi, disk alanı ve yük ortalamaları takip edilir ve panelinizde görüntülenir.
Özellikle Deploynix sağlık uyarılarını destekler. Kritik metrikler için eşik değerleri ayarlayabilir ve bir şey ters gittiğinde size bildirimde bulunur — kullanıcılarınızdan önce. Bu, entegre etmeniz gereken ayrı bir araç değildir. Platforma entegre edilmiştir ve sunucunuz sağlandığı andan itibaren aktiftir.
Hata 7: Manuel Olarak SSH Üzerinden Dağıtım Yapmak
Hata 7: Manuel Olarak SSH Üzerinden Dağıtım Yapmak
Birinci derece sunucu yöneticileri için en yaygın dağıtım stratejisi genellikle şunlardan oluşur: Sunucuya SSH ile bağlanmak, cd ile proje dizinine gitmek, git pull komutunu çalıştırmak, composer install, php artisan migrate komutlarını çalıştırmak ve hiçbir şeyin bozulmamasını ummaktır.
Bu yaklaşımın birçok hata modu vardır. Ya composer install yarıda kalırsa? Uygulamanız artık kısmi güncellenmiş bağımlılıklarla bozulmuş bir durumda olur. Ya göç işlemi başarısız olursa? Veritabanı şemanız artık tutarsızdır. Önbelleği temizlemeyi unuttuğunuzda? Uygulamanız eski rotaları ve yapılandırmayı sunuyor.
Manuel dağıtımlar yavaş, hata eğilimli ve korkutucudur. Ayrıca güncelleme yaptığınız her seferinde kesinti anlamına gelir.
Deploynix bunu nasıl önler: Deploynix, her site için sıfır kesinti ile dağıtım sağlar. Dağıtım yaptığınızda, platform uygulamanızı yeni bir sürüm dizininde oluşturur, dağıtım scriptinizi (Composer yüklemesi, npm oluşturma, göçler, önbellek temizleme) çalıştırır ve yalnızca her şey başarıyla tamamlandığında canlı bağlantıyı değiştirilir. Bir adım başarısız olursa, önceki sürüm kesintisiz bir trafik alır.
Dağıtımları panelden, API üzerinden veya GitHub, GitLab, Bitbucket veya özel bir sağlayıcıdan otomatik olarak Git web kancaları aracılığıyla tetikleyebilirsiniz. Belirli bir zaman diliminde dağıtım yapmanız gerekiyorsa, zamanlanmış dağıtımları kullanarak gelecekteki bir zaman dilimi için bir sürüm kuyruğu oluşturabilirsiniz. Geri dönmeniz gerektiğinde ise, bir tıklama ile önceki herhangi bir sürüme dönebilirsiniz.
Özel dağıtım scriptiniz, dağıtım sürecine uygulama özel komutlar eklemenizi sağlar ve bir adımın başarısız olmasının uygulamanızı çevrimdışı almaması konusu ile ilgili güven sağlar.
İyi Varsayılanların Bileşen Etkisi
İyi Varsayılanların Bileşen Etkisi
Bu hatalardan her biri, ayrı olarak uygulamanızı devre dışı bırakmayabilir. Ancak, birikim etkisi yaparlar. Açık bir güvenlik duvarı, zayıf bir veritabanı parolası ve izleme olmaması bir kaza yaşamak için bekleyen bir felakettir. Manuel dağıtımlar, yedekleme yokluğu ve sabitlenmiş sırlar ile birleştiğinde, bir şey bozulduğunda — ve kesinlikle bozulacaktır — kurtarma süreci acı verici, yavaş ve belirsiz olur.
Deploynix’in arkasındaki felsefe, güvenli ve güvenilir seçeneğin varsayılan seçim olması gerektiğidir. Bir üretim Laravel uygulamasını güvenli bir şekilde çalıştırmak için bir sistem yöneticisi olmanıza gerek yok. Altyapı endişelerini platformın yönetmesi gerekir, böylece ürününüzü oluşturmak için odaklanabilirsiniz.
Deploynix üzerinden sağlanan her sunucu, kilitlenmiş bir güvenlik duvarı, root olmayan bir uygulama kullanıcısı, otomatik SSL, izleme ve manuel SSH oturumlarını ortadan kaldıran bir dağıtım hattı ile başlar. Bunlar premium özellikler değildir. Temel gereksinimlerdir.
İleriye Dönük
İleriye Dönük
Sunucularınızı manuel olarak yönetiyorsanız, bu yedi sorunu bir anda çözüme kavuşturmanıza gerek yok. Ancak bunları çözmeniz gerekiyor. En çok korktuğunuz hatalardan başlayın — genellikle yedekleme ve güvenlik duvarı kuralları — ve listedeki diğerlerini sırayla izleyin.
Ya da, Deploynix’in tüm bunları baştan yönetmesine izin verin. Tercih ettiğiniz bulut sağlayıcısında bir sunucu sağlar, Git reposunuza bağlanır ve Laravel uygulamanızı güvenle dağıtabilirsiniz. Bu yazıda açıklanan hataları yapmak imkansız hale gelir, çünkü platform bunları yapmak için tasarlanmamıştır.
Kaynak: Orijinal Makale
- Hata 1: Her Şeyi Root Olarak Çalıştırmak
- Hata 2: Yedeklemeleri Atlama (veya Sağlayıcınızın Yedekleme Yapacağını Varsaymak)
- Hata 3: Güvenlik Duvarını Açık Bırakmak
- Hata 4: SSL Sertifikalarını Atlama
- Hata 5: Ortam Değişkenlerini Sabitlemek
- Hata 6: İzleme veya Uyarı Kurmamak
- Hata 7: Manuel Olarak SSH Üzerinden Dağıtım Yapmak
- İyi Varsayılanların Bileşen Etkisi
- İleriye Dönük


