17 Aralık 2015

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu ve LAMP

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

Digital Ocean'dan kiraladığımız sanal sunucu üzerinde Hostname oluşturma, Domain atamak ve Sunucu yapılandırmasından bahsedeceğim. GitHub Student Developer Pack yazısında Digital Ocean kredisi ve Droplet kurulumundan bahsetmiştim.

1) Hostname Oluşturmak
Sunucu yapılandırmalarında ilk işlem her zaman Hostname oluşturmaktır. Hostname sunucudaki local servislerin birbiri ile iletişime geçerken kullandığı adrestir. Genelde sunucu üzerinde kullanacağınız Domain adresi ile birlikte verilir.

Örnek: host.domainadi.com, server.domainadi.com veya hostname.domainadi.com Ben bu projede Hostname olarak server.burakavcioglu.xyz kullanarak anlatımları yapacağım. Proje olarak sunucuda kullanacağımız işletim sistemi CentOS 7 olacaktır.

Digital Ocean'da Droplet(Sunucu) oluştururken Hostname ataması yapabilirsiniz. Benim önerim aynı sunucu üzerinde birden fazla çalışacaksanız atamayı baştan yapmanız. Choose a hostname kısmından Hostname adresinizi girin. Sunucu kurulumundan sonra Hostname adını değiştirmek isterseniz Settings kısmından Rename diyerek yeni Hostname oluşturabilirsiniz.

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

SSH üzerinden de bu işlemi yapabilirsiniz fakat sunucu üzerinde çalışma yapacaksanız ve sunucuyu birden çok tekrardan kurup çalıştıracaksanız ilk yöntemi öneririm. SSH üzerinden Hostname oluşturmak için aşağıdaki komutları uygulayabilirsiniz.

Varolan Hostname adresini öğrenmek için;
# hostname

SSH üzerinden Hostnamedeğiştirmek için;
# hostname server.burakavcioglu.xyz

2) Sunucuya Domain Atamak
Digital Ocean'da Droplet kısmından ilgili sunucunun More sekmesi altındaki Add a Domain kısmına geliyoruz.

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

Domain adresini yazdıktan sonra Create Record diyerek Alan adımızı ekliyoruz. Digital Ocean bize 3 adet Name Server oluşturuyor. Bunları Domain aldığımız kayıt sitesine giderek DNS (Name Server) kısmına ekliyoruz. Ek olarak Digital Ocean kısmında oluşan ayarlara CNAME ekliyoruz aşağıdaki gibi (www ve burakavcioglu.xyz.)

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

Domain aldığımız yere ekleyeceğimiz DNS adresleri;
ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

Name Server yönlendirmesinden sonra Domain adresiniz ile sunucunuz bağlanacaktır. Şimdi sunucu yapılandırmasına ve CentOS 7 üzerinde LAMP(Linux + Apache + MariaDB + PHP) kurulumuna geçebiliriz.

3) Apache Kurulumu
İlk önce sunucuyu güncelliyoruz;
# yum -y update
# reboot

# yum -y install nano wget

Apache Kurulumunu geçebiliriz, aşağıdaki komutları sırayla uygulayınız;
# yum -y install httpd
# systemctl start httpd.service
# systemctl enable httpd.service

Kontrol: http://SERVER-IP-ADRES veya http://domainadresiniz.com

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

Yukarıdaki gibi ekran geldiyse Apache server CentOS 7 sunucuya başarılı bir şekilde kurulmuştur.

MySQL (MariaDB) Kurulumu (Veritabanı Kurulumu)

4) MySQL (MariaDB) Kurulumu (Veritabanı Kurulumu)

# yum -y install mariadb-server mariadb
# systemctl start mariadb
# systemctl enable mariadb

Şifre belirleme;
# mysql_secure_installation

Enter current password for root (enter for none):
İlk şifre belirleyeceğimiz için ENTER diyip geçelim.

Set root password? [Y/n] y
MySQL şifresini iki kere girin sonra

Remove anonymous users? [Y/n]y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Thanks for using MariaDB!
Diyerek kurulum biter.

Aşağıdaki hatayı alırsanız;

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# systemctl stop mariadb

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;
MariaDB [mysql]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("YeniŞifre") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> quit;

MariaDB MySQL servisini başlatalım;
# systemctl start mariadb

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

MariaDB Servisi ne durumda görmek için;
# systemctl status mariadb

5) PHP Kurulumu
PHP kurulumunu sunucu üzerinde başlatalım;
# yum -y install php php-mysql

Sistemi yeniden başlatalım;
# systemctl restart httpd.service

PHP bilgi sayfası oluşturalım;
# nano /var/www/html/info.php

<?php phpinfo(); ?>

Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

Kontrol: http://SERVER-IP-ADRES/info.php

Digital Ocean CentOS 7 Sunucu(Droplet) Kurulumu

Yukarıdaki gibi ekran geldiyse PHP son sürümü CentOS 7 sunucuya başarılı bir şekilde kurulmuştur.

6) Siteleri Sunucuya Ekleyelim
Birden fazla siteniz varsa aynı işlemi yapabilirsiniz, ben tek site üzerinde göstereceğim.
# mkdir -p /var/www/burakavcioglu.xyz/public_html

Dizinleri yetkilendirelim;
# chown -R apache:apache /var/www/burakavcioglu.xyz/public_html
# chmod -R 755 /var/www

Örnek bir HTML sayfa oluşturalım;
# nano /var/www/burakavcioglu.xyz/public_html/index.html
<html>
<head><title>Merhaba Burak</title></head>
<body><h1>Merhaba Burak</h1></body>
</html>
Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

7) Virtual Host Yapılandırması
Virtual Host yapılandırması için aşağıdaki komutları uygulayınız;
# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled

Düzenleyelim;
# nano /etc/httpd/conf/httpd.conf

Sayfanın sonuna aşağıdaki satırı ekleyelim;
IncludeOptional sites-enabled/*.conf

Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

Sitemizin Virtual Host dosyasını düzekleyelim, Domain adresine göre bilgileri düzenleyebilirsiniz;
# nano /etc/httpd/sites-available/burakavcioglu.xyz.conf
<VirtualHost *:80>
    ServerName www.burakavcioglu.xyz
    ServerAlias burakavcioglu.xyz
    DocumentRoot /var/www/burakavcioglu.xyz/public_html
    ErrorLog /var/www/burakavcioglu.xyz/error.log
    CustomLog /var/www/burakavcioglu.xyz/requests.log combined
</VirtualHost>
Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

Tanımlayalım;
# ln -s /etc/httpd/sites-available/burakavcioglu.xyz.conf /etc/httpd/sites-enabled/burakavcioglu.xyz.conf

Apache servisini yeniden başlatalım;
# apachectl restart

Host dosyasını ayarlayalım;
# nano /etc/hosts

Dosyanın en altına ekleyelim;
SUNUCU-IP server.burakavcioglu.xyz
SUNUCU-IP burakavcioglu.xyz

Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

8) Ek Ayarlar
A) Site içinde PHP bilgi sayfası oluşturalım;
# nano /var/www/burakavcioglu.xyz/public_html/info.php

<?php phpinfo(); ?>

Ctrl+X (Kaydedelim)
Y (Yes)
Enter diyip çıkalım.

Kontrol Adresi: http://burakavcioglu.xyz/info.php

Burak AVCI - Update: 26.03.2023