Dün PrestaShop kurulumu yapan bir hosting müşterimiz, bizi arayıp, başarıyla PrestaShop kurulumu yaptığı halde sitede beyaz sayfa hatası olduğunu belirtti. Biz de duruma el atıp sunucudan kaynaklı bir eksiklik var mı diye inceledik.

Kurulum esnasında sistem uyumluluğu ekranına baktığımızda "Sihirli Tırnaklar"ın devre dışı olduğu yazıyordu. PHP Sihirli Tırnaklar'ın açılması konusunu araştırdım. Bizzat php.net resmi sitesinde, üstelik Türkçe resmi çevirisi ile de konu hakkında kesinlikle diye belirtilerek olumsuz bir yaklaşım sergilenmiş. Php.net'in açıklamasında, PHP Sihirli Tırnaklar'ın Php 5.3'ten beri önerilmediği ve artık kesinlikle kullanılmaması gerektiği yazıyor. PHP 5.6 sürümünde zaten hiç olmayacakmış sihirli tırnaklar, yani yasaklanacakmış.

Biz de bu durumda başka çözüm yolu arayışına girdik. PrestaShop veya başka herhangi bir script kurulumundan sonra beyaz sayfa çıkması, aslında o sayfada göremediğimiz bir hata kodunun olması gerektiği fikri ile hareket edip, sistemin hata kodlarını belirten dosyalarında arama yaptık. PrestaShop sisteminde config klasörü içindedir gerekli ayar dosyaları. Buradaki defines.inc.php dosyasında aradığımız hata kodlarının görünüp, görünmemesini düzenleyen kodu bulduk:

description">Kod:
/* Debug only */
Bu satırın altında;

Kod:
if (!defined('_PS_MODE_DEV_'))
define('_PS_MODE_DEV_', false);
Bu satırlar var. Buradaki 2. satır bize sorunun kaynağını gösteren koddur.
Kod:
define('_PS_MODE_DEV_', false);
Şu şekilde değiştirerek:

Kod:
define('_PS_MODE_DEV_', true);
Bu kodun sonundaki false değerini True yapınca beklediğimiz gibi sitede sorunun kaynağı göründü.

Ortaya çıkan sorun, diğer bazı scriptlerde de gördüğümüz gibi, sistemdeki default PHP limitlerinin yetersizliğiydi. Böyle durumlarda en pratik yöntem olarak .htaccess dosyasında, özel değerler belirtilerek limitlerin arttırılmasıdır. Sunucuyu da aşırı zorlamalara neden olmamak için bu konuda makul değerleri kullanmak gerekir. Siz de aşağıdaki değerleri yazarak bu sorunun üstesinden gelebilirsiniz.

.htaccess dosyanızdaki kodların altına şunları ekleyip kaydedin:
Kod:
#Change upload limits 
php_value memory_limit 50M 
php_value post_max_size 50M 
php_value upload_max_filesize 50M 
php_value max_execution_time 900 
#Change upload limits end
Geçmiş olsun. Başlığa 1.6 sürüm yazdık ama diğer versiyonlarda da aynı sorun olursa bu yolla çözüm sağlayabilirsiniz.