FreeBSD'ye Apache, MariaDB ve PHP (FAMP) Stack Nasıl Kurulur


Bu kılavuz, Linux'taki LAMP yığınına benzer şekilde FreeBSD işletim sisteminde FBAMP'in nasıl kurulacağını ve yapılandırılacağını açıklayacaktır. FBAMP, FreeBSD OS tabanlı bir yazılım koleksiyonunu, Apache HTTP sunucusunu, internetteki en popüler açık kaynaklı web sunucusunu, MariaDB<'yi temsil eden bir kısaltmadır. ilişkisel veritabanı yönetim sistemi (RDBMS), MySQL veritabanı motorunun bir çatalı ve PHP sunucu tarafı.

Gereksinimler

  1. FreeBSD'nin yeni kurulumu
  2. FreeBSD İlk Yapılandırmaları
  3. FreeBSD'ye uzaktan bağlantı durumunda doğrudan konsol erişimi veya SSH.
  4. Ağ Arayüzünde yapılandırılmış statik bir IP Adresi.

Adım 1: Apache'yi FreeBSD'ye yükleyin

1. Kuracağımız ilk hizmet Apache HTTP sunucusudur. Varsayılan olarak FreeBSD, Apache web sunucusu için farklı çalışma zamanı çalışma modüllerine sahip birden fazla sürüm sunar.

Sürümler ikili bir paket halinde önceden derlenir ve FreeBSD PORTS depoları tarafından sağlanır. PORTS tarafından sağlanan tüm Apache paketleri ikili dosyalarını görüntülemek için aşağıdaki komutu verin.

ls /usr/ports/www/ | grep apache

Aşağıdaki komutu vererek FreeBSD'de mevcut önceden derlenmiş Apache paketlerini de arayabilirsiniz.

pkg search apache2

2. Ardından, aşağıdaki komutu vererek Apache HTTP sunucusunun en son sürümünü gerekli tüm modüllerle birlikte yükleyin.

pkg install apache24

3. Apache web sunucusu sisteme kurulduktan sonra, FreeBSD'de arka plan programını sistem genelinde etkinleştirmek için aşağıdaki komutu verin.

sysrc apache24_enable="yes"

Apache arka plan programını etkinleştirmenin alternatif bir yöntemi, aşağıdaki ekran görüntüsünde gösterildiği gibi /etc/rc.conf dosyasındaki apache24_enable="yes" satırını manuel olarak düzenleyip eklemek olabilir.

4. Son olarak, web sunucusunun düzgün çalışıp çalışmadığını test etmek için aşağıdaki komutu vererek Apache arka plan programını başlatın ve bir tarayıcıyı sunucunuzun FQDN IP adresine () yönlendirerek varsayılan web sayfasını ziyaret edin. http://IP-orFQDN) aşağıdaki ekran görüntüsünde gösterildiği gibi.

service apache24 start

FreeBSD 11.x'teki Apache web sunucusunun varsayılan web kök dizini /usr/local/www/apache24/data/ sistem yolunda bulunur. Orada, tercihen düzenleyebileceğiniz küçük bir index.html dosyası bulacaksınız.

Adım 2: PHP'yi FreeBSD'ye yükleyin

5. FreeBSD 11.x, PHP tarafından yorumlanan sunucu tarafı dilinin önceden derlenmiş ikili dosyalar halinde paketlenmiş birden çok sürümünü sunar. FreeBSD Bağlantı Noktaları depoları tarafından sağlanan tüm mevcut PHP sürüm paketlerinin bir listesini almak için aşağıdaki komutu verin.

ls /usr/ports/lang/ | grep php

Mevcut tüm FreeBSD PHP paket sürümlerini aramanın alternatif bir yöntemi de aşağıdaki komutu çalıştırmaktır.

pkg search -o php

6. Belirli bir PHP sürümü için (şu anda 5 veya 7 sürüm) FreeBSD tarafından sağlanan tüm mevcut ikili dosyaları aramak için aşağıdaki komutları çalıştırın. Çıktıyı daraltmak ve gezinmek için less komutunu kullanın.

pkg search php5 |less
pkg search php7

7. Özel bir PHP sürümünün hangi modülleri sağladığı konusunda daha spesifik olmak için, PHP 7.1 sürümü için mevcut tüm modülleri görüntüleyen aşağıdaki komutu aşağıda açıklandığı gibi çalıştırın.

pkg search php71

8. Bu kılavuzda FBAMP yığınımız için PHP 7.1 sürümünü yükleyeceğiz. PHP'yi tipik bir CMS kurulumu için gereken en önemli modüllerden bazılarıyla birlikte kurmak için aşağıdaki komutu verin.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Daha sonra, /usr/local/etc/apache24/Includes/konumunda Apache web sunucusu için php.conf yapılandırma dosyasını oluşturmamız gerekiyor. > aşağıdaki içeriğe sahip sistem yolu.

nano /usr/local/etc/apache24/Includes/php.conf

Aşağıdaki satırları php.conf dosyasına ekleyin.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. PHP ağ geçidinin Apache web sunucusuyla beklendiği gibi çalışıp çalışmadığını test etmek için /usr/local/www/ konumunda bir PHP info.php dosyası oluşturun. apache24/data/system yolu, Apache web sunucusunun varsayılan web belgesi kök yolu.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Değişiklikleri uygulamak için Apache arka plan programını yeniden başlatın.

service apache24 restart

Daha sonra, PHP özetini görüntülemek için bir tarayıcıda aşağıdaki URI'yi ziyaret edin.

http://IP-or-FQDN/info.php 

11. PHP ini yapılandırma dosyasını üretim amacıyla etkinleştirmek için aşağıdaki komutları verin. FBAMP yığınınızdaki çeşitli PHP ayarlarını değiştirmek için php.ini üretim dosyasını değiştirebilirsiniz.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Adım 3: MariaDB'yi FreeBSD'ye yükleyin

12. FBAMP yığınımızın son eksik bileşeni MySQL veritabanı sunucusudur. FreeBSD 11.x, çeşitli veritabanları için 1000'den fazla paket sunar.

MariaDB veya MySQL veritabanları için hangi bileşenlerin mevcut olduğunu görüntülemek için aşağıdaki komutları verin. Bu kılavuzda MariaDB veritabanını MySQL (şu anda Oracle'ın sahibi olduğu ve aktif olarak geliştirdiği) üzerine kuracağız.

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. Bu kılavuzda, şu anda mariadb102 ikili paket sürümüyle temsil edilen MariaDB veritabanı sunucusunun en son sürümünü FreeBSD'ye yükleyeceğiz.

MariaDB sunucusunu ve istemcisini ve Apache sunucu ağ geçidi aracılığıyla veritabanına erişmek için gereken PHP 7.1 modülünü yüklemek için aşağıdaki komutu çalıştırın.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Ardından, sistem genelinde MariaDB sunucusunu etkinleştirin ve aşağıdaki komutları çalıştırarak veritabanı arka plan programını başlatın.

sysrc mysql_enable="yes" 
service mysql-server start

15. Veritabanının güvenliğini sağlamak için mysql_secure_installation komut dosyasını çalıştırın. MariaDB'yi güçlendirmek için aşağıdaki komut dosyası çıktısı alıntısını kullanın.

/usr/local/bin/mysql_secure_installation
Örnek Çıktı

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. Varsayılan olarak, MariaDB arka plan programı 3306/TCP bağlantı noktasında localhost dışındaki ağ bağlantılarını dinler. MariaDB soket durumunu almak için netstat, lsof veya sockstat komutunu çalıştırın. Bu yapılandırma tehlikelidir ve hizmeti dış ağ saldırılarına açık hale getirir.

lsof -i4 -i6
sockstat -4 -6

17. MariaDB'ye uzaktan erişime ihtiyacınız yoksa, aşağıdaki komutu vererek MariaDB arka plan programının yalnızca localhost'u dinlediğinden emin olun. Daha sonra değişiklikleri uygulamak için MariaDB hizmetini yeniden başlatın.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. MariaDB ağ soketini listelemek için tekrar netstat, lsof veya sockstat komutunu çalıştırın. Aşağıdaki görüntüde gösterildiği gibi soket artık localhost'a bağlanmalı ve onu dinlemelidir.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Konsoldan MariaDB veritabanı bağlantısını test etmek için aşağıdaki komutu verin. Komut istemine MySQL kök şifresini girin; aşağıdaki resimde gösterildiği gibi konsol ekranınızda varsayılan veritabanlarının bir listesi görüntülenmelidir.

mysql -u root -p -e "show databases"

Bu kadar! FreeBSD'de MariaDB veritabanı ve PHP yorumlayıcısı ile Apache web sunucusunu başarıyla yüklediniz. Artık bir WordPress web sitesini hemen dağıtmaya başlayabilirsiniz.

Bir sonraki eğitimde, Apache sanal ana bilgisayarlarının nasıl etkinleştirileceği ve oluşturulacağı, .htaccess dosyasının düzgün çalışması için gereken yeniden yazma modülünün nasıl etkinleştirileceği ve Apache bağlantılarının nasıl güvenli hale getirileceği gibi bazı gelişmiş FPBAMP konularını tartışacağız. Kendinden İmzalı sertifika veya Let's Encrypt kuruluşu tarafından sunulan ücretsiz bir Sertifika.