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_set
yüzden, wp-config.php
onu 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_LIMIT
dener yükseltmek PHP memory_limit
baş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 .htaccess
sınırlayacak max_upload_size
sunucu 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.ini
devre dışı bırakılması mümkündür. Bu durumda, geçersiz kılma max_upload_size
gelen .htaccess
Yapmayacağım çalışması, bu nedenle bu sınırlayıcı bir faktör olabilir.
.htaccess
listenin 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.php
aslı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_filesize
varsaydığı 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_size
olduğundan daha büyük olması gerektiğini dikkate almanız gerekecektir.upload_max_filesize
upload_max_filesize
böylece (Bir etkisi olması için çok geç muhtemelen çünkü) zamanında değiştirilemez wp-config.php
bunu öyle ya da böyle etkileyemez. Dahili 2MB varsayılandan da bahsedilir ve kesinlikle bundan daha yüksek bir değere ayarlayabilirsiniz.
wp-config.php
olduğ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.php
değ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.