Ender KAHRAMAN

Kişisel Tecrübelerin Paylaşımı… www.enderkahraman.com

Linux İşletim Sistemleri Üzerindeki Yeni Kritik Açık : Shellshock

Linux tabanlı sunucularda Shellshock adında yeni bir güvenlik açığı tespit edilmiştir.

Bu güvenlik açığı ile ilgili detaylı bilgiye aşağıdaki link üzerinden ulaşabilirsiniz :

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271

Sunucunuzda bu açığı tespit etmek için ssh konsolu üzerinde ;

env x='() { :;}; echo GuvenliDegil’ bash -c “echo Sunucunuz”

Komutunu çalıştırmanız sonrasında ;

GuvenliDegil
Sunucunuz

Şeklinde uyarı alıyor iseniz mutlaka ilgili yamayı sunucunuza yüklemeniz gerekmektedir.

Centos işletim sistemleri için ;

yum update bash

Komutu ile güncelleme işlemini gerçekleştirebilirsiniz, yada;

cat /etc/redhat-release

Komutu ile işletim sisteminizin versiyonunu öğrenebilir,

uname -a

Komutu ile de işletim sisteminizin kaç bit olduğunu öğrenip bu duruma göre uygun paketi yükleyebilirsiniz :

Centos 6 64bit

rpm -Uvh http://mirror.centos.org/centos-6/6/updates/x86_64/Packages/bash-4.1.2-15.el6_5.1.x86_64.rpm

Centos 5 64bit

rpm -Uvh http://mirror.centos.org/centos-5/5.10/updates/x86_64/RPMS/bash-3.2-33.el5.1.x86_64.rpm

Centos 5 32bit

rpm -Uvh http://mirror.centos.org/centos-5/5.10/updates/i386/RPMS/bash-3.2-33.el5.1.i386.rpm

Cloud Linux Kernel işletim sistemleri için;

yum clean all
yum update bash

Debian işletim sistemleri için;

apt-get update
apt-get install –only-upgrade bash

Ubuntu işletim sistemi için;

sudo apt-get update && sudo apt-get install bash

Güncelleme işleminin sonrasında yeniden kontrol işlemini gerçekleştirelim ;

env x='() { :;}; echo GuvenliDegil’ bash -c “echo Sunucunuz”

Aşağıdaki şekilde bir yanıt alınır ise sunucu üzerindeki açık kapatılmıştır.

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
Sunucunuz

cPanel RVSkin DBI connect(‘:localhost:3306′,’rvadmin_public’,…) failed: Can’t Hata Çözümü

cPanel üzerinde RVSkin ile ilgili örnek olarak ;

DBI connect(‘:localhost:3306′,’rvadmin_public’,…) failed: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) at /usr/local/cpanel/Cpanel/RvMysql2.pm line 243

Carp::carp(‘DBI connect(\’:localhost:3306\’,\’rvadmin_public\’,…) failed: …’) called at /usr/local/cpanel/perl/DBI.pm line 653

DBI::__ANON__(undef, undef) called at /usr/local/cpanel/perl/DBI.pm line 707

DBI::connect(‘DBI’, ‘DBI:mysql::localhost:3306’, ‘rvadmin_public’, ‘4u,!BI8eX5r&’) called at /usr/local/cpanel/Cpanel/RvMysql2.pm line 243

Cpanel::RvMysql2::RvMysql2_testremote(‘timeout’, 5, ‘passwd’,……………………………………………………………

……..main::_api1(‘include’, ‘include’, ‘/usr/local/cpanel/base/frontend/rvskin/rvbranding/indexheader.ht…’, ‘include’, ‘ARRAY(0x7f7cbf7539c0)’, ‘safe_html_encode’, undef, undef) called at cpanel line 1572

main::real_exectag(‘<cpanel Rvskin=”loadvars()”>’) called at cpanel line 4158

Şeklinde hatalar görülmekte ise, öncelikle sunucudaki boş disk alanını ;

df -h

Komutu ile kontrol etmenizi öneririm. Çünkü çoğunlukla bu durum boş disk alanı kalmaması halinde yada disk alanı üzerinde yer açmanızın sonrasında da yaşanabilmektedir. Boş disk alanı var yada alan açmanızın ardından yine konsol üzerinde ;

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
/scripts/restartsrv_mysql

Komutlarını uygulamanızın sonrasında problem düzelmiş olacaktır 😉

Joomla libraries/joomla/cache/handler/callback.php on line 99 Hata Çözümü

Joomla sitenizde birdenbire üst menü kayboldu ve hata log kaydı dosya içeriğinde ;

Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /var/www/vhosts/enderkahraman.com/httpdocs/libraries/joomla/cache/handler/callback.php on line 99

Şeklinde hata görülmekte ise panik yapmaya gerek yok 🙂 Problem sunucunun PHP sürümü 5.3 üzeri ve kullandığınız Joomla sisteminin versiyon düşüklüğünden dolayı yaşanmaktadır.

Durumu düzeltmek için ise ;

libraries/joomla/cache/handler/callback.php

Dosyasını açıp ;

function get( $callback, $args, $id=false )

Satırını ;

function get( $callback, &$args, $id=false )

Olarak değiştiriyoruz.

Yani aynı dosya içerisinde ;

$result = call_user_func_array($callback, $args);

Satırını ;

$result = call_user_func_array($callback, &$args);

Olarak düzenlememiz durumunda problem böylelikle çözülmüş olacaktır 😉

PHPThumb Kütüphanesinde Alınan Your GD installation does not support JPG image types Hata Çözümü

Kendi projeniz üzerinde PHPThumb kütüphanesi kullanmanız halinde JPG dosyaları için bazen aşağıdaki hata mesajı ile karşılaşabilirsiniz ;

Fatal error: Uncaught exception ‘Exception’ with message
‘Your GD installation does not support JPG image types’
in ‘(…)\phpthumb\ThumbBase.inc.php:165 Stack trace:
#0 (…)\phpthumb\GdThumb.inc.php(1081): ThumbBase->triggerError(‘Your GD install…’)
#1 (…)\phpthumb\GdThumb.inc.php(101): GdThumb->verifyFormatCompatiblity()
#2 (…)\phpthumb\ThumbLib.inc.php(127): GdThumb->__construct(‘D:/xampp/htdocs…’, Array)
#3 (…)\phpthumb\ThumbBase.inc.php on line 165

Çözümü zor gibi tahmin etseniz de aslında basit bir işlem gerçekleştirip problemi çözübilmemiz mümkündür. Eğer sunucunuz üzerinde GD Kütüphanesinin doğru bir şekilde kurulmuş ve aktif olduğundan emin iseniz “GdThumb.lib.php” dosyası içerisinde yer alan ;

case ‘JPG’:
case ‘PNG’:
$isCompatible = $gdInfo[$this->format . ‘ Support’];
break;

Satırlarını bulup aşağıdaki şekilde değiştirin ;

case ‘JPG’:
$isCompatible = (isset($gdInfo[‘JPG Support’])) ? $gdInfo[‘JPG Support’] : $gdInfo[‘JPEG Support’];
break;
case ‘PNG’:
$isCompatible = $gdInfo[‘PNG Support’];
break;

Yani değişikliğin ardından ilgili bölüm aşağıdaki şekilde görülecektir.

protected function verifyFormatCompatiblity ()
{
$isCompatible   = true;
$gdInfo     = gd_info();

switch ($this->format)
{

case ‘GIF’:
$isCompatible = $gdInfo[‘GIF Create Support’];
break;
case ‘JPG’:
$isCompatible = (isset($gdInfo[‘JPG Support’])) ? $gdInfo[‘JPG Support’] : $gdInfo[‘JPEG Support’];
break;
case ‘PNG’:
$isCompatible = $gdInfo[‘PNG Support’];
break;
default:
$isCompatible = false;
}

if (!$isCompatible)
{
$this->triggerError(‘Your GD installation does not support ‘ . $this->format . ‘ image types’);
}
}

Artık JPG dosyalarını da problem yaşamadan yükleyebilmeniz mümkün olabilecektir 😉

PrestaShop Kurulum Sonrası Beyaz Sayfa Problemi – Configuration.php on line 160

PrestaShop Türkçe paket üzerinden kurulum işlemini tamamladınız fakat beyaz sayfa yada ;

PHP Fatal error:  Call to undefined method Shop::getContextShopID() in /var/www/vhosts/enderkahraman.com/httpdocs/classes/Configuration.php on line 160

Gibi bir hata almanız durumunda, problemin çözümü için ;

/config/config.inc.php

Dosyası içerisinde yer alan ;

setlocale(LC_CTYPE, $locale);

Satırını bulup başına // ekleyip yani ;

//setlocale(LC_CTYPE, $locale);

Olarak düzenlemeniz durumunda muhtemel olarak problem çözülmüş olacaktır.

Linux Plesk PhpMyAdmin Paneli Üzerinden Yüksek Boyutlu Veritabanı Export Problemi Çözümü

Linux Plesk Panel sunucunuzda PhpMyAdmin arayüzü üzerinden veritabanınızı yedeklemek için Dışarı Aktar yani Export bölümünde belli bir süre beklemenizin ardından sayfa bulunamıyor gibi hata almanız durumunda muhtemelen veritabanınızın boyutu yüksek ve sunucu üzerindeki memory_limit değerinin de düşük olmasından dolayı da işlem zaman aşımına uğramaktadır.

Durum ile ilgili çözüm için, sunucunuza ssh üzerinden login olup konsol satırında ;

nano -w /usr/local/psa/admin/conf/php.ini

Dosyasını açıp ;

memory_limit = 128M

Değerini 256M yada 512M olarak düzenleyip ;

memory_limit = 256M

Değişiklikleri kaydetmenizin ardından ;

/etc/init.d/psa restart

Komutu ile Plesk servisini yeniden başlatmanız yeterli olacaktır.

Linux Plesk Panel’de the first has precedence, perhaps you need a NameVirtualHost directive Hata Çözümü

Linux plesk panel sunucu üzerinde ;

[warn] VirtualHost 95.173.168.150:443 overlaps with VirtualHost 77.245.156.201:443, the first has precedence, perhaps you need a NameVirtualHost directive
[warn] VirtualHost 95.173.168.150:80 overlaps with VirtualHost 77.245.156.202:80, the first has precedence, perhaps you need a NameVirtualHost directive

Gibi bir hata almanız durumunda sunucunun VirtualHost ayarlarının saklı tutulduğu dosya içerisinde birtakım karışıklıktan dolayı bu hata alınmaktadır. Problemi düzeltmek için SSH konsolu üzerinden ;

/usr/local/psa/admin/sbin/websrvmng -a -v

Komutunu uygulayıp, daha sonrasında web servisini de ;

/etc/init.d/httpd restart

Komutu ile başlatmamızın ardından muhtemel olarak sorun düzelmiş olacaktır 😉