1 Aralık 2015

CentOS 6.7 Sunucularda LAMP Server Kurulumu

CentOS LAMP Kurulumu Linux + Apache + MySQL + PHP/Perl

Linux(CentOS) sunucuya SSH ile bağlanarak Linux + Apache + MySQL + PHP/Perl ve PhpMyAdmin (LAMP) kurulumu gerçekleştireceğiz. Kuracağımız Stack örneği LAMP olup kurulum öncesi yum REPO dosyalarını güncellememiz gerek.


1) Apache (Apache Web Server 2.0) Kurulumu

# yum install httpd httpd-devel

Yukarıdaki komutu SSH'da yazdıktan sonra onaylama sorusu gelecektir, Y(yes)diyerek devam ediyoruz.

Apache otomatik başlatmak için;
# chkconfig httpd on

Apache konfigirasyon dosyası: /etc/httpd/conf/httpd.conf
Kurulum bittikten sonra aşağıdaki komutla servisi başlatıyoruz.
/etc/init.d/httpd start

Tarayıcınıza http://SERVER-IP yazarak Apache’nin çalışıp çalışmadığını görebilirsiniz. Eğer ilk resim de gelen ekran gelmediyse aşağıdaki yönergeyi uygulayın.

CentOS işletim sisteminde ön tanımlı olarak bazı portlar dışarıya kapalı gelmektedir. Örnek olarak http (80) portuna ulaşmak için iptables güvenlik ayarlarının yeniden yapılması gerekebilir. Eğer sunucunuzun web sayfasına dışarıdan bağlanmakta güçlük çekiyorsanız aşağıdaki şekilde 80. porta (https için 443) izin vermelisiniz. Başka portlarla da sorun yaşarsanız, bu şekilde izin verebilirsiniz:

SSH üzerinden aşağıdaki kodları sırayla uygulayıp tekrar deneyebilirsiniz;
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
# service iptables save

CentOS LAMP Kurulumu Linux + Apache + MySQL + PHP/Perl

2) MySQL Database Server Kurulumu

MySQL Kurulumu;
yum install mysql mysql-server mysql-devel

MySQL Servisini başlatalım;
/etc/init.d/mysqld start

MySQL konsoluna giriş yapıyoruz;
mysql

MySQL Şifremizi belirliyoruz. Sırasıyla aşağıdaki komutları yazın;
mysql> use mysql;
mysql> UPDATE user SET Password=PASSWORD('ŞİFREYAZIN') WHERE user='root';
mysql> flush privileges;
mysql> quit;

Şifreyi kontrol etmek için SSH'dan sunucu ekranını kapatıp tekrar bağlanın sonra aşağıdaki komutu girin;
# mysql -u root -p
Enter Password: ŞİFREYAZIN

MySQL konsoluna girdiyseniz şifre belirleme işlemi başarılı şekilde tamamlanmıştır.

MySQL otomatik başlatmak için;
chkconfig mysqld on

MySQL Server Bağlantısında aşağıdaki hatayı alıyorsanız şifrenizi yanlış giriyorsunuzdur.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

İlk önce MySQL servisini durduralım;
# /etc/init.d/mysqld stop

Aşağıdaki komutu girip bekliyoruz;
mysqld_safe --skip-grant-tables &

Komutu girdikten sonra başka bir SSH penceresinden sunucuya tekrar giriş yapın ve aşağıdaki komutu yazın;
mysql -u root

Komutu girdikten sonra aşağıdakileri sırasıyla uygularak yeni şifre alınız;
mysql> use mysql;
mysql> update user set password=PASSWORD("YeniŞifreniz") where User='root';
mysql> flush privileges;
mysql> quit;

MySQL servisini başlatalım;
/etc/init.d/mysqld start

MySQL şifremiz ile girmek için aşağıdaki komutu uygulayın. YeniŞifre kısmına MySQL şifrenizi yazın. Giriş yaparsa işlem başarılı şekilde tamamlanmıştır;
# mysql -uroot -pYeniŞifre
CentOS LAMP Kurulumu Linux + Apache + MySQL + PHP/Perl

CentOS 6.7 REPO İşlemleri;

CentOS 6.7 Repo dizinine geliyoruz ve aşağıdaki komutları sırasıyla uyguluyoruz;
# cd /etc/yum.repos.d/
# service sshd start

# chkconfig sshd on

Daha sonra rpmfusion.org/Configuration sitesinden RHEL 6 or compatible like CentOS altındaki kodu alıp SSH üzerinden yazıp yüklüyoruz.

Yükleme işleminden sonra How to Enable EPEL penceresindeki For EL6 altındaki RPM komutunuda SSH üzerinden yazıp yüklüyoruz. Örnek aşağıdaki gibidir;

# su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm'
CentOS LAMP Kurulumu Linux + Apache + MySQL + PHP/Perl

3) PHP (PHP Scripting Language 5.0) Kurulumu

PHP Kurulumu;
yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

PHP Servisini başlatalım;
/etc/init.d/httpd restart

WinSCP programı ile /var/www/html içerisine aşağıdaki info.php dosyasını atalım.
<?php 
phpinfo();
?>
Dosyamızı http://SERVER-IP/info.php adresinden görebiliriz.

4) PHP İçin MySQL ve Modüller Desteği Kurulumu

Kurulum komutu;
yum install php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc

Servisi başlatalım;
# /etc/init.d/httpd restart

PHPMyAdmin kurulumundan devam edebiliriz;

CentOS LAMP Kurulumu Linux + Apache + MySQL + PHP/Perl

5) PhpMyAdmin Kurulumu

MySQL veritabanlarınızı web üzerinden kontrol edebilmek için phpMyAdmin yazılımına ihtiyaç duyarız.

phpMyAdmin kurulumuna başlayalım;
yum install phpmyadmin

WinSCP programı ile (/etc/httpd/conf.d/phpmyadmin.conf) dosyasını açın 127.0.0.1 yazan yerlere kendi Server IP adresinizi yazın sonra keydedip sunucuya geri yükleyin.

Sonra phpMyAdmin’in yetkilendirmesini aşağıda gösterildiği gibi cookie’den http’ye dönüştürüyoruz. WinSCP programı ile (/etc/phpMyAdmin/config.inc.php) dosyayı indirip düzenliyoruz.

Dosya içerisinde Authentication method ismini aratın. Uzun açıklama olarak Authentication method (config, http or cookie based)? yazar. Buradaki kod aşağıdaki gibidir;

$cfg['Servers'][$i]['auth_type'] = 'cookie';

Buradaki cookie yazısı yerine http yazıp kaydedin ve dosyayı sunucuya geri atın.

Ayarlamalardan sonra Apache servisini restart ediyoruz;
# /etc/init.d/httpd restart

Kurulum tamamlandıktan sonra http://SERVER-IP/phpmyadmin/ veya www.alanadiniz.com/phpmyadmin adresinden PhpMyAdmin paneline giriş yapabilirsiniz.

PhpMyAdmin giriş bilgileri; kullanıcı adı root olup şifre MySQL şifrenizdir. MySQL şifrenizi unuttuysanız  SSH üzerinden aşağıdaki komutla öğrenebilirsiniz;

cat /root/.my.cnf

VDS sunucular çalışmak için idealdir. LAMP ve Panel kurulumundan sonra sunuyu tekrar ilk aldığınız duruma getirerek başka Server alt yapılarında kurabilirsiniz. Genellikle VDS satın aldığınız yerlerde Yeniden Kurulum olarak bir seçenek vardır. Yeniden kurulum esnasında tüm verileriniz kaybolacak ve ilk zamanki sıfır panelsiz CentOS'a geri dönecektir sanal sunucunuz. Bu işlemi onayladıktan sonra yeni Root şifresi size verilerek sunucuya SSH üzerinden tekrar giriş yapabilirsiniz.