Bu makalede, Linux çalıştıran bir sunucuda web ortamının nasıl yapılandırılacağına dair adım adım talimatlar vereceğiz. İlk önce, tipik bir web sunucusunun birkaç etkileşimli bileşenden oluştuğunu anlamanız gerekir:
- HTTP sunucusu
- programlama dili yorumlayıcısı
- veritabanı yönetim sistemi (DBMS)
Web sitenizi yönetmek için ayrıca bir içerik yönetim sistemi (CMS), veritabanı yönetimi için bir web arayüzü ve FTP erişimi kurmanız gerekecektir.
Linux'ta çok popüler bir yapılandırma olan Apache-PHP-MySQL(MariaDB)'yi kurmayı düşünelim. Ayrıca vsftpd ftp sunucusunu, phpMyAdmin'i - veritabanı yönetimi için bir web arayüzü ve bir içerik yönetim sistemi olan WordPress'i kuracağız.
Başlamak için lütfen bir VPS sunucusu veya özel sunucu sipariş edin . Örneğin, Ubuntu Server 18.04 çalıştıran statik IP adresine sahip bir sanal sunucu kullandık. Tüm komutlar root kullanıcısı tarafından çalıştırıldı.
Apache HTTP Sunucusu yapılandırması
1. Montaj
apt install apache2
Kurulum tamamlandığında, bir tarayıcı açın ve “http://[sunucunun_ip_adresi]” adresini kontrol edin.
Yukarıdaki ekran görüntüsünde buna benzer bir karşılama sayfası görüyorsanız, HTTP sunucunuz çalışıyor demektir.
2. Bir test sayfası oluşturun
Web sitesinin varsayılan kök dizini "/var/www/html" şeklindedir . Az önce gördüğünüz karşılama sayfasını burada bulabilirsiniz. Sanal sunucular için ayrı bir "/var/www/sites" dizini ve test web sitenizin index sayfasını içeren "/var/www/sites/site1" alt klasörünü oluşturalım.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Sonuç olarak, "/var/www/sites/site1/index.html" dosyası yalnızca tek bir satır HTML kodu içermelidir:
<H1>Welcome</H1>
3. Apache sunucu yapılandırması
Web sitelerinin yapılandırma dosyaları “/etc/apache2/sites-available/” dizininde yer almaktadır. “000-default.conf” dosyasındaki varsayılan yapılandırmayı temel alarak yeni bir sanal sunucu için bir yapılandırma dosyası oluşturalım .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
“site1.conf” dosyasını açın ve “DocumentRoot” özelliğini değiştirin. Değer olarak web sitenizin yolunu girin, örneğin “/var/www/sites/site1”.
Bu aşamada birden fazla web sitesinin aynı anda çalışmasını yapılandırmamıza gerek yok, bu yüzden varsayılan web sitesini devre dışı bırakıp yeni siteyi etkinleştirebiliriz. Değişiklikleri uygulamak için sunucu yapılandırmasını yeniden yükleyin.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
“http://[sunucunun_ip_adresi]” bağlantısını tekrar açın ve varsayılan karşılama sayfası yerine yeni sayfamızın görüntülendiğinden emin olun.
HTTP sunucumuzun yapılandırmasını tamamladık ve bir sonraki adıma geçebiliriz.
FTP sunucusu yapılandırması
1. Montaj
FTP sunucumuzu ve sanal kullanıcıları yapılandırmak için ihtiyaç duyacağımız ek bir paket olan "db-util" i kuralım .
apt install vsftpd db-util
2. Yerel hesap oluşturun
Vsftpd sunucusu erişim izinlerini çok esnek bir şekilde yapılandırmamızı sağlar. Görevlerimiz için ftp kullanıcılarına aşağıdakileri sağlamamız gerekir:
- içeriğine tam erişim “/var/www/siteler/”;
- yukarıdakilerin hepsini devre dışı bırak “/var/www/”;
- sanal hesapla bağlantı;
FTP kullanıcılarının sunucuya bağlanması için kullanılacak olan "virtual" adlı yerel bir hesabı, oturum açma izni olmadan ancak "/var/www/" ana klasörüne erişim izniyle oluşturun .
useradd -d /var/www virtual
Varsayılan olarak "/var/www" klasörünün sahibi "Root" olacaktır . FTP kullanıcılarının web sitelerinin içeriğini değiştirebilmelerini sağlamak için, "virtual" klasörünün alt klasörleri de dahil olmak üzere "/var/www/sites/" klasörünün sahibini değiştirelim.
chown -R virtual:root /var/www/sites
Sonuç olarak, "sanal" kullanıcı " /var/www/" klasörünün içeriğini görebilecek ve "/var/www/sites/" alt klasörüne yazabilecektir.
3. yapılandırma
Ana yapılandırma "/etc/vsftpd.conf" dosyasında yer almaktadır , bu nedenle dosyayı açıp aşağıdaki gibi düzenleyelim:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Veritabanını oluşturun
Sanal hesapların verilerini saklamak için bir veritabanına ihtiyacınız olacak.
Öncelikle, ana klasörde "users.txt" adında basit bir metin dosyası oluşturalım ve sanal kullanıcıların erişim bilgilerini (kullanıcı adı ve şifre) her satıra birer birer kaydedelim. Örneğin, "ftp" kullanıcı adı ve "Qwe123" şifresi olan bir sanal kullanıcıya ihtiyacımız olacak . O zaman dosya şöyle görünecektir:
ftp
Qwe123
Veritabanını oluşturalım
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Varsayılan PAM dosyası olan “/etc/pam.d/vsftp” dosyasını aşağıdaki gibi değiştirelim :
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Lütfen "pam_userdb.so" kütüphanesinin yolunun farklı olabileceğini, ancak gerekirse değiştirebileceğinizi unutmayın.
Değişiklikleri uygulamak için vsftpd sunucusunu yeniden yükleyin.
systemctl restart vsftpd
FTP sunucusunun yapılandırmasını tamamladık.
Bağlantı ayrıntıları:
- ftp://[sunucunun_ip_adresi]
- giriş: ftp
- şifre: Qwe123
PHP sunucu yapılandırması
1. PHP Kurulumu
Bugün PHP'nin en son kararlı sürümü resmi Ubuntu depolarında bulunmayan php 7.4.5'tir. Üçüncü taraf bir depoya bağlanalım ve PHP'nin en son sürümünü yükleyelim.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Kontrol
PHP'nin çalıştırılabilmesi için web sayfası dosyasının ".php" uzantısına sahip olması gerekir. Test sayfamızın adını değiştirelim:
cd /var/www/sites/site1/
mv index.html index.php
Aşağıdaki PHP satırını "/var/www/sites/site1/index.php" dosyasına ekleyin , böylece dosya şu şekilde görünmelidir:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Değişiklikleri kaydedin ve sonucu tarayıcıda kontrol edin.
Eğer “phpinfo()” fonksiyonunun sonucunu görüyorsanız , PHP yorumlayıcısı düzgün çalışıyor demektir. Şimdi bir sonraki adıma geçelim.
MySQL (MariaDB) yapılandırması
1. Montaj
MariaDB'yi ve MySQL için bir PHP modülü yükleyelim ve ardından Apache'yi yeniden yükleyelim.
apt install mariadb-server php-mysql
systemctl restart apache2
Test sayfasını yenileyin ve PHP yapılandırma tablosundaki PDO bölümüne gidin. Eğer “PDO_mysql” bölümünü bulabiliyorsanız , bu MySQL sürücüsünün doğru şekilde yüklendiği anlamına gelir.
Ardından MariaDB'nin ilk güvenlik yapılandırmasını yapmamız, "root" kullanıcısı için parola belirlememiz, uzaktan erişimi devre dışı bırakmamız ve tüm misafir hesaplarını silmemiz gerekecek.
mysql_secure_installation
İlk adımda, DBMS'ye erişmek için "root" kullanıcısının şifresini girmemiz veya şifre yoksa Enter tuşuna basmamız gerekiyor. Kurulumdan sonra "root" kullanıcısı için şifre belirlenmediği için sadece "Enter" tuşuna basmanız yeterli.
Lütfen MariaDB'de işletim sistemi hesaplarıyla hiçbir ilgisi olmayan kendi hesaplarının zaten mevcut olduğunu unutmayın. Dolayısıyla MariaDB'de ele aldığımız tek kullanıcı "root" tur.
Bundan sonra, yapılandırma programı bizden root kullanıcısı için parola belirlememizi isteyecektir. Onaylamak için "Y" yazın ve yeni parolayı girin. Bizim durumumuzda bu "Qwe123" tür.
En sona kadar kalan tüm sorulara “Y” yanıtını verin .
Yapılandırma tamamlandı!
MariaDB erişim detayları:
- Giriş: root
- Şifre: Qwe123
phpMyAdmin yapılandırması
1. Montaj
PHP için gerekli olan mbstring eklentisini kuralım.
apt install php-mbstring
Resmi depoda phpMyAdmin'in yalnızca eski bir sürümü var, bu yüzden yeni sürümü elle yükleyelim.
Projenin resmi web sitesini “ https://www.phpmyadmin.net/ ” adresinden açın ve en son arşivi indirin.
Herhangi bir FTP istemcisi kullanarak arşivi sunucudaki "/var/www/sites/" klasörüne kopyalayın.
Klasörü arşivden çıkarın ve adını “phpMyAdmin” olarak değiştirin. “Unzip” yardımcı programını kurmayı unutmayın . Arşivden çıkardıktan sonra dosyayı silebilirsiniz.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Geçici dosyalar için "/var/www/sites/phpMyAdmin/tmp" klasörünü oluşturun ve herkese erişim izni verin. Bunu yapmazsanız, phpMyAdmin geçici klasöre erişimin reddedildiğini bildirecektir.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Bir takma ad oluşturun
phpMyAdmin ayrı bir sanal sunucu olmadığından ve kök dizinin dışında yer aldığından takma adı yapılandıralım.
“/etc/apache2/mods-available/alias.conf” dosyasını açın ve şu satırı ekleyin:
Alias /pma “/var/www/sites/phpMyAdmin"
bu bölümün içinde:
<IfModule alias_module>
</IfModule>
Değişiklikleri uygulamak için Apache'yi yeniden yükleyin.
systemctl reload apache2
Takma ad ayarlandı, bu nedenle phpMyAdmin'e şu adresten erişebiliriz : “http://[sunucunun_ip_adresi]/pma”.
3. Veritabanını hazırlayın
MariaDB'nin ilk yapılandırması sırasında root kullanıcısını kısıtladığımız için phpMyAdmin'e erişmek için kullanılacak tüm izinlere sahip yeni bir hesap oluşturmamız gerekecek.
Ayrıca phpMyAdmin'in ek özelliklerini etkinleştirmek için bir servis veritabanına ve ona erişebileceğimiz bir hesaba ihtiyacımız olacak.
Hesapları oluşturalım
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Lütfen ikinci istekteki veritabanı adının şu şekilde arka planda yer aldığını unutmayın: “… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
Sonuç olarak MariaDB'de iki hesap oluşturulacak:
- Giriş: pma, Şifre: Qwe123Tam erişim, phpMyAdmin'e giriş yapmak için kullanılacak
- Giriş: pmaservice, Şifre: Qwe123Ek özelliklerin çalışması için hizmet hesabı gereklidir
Bir sonraki adımda, bu ayrıntıları "config.inc.php" yapılandırma dosyasına ekleyeceğiz.
Ardından, veritabanını “phpMyAdmin/sql/create_tables.sql” dosyasından içe aktarmamız gerekecek.
Bunu phpMyAdmin yardımıyla içe aktaralım.
“http://[sunucunun_ip_adresi]/pma” bağlantısını açın.
Kullanıcı adı olarak “pma” ve şifre olarak “Qwe123” girin.
“İçe Aktar” a gidin , “Dosya Seç” e tıklayın ve phpMyAdmin'in kök dizininde bulunan “sql/create_tables.sql” dosyasını seçin . Bilgisayarınızda “phpMyAdmin” adlı bir klasör olmalı ve içinde dosyalar bulunmalıdır. Gerekirse arşivden çıkarın.
İçe aktarma işlemini başlatmak için "İleri" ye tıklayın .
4. yapılandırma
Şablondan yapılandırma dosyasını kopyalayalım
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Şimdi "/var/www/sites/phpMyAdmin/config.inc.php" yapılandırma dosyasını açalım ve aşağıdaki değişiklikleri yapalım:
“$cfg['blowfish_secret']” özniteliği için rastgele 32 karakterlik bir değer belirleyin . Bunun için herhangi bir parola oluşturucu kullanabilirsiniz.
“phpMyAdmin yapılandırma depolama ayarları” bölümündeki tüm satırlardaki yorumları kaldırın ve “controluser” ve “controlpass” öznitelikleri için MariaDB servis hesabının kullanıcı adı ve şifresini buna göre ayarlayın. Bizim durumumuzda bunlar pmaservice ve Qwe123'tür.
Değişiklikleri kaydedin.
phpMyadmin için erişim detayları:
- http://[server’s_ip_address]/pma/
- Giriş: pma
- Şifre: Qwe123
WordPress'i Linux sunucusuna nasıl kurar ve yapılandırırsınız?
1. WordPress paketi ve dosya yerleşimi
Resmi WordPress web sitesine “ https://ru.wordpress.org/ ” adresinden gidin ve arşivi bilgisayarınıza indirin.
Arşivi sunucudaki “/var/www/sites/” klasörüne yükleyin ve arşivi “wordpress ” klasörüne açın.
“/var/www/sites/ site1/” web sitesinin “/var/www/sites/ wordpress/” kök klasörünün içeriğini kopyalayın.
Dosyaları konsol üzerinden root yetkileriyle kopyaladığımız için, "virtual" içeriği de dahil olmak üzere "/var/www/sites/" klasörünün sahibini değiştirelim . Bu, istemci üzerinden FTP bağlantısına tam erişim sağlamak için gereklidir.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. WordPress için bir veritabanı oluşturun
phpMyAdmin'e giriş yapın ve "Veritabanı oluştur"a tıklayın. Rastgele bir veritabanı adı belirtin, bizim durumumuzda "wordpress_db" ve "Oluştur" düğmesine tıklayın.
Soldaki bölümden yeni veritabanını seçin ve "Ayrıcalıklar" a tıklayın.
Ardından "Kullanıcı hesabı ekle" seçeneğine tıklayın.
Açılan pencereye kullanıcı adı ve şifreyi ( wpservice / Qwe123 ) girin, "wordpress_db'de tüm ayrıcalıkları ver" seçeneğini işaretleyin ve "İleri" ye tıklayın.
Sonraki sayfada, veritabanı düzeyindeki tüm ayrıcalıkları sıfırlamak için "Tümünü iptal et" seçeneğine tıklayın ve ardından "İleri" ye tıklayın.
3. Linux sunucusunda WordPress yapılandırması
Web sitenizin kök dizinine gidin ve şablondan yapılandırma dosyasını kopyalayın
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
“wp-config.php” dosyasını açın ve önceki adımda oluşturduğumuz veritabanı bağlantı parametrelerini girin ve değişiklikleri kaydedin.
4. CMS WordPress'i yükleyin
Tarayıcınızda şu bağlantıyı açın : “http://[sunucunun_ip_adresi]/wp-admin/install.php”.
Tüm alanları doldurun ve "WordPress'i Yükle" ye tıklayın . Rastgele bir kullanıcı adı ve şifre belirleyin. Bizim örneğimizde, kullanıcı adı wpadmin ve şifre Qwe123'tür.
Bu bilgiler WordPress'e erişim sağlamak için kullanılacaktır.
Kurulumu tamamladıktan sonra, “http://[sunucunun_ip_adresi]/wp-login.php” bağlantısını açın , erişim bilgilerini girin ve WordPress'e giriş yapın.
Ana sayfada WordPress şablonlarından birini görmelisiniz.
Yapılandırma tamamlandı.
WordPress erişim detayları:
- http://[server’s_ip_address]/wp-login.php
- Giriş: wpadmin
- Şifre: Qwe123