Diyelim ki bir Wordpress web sitesi için maksimum yükleme sınırını değiştirmek istiyorum ve aşağıdaki değerleri veriyorum:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
Peki, Wordpress ihtiyaç üzerine işlerken hangisine öncelik verecekti?
Diyelim ki bir Wordpress web sitesi için maksimum yükleme sınırını değiştirmek istiyorum ve aşağıdaki değerleri veriyorum:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
Peki, Wordpress ihtiyaç üzerine işlerken hangisine öncelik verecekti?
Yanıtlar:
Size bu dosyaların her birinde değişiyor ne sorudan açık değil, ama her durumda öyle de tahmin PHP ayarı .upload_max_filesize
Genel olarak, ayarlar her biri bir önceki değeri aşan bu sırayla uygulanır:
ini_set()Ancak, bu ayar tanımlandığı PHP_INI_PERDIR, hangi olarak bu sayfayı açıklanmıştır o kullanılarak ayarlanamaz araçlarla ini_setyüzden, wp-config.phponu değiştiremez. Yani soruya verdiğiniz örnekte, değeri 64MB .htaccess'ten alacaktır.
echo ini_get('upload_max_filesize');Kodunuzda bir yerde çalışarak bunu doğrulayabilirsiniz .
Kullanıcı başına php.ini dosyaları ve diğer Apache yapılandırma bağlamları gibi yukarıda listelemediğim başka yer değerlerinin ayarlanabileceğini unutmayın . Ayrıca, bunlardan bazıları devre dışı bırakılabilir , bu nedenle sunucunuz .htaccess'te fazla gezintiye izin verecek şekilde ayarlanmamışsa, orada da bir değer ayarlayamazsınız.
Wordpress'in, PHP yapılandırmasıyla farklı şekillerde etkileşen kendi yapılandırma değişkenlerinden bazılarını içerdiğini de unutmayın. Örneğin, WP_MEMORY_LIMITdener yükseltmek PHP memory_limitbaşlangıçta ayarı, ancak sahip olduğu kontroller kodu ve bunu düşürür asla . Bunun genel bir kuralı yoktur, farklı ayarlar için farklı olacaktır.
Temel olarak her üç dosya da dikkate alınır.
WordPress / sunucunuz aşağıdaki sırayla kontrol eder:
wp-config.php > .htaccess > php.ini
"Daha yüksek bir seviyedeki" bir şey (daha sonra zincirde) değerinizi sınırlıyorsa, önceki değer yok sayılır veya üzerine yazılır. Zincirin bir parçası eksikse, .htaccessörneğin, bir sonraki yüksek olan değer kullanılacaktır.
Örnekte .htaccesssınırlayacak max_upload_sizesunucu aynı zamanda ilk dosya boyutu 128 MB'a kadar kabul edeceğini en fazla 256 MB ve WordPress ile para cezası olacağını rağmen, 64 MB.
Ayrıca dosya üzerinden farklı bir sınır belirleyebilir.htaccess ve bunu yaparak değerin üzerine yazabilirsiniz php.ini, böylece artık hakim değer olmaz. Bu, birçok barındırma ortamında çalışır, bu nedenle bu şekilde yükseltebilir veya düşürebilirsiniz max_upload_size.
Daha sıkı yapılandırılmış bir barındırma / sunucunuz varsa, ayarları geçersiz kılma seçeneğinin php.inidevre dışı bırakılması mümkündür. Bu durumda, geçersiz kılma max_upload_sizegelen .htaccessYapmayacağım çalışması, bu nedenle bu sınırlayıcı bir faktör olabilir.
.htaccesslistenin ortasındaysa, bu neden sınırlayıcı faktör olsun ki?
Bence flomei cevabı düzenlemeli, çünkü bu doğru cevap ama kötü açıklama.
Php.ini -> .htaccess -> wp-config.phpaslında her dosyanın okunacağı sıradır ve daha önce tanımlanmış bir ayar olmadığını dikkate alarak değerleri ayarlar. Ancak daha önce tanımlanmış bir ayar olması durumunda, bu, yalnızca yeni ayar daha düşükse "fazla basılacaktır".
Bu, 64Mb ile wp-config.php ve 32 MB ile .htaccess varsa: wp-config.php, daha düşük bir sınır olduğundan ve 32Mb ile sonuçlanacağınız için bu ayarı geçersiz kılmaz.
Ancak 32Mb ile wp-config.php ve 64 MB ile .htaccess varsa, wp-config.php önceki ayarı 32Mb'ye düşürür.
Düzenleme: IMSoP'nin işaret ettiği gibi, wp-config.php sadece 'WP_MEMORY_LIMIT' değiştiriyorsanız PHP ayarlarının izin verdiğinden daha kısıtlayıcı bir boyut ayarlamanıza izin verir, bunun ötesine geçmenize izin vermez. Yani aslında bir ayar geçersiz kılma değil. Aslında, çalışma zamanında farklı noktalarda yapılan ayrı kontroller vardır. Php ayarını upload_max_filesizevarsaydığı gibi değiştiriyorsanız (soru hangi ayarları değiştirdiğinizi göstermez), bunun bir etkisi yoktur.
Ayrıca, php ayarlarınızda post_max_sizeolduğundan daha büyük olması gerektiğini dikkate almanız gerekecektir.upload_max_filesize
upload_max_filesizeböylece (Bir etkisi olması için çok geç muhtemelen çünkü) zamanında değiştirilemez wp-config.phpbunu öyle ya da böyle etkileyemez. Dahili 2MB varsayılandan da bahsedilir ve kesinlikle bundan daha yüksek bir değere ayarlayabilirsiniz.
wp-config.phpolduğunu ini_set('upload_max_filesize', '32M');o olacak hiç bir etkisi söz konusu ayar, çünkü çalışma anında ayarlanamaz olarak o olarak tanımlanırPHP_INI_PERDIR . (Belgeler sayfası yanlış
wp-config.phpdeğerler ve keyfi PHP değerleri ayarlama arasında biraz karışıklık var ini_set(). Anladığım kadarıyla wp-config.php, öncelikle WordPress'e özgü yapılandırma değerlerinin ayarlanmasıyla ilgilidir ve bunların çoğu , temelde PHP yapılandırma ayarıyla ( yanıtta belirtildiği gibi) gerçekten sınırlıdır (yani, üst limit uygulanır WP_MEMORY_LIMIT). Bu bir WordPress olayı. Ancak, PHP kullanarak rasgele PHP yapılandırma değerleri ayarlanırken ini_set()böyle bir kısıtlama yoktur.