proxy_fcgi error Connection reset by peer: Error dispatching request to hatası ve çözümü

Web sitenizde Service Unavailable hatası alıp loglarda aşağıdaki durumu görüyor iseniz,

[Thu Sep 07 15:00:55.194125 2016] [proxy_fcgi:error] [pid 3073:tid 139922543388416] (104)Connection reset by peer: [client x.x.x.x:47400] AH01075: Error dispatching request to :, referer: http://xxx.xxx/odeme/
[Thu Sep 07 15:01:04.991963 2016] [proxy_fcgi:error] [pid 3158:tid 139922526603008] (104)Connection reset by peer: [client x.x.x.x:47436] AH01075: Error dispatching request to :, referer: http://xxx.xxx/odeme/
[Thu Sep 07 15:05:34.736200 2016] [proxy_fcgi:error] [pid 3072:tid 139922694457088] (104)Connection reset by peer: [client x.x.x.x:48660] AH01075: Error dispatching request to :, referer: http://xxx.xxx/odeme/

Audit loglarınızda da loglar aşağıdaki gibi ise,

type=ANOM_ABEND msg=audit(1504783865.871:28198): auid=4294967295 uid=10160 gid=1004 ses=4294967295 pid=65221 comm=”php-fpm” reason=”memory violation” sig=11
type=ANOM_ABEND msg=audit(1504784074.897:28941): auid=4294967295 uid=10266 gid=1004 ses=4294967295 pid=66368 comm=”php-fpm” reason=”memory violation” sig=11
type=ANOM_ABEND msg=audit(1504784147.758:29233): auid=4294967295 uid=10266 gid=1004 ses=4294967295 pid=66823 comm=”php-fpm” reason=”memory violation” sig=11

bir ImageMagick bug ı ile karşı karşıyasınız demektir.

Sunucuzda aşağıdaki komutu çalıştırarak sorunu giderebilirsiniz.

rpm -e ImageMagick

Eğer bu yöntem işe yaramaz ise ,örneği Plesk kullandığınızı düşünelim , Ayarlar ve Php ayarları bölümünden Imagick in tikini kaldırıp tekrar deneyebilirsiniz. Sorun giderilmiş olacaktır. Multiphp kullanabiliyor iseniz php versiyon değiştirmeyi de deneyebilirsiniz.

Ayhan ARDA

Centos 6.x üzerine Apache , Php , Mysql ,Phpmyadmin Kurulumu (LAMP)

Öncelikle mevcut kurulu tüm paketleri güncelleyelim.

yum update

Mysql Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install mysql mysql-server

Sistem reboot edildiğinde otomatik olarak açılışta çalışır duruma gelmesini sağlayalım.

chkconfig –levels 235 mysqld on

Servisi başlatalım.

/etc/init.d/mysqld start

Mysql için şifre atayalım , default şifre boş gelir. Enter ile geçiniz , sonrasında istediğiniz şifreyi belirleyiniz , sorulara kendinize uygun cevaplar veriniz ,örneğin test database i kaldırılsın mı , root kullanıcısı uzaktan da erişilebilsin mi gibi..

mysql_secure_installation

Apache Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install httpd

Sistem reboot edildiğinde otomatik olarak açılışta çalışır duruma gelmesini sağlayalım.

chkconfig –levels 235 httpd on

Servisi başlatalım.

/etc/init.d/httpd start

Şimdi /var/www/html altına yüklediğiniz dosyalar erişilebilir olacaktır , apache nin konfigurasyon dosya yolu da /etc/httpd/conf/httpd.conf şeklindedir.

Php5 Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install php

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Php5 Testi:

nano /var/www/html/info.php

İçine aşağıdaki kodu giriniz.

<?php
phpinfo();
?>

Şimdi http://ipadresiniz/info.php yi browserdan çağırdığınızda info.php yi görmelisiniz.

Php5 e Mysql desteği verelim;

yum -y install php-mysql

Şimdi sık kullanılan cms ler için (wordpress,joomla,drupal..) bilindik php modüllerini ekleyelim.

yum -y install php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel

Apc kuralım;

yum -y install php-pecl-ap

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Tekrar info.php ye baktığınızda kurulu modülleri görebiliyor olacaksınız.

PhpMyAdmin Kurulumu:

RPMforge GPG anahtarını import edelim.

64 bit centos kurduğunuzu varsayıyorum, ilgili rpm paketini indirelim.

yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Aşağıdaki komutla phpmyadmin kuralım.

yum -y install phpmyadmin

Şimdi phpmyadmin configurasyonunda phpmyadmin in her yerden erişilebilir olmasını sağlayalım.

nano /etc/httpd/conf.d/phpmyadmin.conf

Açılan dosya da aşağıdaki satırları siliniz ya da başına # ekleyiniz.

<Directory “/usr/share/phpmyadmin”>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>

Olması gereken hali , tabi izin için özel bir ip de ekleyebilirsiniz , test makinaıs olduğu için ben her yerden erişmek istiyorum ve başına # koyarak etkisiz hale getirdim.

#<Directory “/usr/share/phpmyadmin”>
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Şimdi authentication tip ini değiştirelim.

nano /usr/share/phpmyadmin/config.inc.php

Açılan dosya da

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

satırını bulup

$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;

şeklinde değiştiriniz ve kaydediniz.

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Şimdi http://ipadresiniz/phpmyadmin.php yi browserdan çağırdığınızda phpmyadmin i görmelisiniz.Kullanıcı adı root , şifresi ise mysql secure installation bölümünde tanımladığınız şifredir. Umarım yardımcı olmuştur.

Saygılarımla

Ayhan ARDA

File_get_contents fonsiyon testi , Php ile veri çekme örneği

İlgili fonksiyonun çalışıp çalışmadığını  aşağıdaki şekilde test edebilirsiniz.

<?php
$site = file_get_contents("http://www.look2linux.com");
echo $site;
?>

 

ya da sadece title çekmek istiyor isek , aşağıdaki örneği kullanabiliriz.

<?php
function bul($bas, $son, $yazi)
{
@preg_match_all('/' . preg_quote($bas, '/') .
'(.*?)'. preg_quote($son, '/').'/', $yazi, $m);
return @$m[1];
}
$site = file_get_contents("http://www.look2linux.com");
$baslik = bul("<title>", "</title>", $site);
echo $baslik[0];
?>

import_request_variables satırında No prefix specified – possible security hazard hatası

“Notice: import_request_variables() [function.import-request-variables]: No prefix specified – possible security hazard in”

Bu fonksiyon her ne kadar php 5.3 ten sonra kaldırılmış olsada eski sürüm php çalışan sunucularınızda ki kullanıcılarınız hala kullanıyor olabilir , bu hatayı gidermek için php.ini de register_globals ayarını On konumuna getirmelisiniz. Böylece hata giderilmiş olacaktır.

Fonksiyon hakkında bilgi için : http://php.net/manual/tr/function.import-request-variables.php