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.
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.
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.)
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
Yukarıdaki gibi ekran geldiyse Apache server CentOS 7 sunucuya başarılı bir şekilde kurulmuştur.
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
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