Centos 7’de Warning: mysqli_connect(): (HY000/2002): Permission denied hatası ve çözümü

Centos 7’de Warning: mysqli_connect(): (HY000/2002): Permission denied hatası ve çözümü

Centos 7 sunucunuza apache , php ve phpmyadmin kurdunuz ve phpmyadmin ile uzaktaki bir veritabanına bağlanmaya çalışıyorsunuz , denerken başlıktaki hatayı aldınız diyelim , çözüm için aşağıdaki komutu kullanmalısınız.

setsebool -P httpd_can_network_connect 1

Böylece httpd servisinizin dışarıya ulaşmasına izin vermiş olacaksınız ve tekrar phpmyadmin’den denediğinizde erişebildiğinizi göreceksiniz.

Aslında centos kurulum sonrası selinux u kapatmanız da bu hatayı almanızı engelleyecektir. Eğer komple kapatmak istemiyorsanız yukarıdaki komutu kullanmak daha mantıklı bir seçenek olacaktır.

Ayhan ARDA

Linux Plesk phpMyAdmin Session Hatası ve Çözümü

Linux Plesk phpMyAdmin Session Hatası ve Çözümü

Plesk panelinizde kurulu phpMyadmin’e erişmeye çalıştığınızda aşağıdaki hatayı alıyor olabilirsiniz.

Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

session_start(): open(SESSION_FILE, O_RDWR) failed: No such file or directory (2)

session_start(): Failed to read session data: files (path: ./tmp/session)

Çözüm için aşağıdaki işlemi yapmanız yeterlidir.

mkdir /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/tmp
mkdir /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/tmp/session
chmod 777 /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/tmp
chmod 777 /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/tmp/session

Ayhan ARDA

bash: restorecon: command not found hatası ve çözümü

bash: restorecon: command not found hatası ve çözümü

Genelde firewall kurallarını save ederken karşılaşabileceğiniz bu hata için aşağıdaki paketi sunucunuza kurmanız yeterlidir.

Debian, ubuntu türevleri için ; apt-get install policycoreutils

Centos ve türevleri için , yum install policycoreutils

Fix rpmdb: Thread died in Berkeley DB library hatası ve çözümü

Fix rpmdb: Thread died in Berkeley DB library hatası ve çözümü

Bazen disk hatalarından dolayı rpmdb database iniz bozulabilir , bunu gidermek için aşağıdaki yöntemi kullanabilirsiniz. Centos üzerinde test edilmiştir.

mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
rm -f /var/lib/rpm/__db.[0-9][0-9]*
rpm –quiet -qa
rpm –rebuilddb
yum clean all

Şimdi rahatlıkla paket kurabilir ya da sisteminizi güncelleyebilirsiniz.

Ayhan ARDA

 

Centos 7 ‘de Docker ve Docker Compose Kurulumu ile Kullanımı

Docker Compose, multi-container uygulamalarınızı gereksinimleri ile birlikte tek bir dosyaya tanımlayarak akabinde tek bir komut ile reçetesini yazdığınız container ı ayağa kaldırmanızı sağlamaktadır.

Şimdi elimizde sıfır kurulu ve updateleri yapılmış bir centos 7 var , bir public ip verdim ( burada bolca var 🙂 ) , siz private ip de verebilirsiniz , sonuç olarak ssh erişimim de var ve makina bir şekilde internete çıkıyor, buraya kadar tamam ise konuya girebiliriz.

Bu arada docker compose eski fig in yerini aldı , fig duyar iseniz artık o deprecated oldu ve resmi olarak docker compose diye anılıyor.

Öncelikle Docker imajları hakkında bilgi verelim , Her bir docker container ı , bir docker imajının yerel bir kopyasıdır. Docker imajlarını bir linux işletim sistemi gibi düşünebilirsiniz ancak şöşnde sadece minimal gereksinimler bulunmaktadır ve bu imajlar ana host un kernel ini kullanırlar fakat çalışan bir container ın içine girerseniz sadece o container ın dosya sistemini görürsünüz.

En çok kullanılan imaj ları docker hub da bulabilirsiniz , Bunlar docker team tarafından kontrol edilir ve bazı imajların altında official ibaresini görür iseniz bu imajlara güvenebilirsiniz çünkü docker team bunları test etmiştir.

Şimdi docker kurarak başlayalım , bu iş için yine docker team ın hazırladığı bir shell script i çağırıp çalıştıracağız.

Centos 7 de wget öntanımlı gelmiyor , aşağıdaki komut ile indirebilirsiniz.

yum install wget

Şimdi scriptimizi çekiyor ve çalıştırıyoruz.

[[email protected] ~]# wget -qO- https://get.docker.com/ | sh

Yaklaşık 30 sn içinde kurulum tamamlandı , şimdi kurulup kurulmadığını aşağıdaki şekilde doğrulayabiliriz.

[[email protected] ~]# docker version
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:39:25 2016
OS/Arch: linux/amd64

Eğer docker ı root olmayan bir kullanıcı ile kullanacak iseniz aşağıdaki komutla kendinizi docker grubuna dahil edebilirsiniz.

usermod -aG docker $(whoami)

Eğer root iseniz yukarıdaki komutu kullanmanıza gerek yok , şimdi docker ı başlatalım ve bundan sonraki rebootlar sonunda tekrar çalışacak hale getirelim , aşağıdaki 2 komutu kullanabilirsiniz.

[[email protected] ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[[email protected] ~]# systemctl start docker.service

Artık docker çalışır durumda. Şimdi docker compose kurulumuna geçebiliriz.

Öncelikle python-pip kuruyorum çünkü docker compose u pip ile kuracağım.

[[email protected] ~]# yum install epel-release

[[email protected] ~]# yum install -y python-pip

Şimdi docker compose u kuruyoruz.

[[email protected] ~]# pip install docker-compose

Kurulum tamamlandı.Şimdi hemen docker compose ile bir container ayağa kaldıralım.

Şimdi yaml dosyamız için bir klasör açıp içine giriyorum.

[[email protected] ~]# mkdir hello-world
[[email protected] ~]# cd hello-world

docker-compose.yml isimli dosyamızı oluşturup içine reçetemizi yazacağız. Ben favori editör olarak nano kullanıyorum , Siz farklı bir editor kullanabilirsiniz.

[[email protected] hello-world]# nano docker-compose.yml

içine aşağıdaki satırları yazabilir ve kaydedebilirsiniz.

ayhanarda-test:
image: hello-world

Yani aşağıdaki gibi gözükmeli.

[[email protected] hello-world]# cat docker-compose.yml
ayhanarda-test:
image: hello-world

Şimdi yapmamız gereken tek bir hareket kaldı , bu prospektüsün yazılı olduğu containerı up etmek , hala hello-world klasörümüzün içinde iken aşağıdaki komutu kullanabilirsiniz.

[[email protected] hello-world]# docker-compose up
Pulling ayhanarda-test (hello-world:latest)…
latest: Pulling from library/hello-world
03f4658f8b78: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest
Creating helloworld_ayhanarda-test_1
Attaching to helloworld_ayhanarda-test_1
ayhanarda-test_1 |
ayhanarda-test_1 | Hello from Docker.

..

Şimdi belirttiğimiz image ı indirdik , hadi bunu doğrulayalım.

[[email protected] hello-world]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 690ed74de00f 5 months ago 960 B

Şimdi aynı yöntemle bir de nginx kuruyorum , bunu yazmayacağım , şimdi docker hub da offical nginx i bulup adını doğrulayıp aynı yöntem ile oluşturabilirsiniz. Docker ps ile çalıştığını görebilirsiniz.

[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e37b79df162b nginx “nginx -g ‘daemon off” About a minute ago Up About a minute 80/tcp, 443/tcp nginx_nginx_1

Yukarıda bir Container id göreceksiniz , her çalışan container ın bir id si vardır, yani eğer biz bu container ın dosya sistemine girmek ister isek aşağıdaki gibi o makinanın içine erişebiliriz , hatta nginx in conf dosyasında değişiklik yapabiliriz , işimiz bitince exit yazarak çıkabiliriz.

[[email protected] ~]# docker exec -it e37b79df162b /bin/bash
[email protected]:/# cd etc/nginx/conf.d/
[email protected]:/etc/nginx/conf.d# ls
default.conf

Farklı docker-compose ve multi-container örnekleri ile yakında görüşmek üzere..

Ayhan ARDA

Let’s Encrypt Sertifika Kurulumu

Örneğimizi Cpanel kurulu sunucuda yapacağız , ihtiyaca göre farklı sunucular içinde yazabiliriz. Öncelikle Let’s Encrypt ten bahsedelim , ücretsiz ssl sağlayan bir organizasyon diyebiliriz , destekçileri arasında Mozilla , Facebook gibi devler bulunmakta , en önemli özelliği ücretsiz ssl sağlaması, en güzel tarafıda bir csr oluşturmaya gerek olmaması ve alan adının ya da hosting in sahibi olduğunuzu kanıtlayacak [email protected] gibi bir mail adresine sahip olmanızın gerekmemesi. Şu an için sunucu sahipleri avantajlı durumda , barındırdıkları siteler için ücretsiz kurup servis edebilirler ancak paylaşımlı hosting kullanıcıları servis yaygınlaşana kadar ssl e para ödemeye devam edecek gözüküyor çünkü sunucu yöneticisi shell access verse de kurulum için root hakları gerekmekte. Artık arama motorlarının da ssl li siteleri kendi algoritmasında 1 puan üstte tutması da ssl kullanmak için iyi bir sebep gibi gözüküyor. Şimdi cpanel kurulu bir sunucunuz olduğunu varsayıyorum , üzerinde kendinize ait 3-5 site olsun ve bunlara ssl kurmaya çalışalım.

Sunucunuza ssh tan bağlanalım.

Ben root dizininde çalışmak istedim , siz farklı bir dizinde çalışabilirsiniz.

[email protected] [/]# cd root/

Devam edebilmek için git kurulu olması gerekir , kurulu olup olmadığını doğrulayalım.

[email protected] [~]# git
usage: git [–version] [–help] [-c name=value]
[–exec-path[=<path>]] [–html-path] [–man-path] [–info-path]
[-p|–paginate|–no-pager] [–no-replace-objects] [–bare]
[–git-dir=<path>] [–work-tree=<path>] [–namespace=<name>]
<command> [<args>]

Yukarıdaki gibi bir sonuç ile karşılaştı iseniz kuruludur , değil ise aşağıdaki komut ile kuralım.

[email protected] [~]# yum install git -y

Kurulum tamamlandı ise şimdi Let’s Encrypt dosyalarını /root dizini altına kopyalayabiliriz.

[email protected] [~]# git clone https://github.com/letsencrypt/letsencrypt
Cloning into ‘letsencrypt’…

İşlem tamamlandığında aşağıdaki komut ile letsencrypt dizini içine girelim.

[email protected] [~]# cd letsencrypt

Şimdi bu noktadan sonraki işlemde python-virtualenv kurulu olması gerekmekte , yum install python-virtualenv -y komutu ile kurabilirsiniz ama ben aşağıdaki doğrulama işlemini yapınca kendi farkına varıp kurmaya başladı , tavsiyem öncelikle aşağıdaki komutu kullanmanız ,hata almanız durumunda bu paragraftaki komutu kullanmanızdır.

[email protected] [~/letsencrypt]# ./letsencrypt-auto –help

İşlem 1-2 dakika sürebilir , ben bir ara panik olup elim hemen snapshot almaya gitmişti ama gereksizmiş , sıkıntı olmuyor , benim düşüncem bu paketin cpanelin kendi phyton paketlerine zarar vereceği şeklinde idi , bir şey olmadı 🙂

Şimdi tavsiyem httpd servisini kısa süreliğine durdurmanız.

[email protected] [~/letsencrypt]# service httpd stop

Eğer ssl kuracağınız alan adına karar verdi iseniz aşağıda ayhanarda.com gördüğünüz yerleri kendi alan adınız ile değiştirmelisiniz.

[email protected] [~/letsencrypt]# ./letsencrypt-auto certonly –standalone -d ayhanarda.com -d www.ayhanarda.com

Ekranda size bir mail adresi yazmanızı isteyen soru gelecek , kendi ya da müşterinizin mail adresini yazın ve devam edin.

Sonrasında şartları vs kabul etmenizi isteyen bir ekran gelecek , onaylayıp geçiniz.İşlem sonunda sertifika dosyalarının nereye koyulduğunu belirten bir yazı göreceksiniz , muhtemelen /etc/letsencrypt/live/ayhanarda.com dizininde olacak.

Şimdi hemen httpd servisini tekrar başlatalım.

[email protected] [~/letsencrypt]# service httpd start
Redirecting to /bin/systemctl start  httpd.service

Hemen sertifikanın olduğu dizine erişelim.

[email protected] [~/letsencrypt]# cd /etc/letsencrypt/live/
[email protected] [/etc/letsencrypt/live]# ls -al
total 12
drwx—— 3 root root 4096 Mar  4 16:13 ./
drwxr-xr-x 8 root root 4096 Mar  4 16:13 ../
drwxr-xr-x 2 root root 4096 Mar  4 16:13 ayhanarda.com
[email protected] [/etc/letsencrypt/live]# cd ayhanarda.com/
[email protected] [/etc/letsencrypt/live/ayhanarda.com]# ls -al
total 8
drwxr-xr-x 2 root root 4096 Mar  4 16:13 ./
drwx—— 3 root root 4096 Mar  4 16:13 ../
lrwxrwxrwx 1 root root   34 Mar  4 16:13 cert.pem -> ../../archive/ayhanarda.com/cert1.pem
lrwxrwxrwx 1 root root   35 Mar  4 16:13 chain.pem -> ../../archive/ayhanarda.com/chain1.pem
lrwxrwxrwx 1 root root   39 Mar  4 16:13 fullchain.pem -> ../../archive/ayhanarda.com/fullchain1.pem
lrwxrwxrwx 1 root root   37 Mar  4 16:13 privkey.pem -> ../../archive/ayhanarda.com/privkey1.pem

Görüldüğü üzere tüm sertifikalar burada , cat komutu ile okunabilir durumda , hemen whm panele erişip Install an SSL Certificate on a Domain bölümüne girelim.

Şimdi aşağıdaki resmi inceleyip resim üzerinde yazdığım detayları uygulayabilir ve ssl kurulumunu tamamlayabilirsiniz.

cpanel-lets-encyrpt-ayhanarda-com

Şimdi sitenize ssl ile erişmeyi deneyebilirsiniz. Bir detay vereyim , verdiği ssl süresi 3 ay gözüküyor , bu süre sonunda muhtemelen işlemi tekrarlamak gerekecek , umarım faydalı olur. Hosterlar için… hosting müşterilerinize ücretsiz ssl şeklinde servis edip  cüzi bir miktar kurulum ücreti ile bir ürün haline getirebilirsiz.

Ayhan ARDA

Cpaneldeki Sitelerin Access Loglarını Logstash-Forwarder ile ElkStack ta Logstash Server a Gönderme

Daha önceki yazılarımızda bir elkstack server kurmuştuk ancak henüz farklı bir serverdan log göndermemiştik , şimdi örnek olarak elimizde bir cpanel sunucu olduğunu ve içinde yüzlerce site olduğunu varsayalım , cpaneldeki sitelerin erişim logları bilindiği üzere /usr/local/apache/domlogs/ altında yer almaktadır , her bir site için bu yolda birer klasör ve içinde sitelerin logları yer almaktadır.

Şimdi elkstack serverın adı elkstack.ayhanarda.com olsun , ip adresi 192.168.1.1 olduğunu varsayalım , cpanel sunucu adı ise cpanel.ayhanarda.com , ip adresi de 192.168.1.2 olsun.

Eğer bu isimler için bir dns serverda kaydımız yok ise cpanel sunucuda aşağıdaki dosyaya elkstack serverın ip ve hostname ini girelim ki aramak ile vakit kaybetmesin. /etc/hosts dosyasını açıp aşağıdaki kaydı girelim , tabi hostname ve ip adresi Sizin yapınıza göre olmalı.

[email protected] [~]# nano /etc/hosts
192.168.1.1           elkstack.ayhanarda.com

Şimdi centos repo suna logstash forwarder için kayıt ekleyelim.

rpm –import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

cat >> /etc/yum.repos.d/logstash-forwarder.repo << REPO
[logstash-forwarder]
name=logstash-forwarder repository
baseurl=http://packages.elasticsearch.org/logstashforwarder/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
REPO

Artık logstash-forwarder kurmaya hazırız.

yum -y install logstash-forwarder

Elkstack serverda oluşturduğumuz sertifikayı aşağıdaki dosyanın içine girip kaydedelim , bu dosya yok ise oluşturalım.

nano /etc/pki/tls/certs/logstash-forwarder.crt

—–BEGIN CERTIFICATE—–
MIIDDTCCAfWgAwIBAgIJANcKD2AfHuraMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV
BAMMEmVsa3N0YWNrLm5hdHJvLmNvbTAeFw0xNTEwMjcxMTI4NTFaFw0yNTEwMjQx



—–END CERTIFICATE—–

Şimdi logstash-forwarder ın conf dosyasını oluşturalım.

nano /etc/logstash-forwarder.conf

{
  “network”: {
“servers”: [ “elkstack.ayhanarda.com:5001” ],
“timeout”: 15,
“ssl ca”: “/etc/pki/tls/certs/logstash-forwarder.crt
  },

“files”: [
{
      “paths”: [
        “/usr/local/apache/domlogs/*/*
       ],
      “fields”: { “type”: “apache-access” }
    }
]
}

Yukarıdaki dosyada dikkat ederseniz 4 farklı ve önemli bölümü işaretledim , birincisi logları nereye ve hangi porta ileteceğimiz , ikincisi bir önceki adımda hazırladığımız ssl dosyasının yolu , üçüncüsü cpanel sunucudaki hangi logları göndereceğimiz , dördüncüsü ise bu logların çeşidi.

Şimdi logstash forwarder ı başlatalım ve aynı zamanda sunucunun bir sonraki açılışında otomatik olarak çalışmasını sağlayalım.

service logstash-forwarder restart && chkconfig logstash-forwarder on

Conf dosyamızda 5001 nolu porta göndereceğimizi belirtmiştik , o halde cpanel server üzerinde bir firewall kullanıyor isek dışarıya doğru bu portu aktif etmeliyiz , ben cpanel sunucularda csf kullanmaya özen gösteriyorum , aşağıdaki dosyasyı açıp tcp_out ve udp_out bölümlerine 5001 nolu portu ekliyorum. Buradaki 5001 portu elkstack serverınız ile ilgili bir durum , yani orada kullanmayı seçtiğiniz porttur , Sizin elkstack ya da logstash server da bu farklı olabilir.

[email protected] [/usr/local/apache/logs]# cat /etc/csf/csf.conf | grep TCP_OUT
TCP_OUT = “20,21,25,37,43,53,80,110,113,443,587,993,995,2086,2087,2089,2703,3306,4443,5001,6343,30000:35000,65000:65535″
[email protected] [/usr/local/apache/logs]# cat /etc/csf/csf.conf | grep UDP_OUT
UDP_OUT = “53,113,123,873,5001,6277,6343″

sonrasında csf -r komutu ile csf yi restart edelim. Eğer csf kullanmıyor iseniz iptables üzerinden direkt olarak ta açabilirsiniz.

Şimdi eğer elkstack bu portu dinliyor , cpanel de log gönderiyor ise bunu aşağıdaki dosyayı izleyerek görebilirsiniz

tail -f /var/log/logstash-forwarder/logstash-forwarder.err

2015/11/03 06:57:38.745365 Setting trusted CA from file: /etc/pki/tls/certs/logstash-forwarder.crt
2015/11/03 06:57:38.745939 Connecting to [192.168.1.1]:5001 (elkstack.ayhanarda.com)
2015/11/03 06:57:38.838187 Connected to 192.168.1.1

Hepsi bu kadar , iyi çalışmalar..

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

mount: unknown filesystem type ‘ntfs’ hatası

Centos dağıtımı öntanımlı olarak ntfs desteklememekte ancak kolay bir şekilde tanımlanabilmektedir.

Öncelikle ssh a erişiyoruz, rpm paketini indirip açıyoruz.

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Şimdi yum ile kuralım.

yum install fuse fuse-ntfs-3g dkms dkms-fuse

İşlem bu kadar , şimdi mount edeceğimizklasörü oluşturuyoruz.

mkdir /mnt/usb

ve sıra mount etmeye geldi, aşağıdaki şekilde mount edebiliriz. Burda /dev/sdc1 sizin harici diskiniz , bunu fdisk -l ile görebilirsiniz.

mount -t ntfs-3g /dev/sdc1 /mnt/usb

Bu mount işlemini kalıcı hale getirmek için fstab dosyamıza yazmamız gerekiyor.

nano /etc/fstab

/dev/sdc1 /mnt/usb ntfs rw,umask=0000,defaults 0 0

Ubuntu ve Centos için tek tıkla Ghost Blog Kurulum Scripti

Elimizde sıfır ve üzerinde hiç bir servis kurulmamış bir sunucu olduğunu ve ssh ile eriştiğimizi düşünerek başlayalım , Komutumuz bir sh dosyasını indirip çalıştırıyor ve herşeyi bu script yapıyor.

Aşağıdaki komutu çalıştırıyoruz.

[email protected]:~# wget -O – https://raw.github.com/howtoinstallghost/installghost.sh/master/installGhost.sh | sudo bash

İşlem bittikten sonra tek yapmanız gereken browser a sunucunuzun ip adresini yazmak 🙂

Hazır Ghost kurulu bir sunucu satın almak isterseniz webhosting sitesi  ile iletişime geçebilirsiniz.

Saygılarımla

Ayhan ARDA

lftp ile ssh üzerinden uzak ftp hesabına yedek alma

Senaryomuzda bir linux sunucumuz olduğunu ve bunun içindeki belirli dosya ya da klasörleri bir uzak ftp hesabına aktaracağımızı düşünelim.

Linux Sunucumuzda lftp kurulu olduğunu varsayıyorum , değil ise kullandığınız dağıtıma göre kurabilirsiniz.

Ör : yum install lftp

Yedeklerin alınacağı ftp hesabınızda muhtemelen hazır durumdadır ki bu yazıyı okuyorsunuz.

Şimdi yedek için konfigürasyonumuzu hazırlayalım , bu konfigürasyon içinde ftp bilgilerimiz ve hangi dosyaların yedek alınması gerektiğini belirteceğiz.

Önce dosyamızı oluşturalım;

[email protected] [~]# nano yedek.conf

Dosya içeriği aşağıdaki gibi olmalı;  mput ile başlayan satırları alt alta çoğaltabilirsiniz , hangi dosya ya da dosyaların yedeğini istiyorsanız yanına belirtmelisiniz , aşağıdakiler örnek olarak yazılmıştır.

open -u ftpkullaniciadi,ftpsifresi ftpipadresi
mput /home/cpbackup/weekly*.tar.gz
mput /var/log/messages
bye

Şimdi yedek dosyamız hazır olduğuna göre bunu çalıştıracak shell script i hazırlayalım.

[email protected] [~]# nano yedekal.sh

Dosya içeriği aşağıdaki gibi olmalı; Buradaki yedek.conf , az önce oluşturduğumuz dosya adıdır , ismini farklı yaptı iseniz yaptığınız şekilde yazmalısınız.

#!/bin/sh
lftp -f yedek.conf

Şimdi shell scriptimizi kaydediyoruz ve çalıştırılabilir olması için izin veriyoruz.

[email protected] [~]# chmod +x yedekal.sh

Artık dosyamız çalıştırılabilir durumda , çalıştırmak için aşağıdaki komutu uygulayınız.

[email protected] [~]# ./yedekal.sh

Eğer bunu cronjab a eklemek ve istediğiniz zaman çalışmasını sağlamak istiyor iseniz aşağıdaki şekilde işlem yapabilirsiniz. Aşağıdaki örnekte her gün sabah 9 ve akşam 23 te yedek alma işlemini başlatacaktır.

[email protected] [~]# crontab -e

00 09,23 * * */root/yedekal.sh

Saygılarımla

Ayhan ARDA

Cpanel üzerindeki tüm siteler için log arşivlemeyi aktif etmek

SSH üzerinden aşağıdaki komutları sırası ile kullanınız.

for i in `cat /etc/trueuserdomains | cut -d: -d’ ‘ -f2-` ;do echo “archive-logs=1” > /home/$i/.cpanel-logs ;done

for i in `cat /etc/trueuserdomains | cut -d: -d’ ‘ -f2-` ;do echo “remove-old-archived-logs=1” >> /home/$i/.cpanel-logs ;done

for i in `cat /etc/trueuserdomains | cut -d: -d’ ‘ -f2-` ;do chown $i:$i /home/$i/.cpanel-logs && chmod 600 /home/$i/.cpanel-logs ;done

Böylece tüm kullanıcıların kendi dizinleri altında .cpanel-logs isminde bir dosya oluşturacak ve içine aşağıdaki satırları yazacaktır.Son komut ile hepsine kendi chownları ile birlikte 600 chmod izni verecektir.Aylık olarak logları arşivleyecek ve sonraki ay , bir önceki ayın arşivini silecektir, eğer silmemesini ister iseniz sadece 1 ve 3. satırı uygulayınız.

archive-logs=1
remove-old-archived-logs=1

Ayhan ARDA

Cpanel Kurulu Sunucularda mb_string Kurulumu

Cpanel kurulu sunucularda mb_string kurulumu için aşağıdaki adımları izleyiniz.

  1. Whm panelinize Root olarak giriş yapınız.
  2. Software -> EasyApache menüsüne gidiniz.
  3. Start customizing based on profile butonuna tıklayınız.
  4. Apache ve Php sürüm ekranlarını Next butonu ile geçiniz.
  5. Bir sonraki ekranda Exhaustive Options List butonuna tıklayınız.
  6. Mbstring eklentisinin yanındaki tik i işaretleyiniz.
  7. Sayfanın en altında File name,Display Name , Description alanlarının yanına herhangi bir şey yazıp Save and Build butonuna tıklayınız.
  8. İşlem sonuna kadar pencereyi kapamayınız.
  9. İlgili bileşen eklenmiş olacaktır.

Ayhan ARDA

How do you add PHP mbstring extention with cPanel‎

Cpanel cpmysqladmin had an unknown error hatası çözümü

Cpanel üzerinden veritabanı silerken ya da oluştururken cpmysqladmin had an unknown error şeklinde bir hata alır iseniz ssh üzerinden aşağıdaki komutları sıra ile çalıştırmanız durumu giderecektir.

/scripts/checkperlmodules –full –force
/scripts/mysqlup –force
/scripts/perlinstaller –force DBD::mysql
/scripts/rpmup –force;/scripts/sysup –force; /scripts/upcp –force

Whm Cpanel Serverlarda Maldet Kurulumu

Sunucumuza SSH ile giriş yaptıktan sonra aşağıdaki komutları sıra ile çalıştırınız.

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar zxvf maldetect-current.tar.gz
cd maldet*
sh install.sh

Kurulum bittikten sonra tarama yapmak için aşağıdaki komut dizilimini uygulayabilirsiniz,

maldet -a /home/?/public_html

Uzun bir süre gerektirebilir , beklemek istemez ve rapora sonra bakmak ister iseniz alttaki komutu kullanarak raporu inceleyebilirsiniz.

maldet -e

Centos cifs mount işlemi – Windows klasörünü linux e mount etmek

Merhabalar;

Örnek senaryomuz şu şekilde , bir linux serverınız var , birde windows serverınız , amacınız ise windows serverda bulunan bir paylaşımı , linux servera mount etmek ve yedeklerini bu klasöre yani aslında windows servera aldırmak.

1- Öncelikle windows serverda linux-yedek isminde bir klasör oluşturuyoruz.

2- Windows kullanıcılarına yedekleme_user isminde bir kullanıcı oluşturup 123456 şifresini verelim.

3-linux-yedek klasörü için bu kullanıcıya tem erişim verelim ve bu klasörü network te paylaştıralım.

4 -Linux server ımıza bağlanalım ve aşağıdaki komutları çalıştıralım.

yum install samba samba-devel

samba ve samba-devel kurduktan sonra ,

modprobe cifs ve sonrasında lsmod | grep cifs ile oluşumu gözlemleyelim.

Şimdi windows serverdaki paylaşımımız şu şekilde olduğunu varsayalım,

\\10.1.1.10\linux-yedek   tabi bunun ulaşılabilirliğine emin olmalıyız ki sonra linux üzerinde erişemezsek en azından bundan emin olalım , linux serverımızın ip si de aynı networkte olsun , örneğin 10.1.1.5 olsun.

Linux üzerinde yazmamız gereken komut ;

Önce mount için klasör oluşturuyoruz,

mkdir -p /mnt/yedek   yani bu klasörümüz windows serverdaki paylaşılan klasörün kısayolu olacak.

mount -t cifs -o username=yedekleme_user,password=123456 //10.1.1.10/linux-yedek /mnt/yedek

Eğer hata almadı iseniz hepsi bu kadar,

şimdi cd /mnt/yedek ile klasörün içine girip touch deneme.txt ile bir deneme dosyası oluşturup gerçektede aynı dosyanın windows taki klasörde olduğunu görebilirsiniz.

Mount işlemini kalıcı hale getirmek için nano /etc/fstab ile ilgili dosyamızı açıyoruz ve içinde en alta aşağıdaki bölümü kendimize göre düzenleyip yazıyoruz.(tek satırda yazınız)

//10.1.1.10/linux-yedek /mnt/yedek cifs user,uid=500,rw,suid,username=yedekleme_user,password=123456 0 0

Dosyamızı kaydedip işlemi sonlandırabiliriz , hepsi bu kadar.

Keyifli günler.

Paylaşımlarınızda kaynak belirtmeniz dileğiyle..

*445 nolu porta izin vermeyi unutmayın.

Ayhan ARDA

Centos LVM yapısında Ek Disk İle Disk Boyutunu Büyültmek

Merhabalar;

Bir örnekleme ile gidersek daha akılca kalacağı düşüncesindeyim , sunucumuz hyper-v üzerinde çalışan bir sunucu , üzerinde 2 adet scsi, bir adet ide diskimiz var ve bunlar lvm yapısındalar , amacımız üzerlerine 1 adet daha scsi eklemek ve lvm yapısına dahil etmek.

Scsi diskler sba,sdb,sdc gibi sıra ile isimlendirilir , 3.scsi diski takmadan önce aşağıdaki durumu inceleyelim.

[email protected] [~]# ls -l /dev/sd*

brw-r—– 1 root disk 8,  0 Apr  1 14:36 /dev/sda
brw-r—– 1 root disk 8,  1 Apr  1 14:36 /dev/sda1
brw-r—– 1 root disk 8, 16 Apr  1 14:36 /dev/sdb
brw-r—– 1 root disk 8, 17 Apr  1 14:36 /dev/sdb1

Şimdi üst bölümü yorumlamak gerekirse sda ve sdb disklerini görmekteyiz , muhtemelen yeni bir disk takınca ismi sdc olarak adlandırılacak.

Şimdi disk eklemeden önceki disk boyutumuza bakalım. Gördüğümüz üzere 3.3 gb boş alanımız kalmış , diskin %97 sini kullanmaktayız.

[email protected] [~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
96G   88G  3.397% /
/dev/hda1              99M   40M   55M  43% /boot
tmpfs                 2.5G     0  2.5G   0% /dev/shm
/usr/tmpDSK           985M   32M  904M   4% /tmp

Şimdi makinamızı kapatıp hyper-v üzerinden scsi disk imizi boyutunu belirleyerek ekliyoruz , ben şimdi 40 lık bir scsi ekledim ve serverı yeniden başlatıyorum , şimdi sistemin bu diski görüp görmediğini merak ediyorum , bunu da ilk yazdığımız komutu tekrarlayarak göreceğiz .

[email protected] [~]# ls -l /dev/sd*
brw-r—– 1 root disk 8,  0 Apr  1 14:36 /dev/sda
brw-r—– 1 root disk 8,  1 Apr  1 14:36 /dev/sda1
brw-r—– 1 root disk 8, 16 Apr  1 14:36 /dev/sdb
brw-r—– 1 root disk 8, 17 Apr  1 14:36 /dev/sdb1
brw-r—– 1 root disk 8, 32 Apr  1 14:36 /dev/sdc

Okumaya devam et Centos LVM yapısında Ek Disk İle Disk Boyutunu Büyültmek

Centos Unutulan Şifre Resetleme

Sistemi restart edin , açılışta karşınıza çıkacak olan grup ekranında , kernel seçili hale geldikten sonra ( a ) tuşuna basın.Karşınıza gelecek olan komutun sonuna bir boşluk bırakarak single yazın. Sistem bu şekilde single mod dan başlayacak ve Sizi komut satırına düşürecektir. Burada passwd komutu ile yeni şifre verebilirsiniz , sonrasında shutdown -r now ile sistemi yeniden başlatabilirsiniz , hepsi bu kadar.

Ayhan ARDA