Nginx 413 request entity too large sorunu

Yüksek boyutlu dosya yüklemelerinde bu hatayı almanız olası bir durumdur. Test sunucusu centos 7 ve plesk obsidian 18.0.33 sürümünde yapılmaktadır.
Aşağıdaki adımları sırasıyla yapmamız gerekiyor.

İlk olarak ana nginx.conf dosyasında düzenleme yapacağız.
nano /etc/nginx/nginx.conf

Dosyayı açtıktan sonra aşağıdaki gibi bir bölüm göreceksiniz. Eğer daha önce client_max_body_size değeri eklenmiş ise bunu istediğimiz boyut yapalım eklenmemiş ise biz ekleyim. İşlem yaptıktan sonra kayıt edip service nginx restart diyoruz.

http {
##
# Basic Settings
##
client_max_body_size 250M;


}

Şimdi php.ini dosyasında gerekli ayarları yapacağız. Bu işlemi plesk panel üzerinden PHP Ayarları bölümünden de yapabilirsiniz.

memory_limit, max_execution_time, max_input_time, post_max_size, upload_max_filesize değerlerini istediğimiz sayıları vererek değiştiriyoruz.

Php değişiklerin olup/olmadığının kontrolü için bir php dosyasına phpinfo() yazıp test edebilirsiniz.

Bu işlemleri yaptıktan sonra tekrar yüklemeyi deneyiniz eğer olmaz ise aşağıdaki adımı yapabilirsiniz.

cd /var/www/vhosts/system/ içine girelim. Burada domain adınızla aynı olan klasörün içine giriniz. conf dizinine giriniz.

nano nginx.conf diyerek yerel nginx.conf dosyamızı açalım

Burada client_max_body_size değerini bulup istediğimiz sayısı veriyoruz.

service nginx restart diyelim.

PHP Mobilya Sitesi

Yazılım dersi görenler bilir. Dersten geçmek için hocalar genelde küçük bir site yapmanızı ister. Bazen e-okul gibi bazen ürün satışı yada üye girişi olan bir sistem olabilir. Boş vaktimde vardı. 1 gün içinde hazırlayıp teslim ettim. Aynı durumda olan öğrenciler olabileceği için siteyi paylaşmak istedim. Site çok basit şekilde kodlandı. Amatör durması için güvenlik açıkları bile kapatılmadı. Kodları incelediğinizde rahatlıkla yapılan işlemleri görebilirsiniz. Sepet, sipariş verme ve üye girişi bölümlerinde kodlara açıklama satırları eklendi. İşleyiş mantığını öğrenebilirsiniz. Birde sitedeki bölümlerin nasıl çalıştığını anlatan word dosyasını hazırlamasını istemiş bunuda ekledim. Kendinize göre düzenleyebiliriz.

Dosyayı indirip mobilya adında db oluşturduktan sonra sql dosyasını yüklemeniz yeterlidir. Word dosyası için admin ve örnek müşteri giriş bilgileri vardır.

İndir

Localhost Default Çalışma Klasörünü Değiştirme

Bazı projelerimizde localhostta çalışırken genelde klasör altında çalışmaktayız. Çoğu uygulama klasör altında çalışmaya uygun olmasına rağmen bazı uygulamalarda direk htdocs içinden çalıştırmak gerekiyor. Bunun için iki yol var. Ya dosyalarımızı htdocs içine atacağız alt klasöre atmadan yada serverdaki default çalışma klasörü olan htdocs klasörünü değiştireceğiz. Biz daha sağlıklı olduğu için ikinci yolu tercih edeceğiz.

Xampp üzerinden config menüsü altındaki httpd.conf menüsüne tıklıyoruz. Böylece direk httpd.conf dosyası karşımıza gelecektir. Dosya içinden DocumentRoot ve Directory bölümündeki C:/xampp/htdocs alanına çalışacağımız alt klasör adını en sona yazıyoruz. Dosyayı kayıt edip. Apache’ye restart atıyoruz. Artık tarayıcıya http://localhost yazdığımızda direk yazdığımız klasörden çalışmaya başlayacaktır. Örnek: C:/xampp/htdocs/calisilacakklasoradi

Not: Bu işlemi yaptığınızda htdocs içindeki diğer klasörler görünmeyeceği için çalışmayacaktır.

Siteye Yandex Harita Ekleme

Google son zamanlarda api servisinin ücretsiz kullanımını daha da kısıtladı. Yeni map api key aldığınızda 100 saniyede bir gösterime izin vermektedir. 100 saniye içinde harita gösterimde oluyor ama harita üzerinde for development purposes only uyarı geliyor. Bu şekilde ziyaretçinin gözüne pek hoş gelmiyor tabi. Ancak imdadımıza yandex map yetişiyor. Şuanlık ücretsiz ve herhangi bir api key almanızda gerekmiyor. Direk kodları yapıştırıp haritayı kullanabilirsiniz.  Kodlar zaten çok basit ve açıklayıcı.

 

 


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Quick start. Showing an interactive map on a page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="https://api-maps.yandex.ru/2.1/?lang=tr_TR" type="text/javascript"></script>
    <script type="text/javascript">
        ymaps.ready(init);
        var myMap, 
            myPlacemark;

        function init(){ 
            myMap = new ymaps.Map("map", {
                center: [55.76, 37.64],
                zoom: 7
        });

        myPlacemark = new ymaps.Placemark([55.76, 37.64], { hintContent: 'İcon başlığı', balloonContent: 'Kutu içeriği'
            });
            
            myMap.geoObjects.add(myPlacemark);
        }
    </script>
</head>

<body>
    <div id="map" style="width: 600px; height: 400px"></div>
</body>

</html>

Daha fazla örnek uygulamaya bu linkten erişebilirsiniz.