Compare commits

...

10 Commits

8 changed files with 198 additions and 101 deletions

View File

@ -1,6 +1,6 @@
BSD 3-Clause License
Copyright (c) 2023 BSD Türkiye Topluluğu Yazarları
Copyright (c) 2023-2024 BSD Türkiye Topluluğu Yazarları
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

View File

@ -6,7 +6,7 @@ Wordpress sitemizde yer alan makaleler içindir.
BSD 3-Clause License
Copyright (c) 2023 BSD Türkiye Topluluğu Yazarları
Copyright (c) 2023-2024 BSD Türkiye Topluluğu Yazarları
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

View File

@ -0,0 +1,176 @@
# FreeBSD Sistem Güncelleme
Merhaba,
Şunda hem fikirizdir ki, güvenlik yamalarını zamanında uygulamak ve işletim sistemini daha yeni bir sürüme yükseltmek, sistem yönetiminin önemli yönleridir. FreeBSD, her iki görevi de gerçekleştirmek için kullanılabilen, freebsd-update adı verilen bir yardımcı program içerir.
Bu yardımcı program yardımıyla, yamayı veya yeni bir çekirdeği manuel olarak derleyip yüklemeye gerek kalmadan FreeBSD'yi güncellemek mümkündür. Bu da güncelleme işlemini sistem yöneticisi açısından kolaylaştıran bir durum.
freebsd-update programı minör sistem güncellemeleri yapabildiği gibi başka bir sürüm dalına yükseltmeleri de destekler. Örnek vermek gerekirse; mesela 13.1_RELEASE kullanıyorsunuz. Bu sürüm dalında güncelleme yaparak örneğin 13.1-RELEASE-p9 sürümüne güncelleme yapabilirsiniz. Ya da sürüm dalını tamamen güncelleyerek 13.1 sürümünden 13.2 sürümüne geçiş de yapabilirsiniz. Şimdi ilk durumu nasıl yapabileceğimizi inceleyelim, aslında bu çok kolay. Vermemiz gereken sadece iki komut var;
```
# freebsd-update fetch
```
```
# freebsd-update install
```
bu iki komut ve ardından sistemi yeniden başlattığımızda bulunduğumuz sürüm dalı içindeki son gücellemeleri sisteme uygulamış oluyoruz. Bu makalede asıl irdeleyeceğimiz güncelleme başka bir sürüm dalına yapılacak güncelleme olacak. Dilerseniz bu işlemi de madde madde inceleyelim..
## **Adım 1:**
Her zaman olduğu gibi işleme başlamadan önce sistemdeki kritik tüm veriyi yedeklemeniz önemli. Sistemdeki kritik verilerin yedeklendiğine emin olmadan lütfen güncelleme yapmayınız..
## **Adim 2:**
Kurulu olan sürüm dalımızı en son güncellemeye getirelim;
```
# freebsd-update fetch
```
```
# freebsd-update install
```
Aslında bu yukarıda da bahsettiğimiz işlem. Sürüm dalı güncellemeden önce sistemimizi içinde bulunduğumuz dalın en güncel haline çıkarıyoruz. Bu komutlar zaten güncel bir dalda olmamız durumunda şöyle bir çıktı üretecektir;
```
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching metadata signature for 13.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
```
No updates needed to update system to 13.1-RELEASE-p9.
Sistemi yeniden başlatalım;
```
# reboot
```
## **Adım 3:**
Sistemde halihazırda bulunan tüm paketleri güncelleyelim.. Ben pkg kullanıyorum bu işlemi gerçekleştirmek için verilmesi gereken komutlar;
```
# pkg update
```
```
# pkg upgrade
```
## **Adım 4:**
FreeBSD 13.1 sürümünden 13.2 sürümüne geçmek için gerekli komutu verelim;
```
# freebsd-update -r 13.2-RELEASE upgrade
```
Bu komutu verdikten sistem kontrol edilecek ve size bulunanların uygun görünüp görünmediği sorulacaktır. Y ile onaylayıp bu aşamayı geçin. İşlemler tamamlandıktan sonra değişiklikleri uygulamak için;
```
# freebsd-update install
```
komutunu verin. Bu aşamada sunucunuz SSH ile uzaktan eriştiğiniz bir sunucu ise minik bir kontrol yapmak hayatınızı kolaylaştırabilir;
```
# /usr/sbin/sshd -t
```
komutu ile SSH servisinde bir sorun olup olmadığını test edelim. Bir sorun yoksa sistemi yeniden başlatalım;
```
# reboot
```
sistem yeniden açıldıktan sonra bir kez daha;
```
# freebsd-update install
```
komutunu veriyoruz.
## **Adım 5:**
Sistemde kurulu paketleri güncellemeye başlıyoruz. Öncelikle pkg'nin kendisini güncelliyoruz;
```
# pkg-static install -f pkg
```
Bu komutun çıktısı şöyle olacaktır;
```
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be REINSTALLED:
pkg-1.19.1_1
Number of packages to be reinstalled: 1
8 MiB to be downloaded.
Proceed with this action? [y/N]: y
[1/1] Fetching pkg-1.19.1_1.pkg: 100% 8 MiB 2.9MB/s 00:03
Checking integrity... done (0 conflicting)
[1/1] Reinstalling pkg-1.19.1_1...
[1/1] Extracting pkg-1.19.1_1: 100%
```
Şimdi sırası ile şu komutları verelim;
```
# pkg update
```
```
# pkg upgrade
```
```
# freebsd-update fetch
```
```
# freebsd-update install
```
Son bir kez sistemi yeniden başlatıyoruz;
```
# reboot
```
## **Adım 6:**
Sistemimizin gerçekten de 13.2 sürümüne yükselip yükselmediğini kontrol edelim;
```
# freebsd-version
```
```
# uname -r
```
bu komutların çıktıları sıra ile;
```
# 13.2-RELEASE-p2
```
```
# 13.2-RELEASE-p2
```
Tebrikler, FreeBSD işletim sisteminizi başarı ile 13.1 sürümünden 13.2 sürümüne çıkarttınız. Umarım işinize yarayan bir makale olmuştur..
# Lisans
Bu makale Bedreddin Şahbaz tarafından yazılmıştır. BSD-3-Clause ile ruhsatlanmıştır.

View File

@ -1,20 +1,20 @@
# FreeBSD Sisteminde /etc/rc.conf dosyası nedir ne işe yarar?
# FreeBSD Sisteminde /etc/rc.conf dosyası nedir ne işe yarar ?
![FreeBSD](img/freebsd-logo.png)
Bu yazıda FreeBSD sistemlerde çok önemli bir işleve sahip olan /etc/rc.conf dosyası ile ilgili bilgilere yer vermek istiyorum.
Bu yazıda FreeBSD sistemlerde çok önemli bir işleve sahip olan ```/etc/rc.conf``` dosyası ile ilgili bilgilere yer vermek istiyorum.
Çok basit bir anlatımla; FreeBSD işletim sisteminde ```/etc/rc.conf``` dosyası, sistem yapılandırmasını kontrol etmek için kullanılan önemli bir dosyadır. Bu dosya, sistem başlatıldığında veya durdurulduğunda çalıştırılacak veya durdurulacak hizmetlerin ve sistem ayarlarının yapılandırılmasını sağlar.
rc.confnin amacı, doğrudan komutları çalıştırmak veya sistem başlangıç eylemlerini gerçekleştirmek değildir. Bunun yerine, /etc dizinindeki çeşitli genel başlangıç betikleri tarafından dahil edilir ve içerideki ayarlara göre bazı eylemleri gerçekleştirir. /etc/rc.conf dosyası, tüm mevcut seçenekler için varsayılan ayarları belirleyen /etc/defaults/rc.conf dosyasından dahil edilir. Sistem yöneticisi bu varsayılanları geçersiz kılmak istediğinde, seçenekler yalnızca /etc/rc.conf dosyasında belirtilmelidir, /etc/defaults/rc.conf dosyasında bir düzenleme yapılmamalıdır.
```rc.conf```'nin amacı, doğrudan komutları çalıştırmak veya sistem başlangıç eylemlerini gerçekleştirmek değildir. Bunun yerine, ```/etc``` dizinindeki çeşitli genel başlangıç betikleri tarafından dahil edilir ve içerideki ayarlara göre bazı eylemleri gerçekleştirir. ```/etc/rc.conf``` dosyası, tüm mevcut seçenekler için varsayılan ayarları belirleyen ```/etc/defaults/rc.conf``` dosyasından dahil edilir. Sistem yöneticisi bu varsayılanları geçersiz kılmak istediğinde, seçenekler yalnızca ```/etc/rc.conf``` dosyasında belirtilmelidir, **```/etc/defaults/rc.conf``` dosyasında bir düzenleme yapılmamalıdır.**
Aşağıda örnek bir rc.conf dosyası bulunuyor;
Aşağıda örnek bir ```rc.conf``` dosyası bulunuyor;
![rc.conf örneği](img/ray-so-export-768x484.png)
![rc.conf](img/ray-so-export-1-1024x646.png)
Görüldüğü gibi makine host adı, ağ arabirimi yapılandırması, ağ geçidi, sistem başlarken başlaması istenen bazı servisler bu dosyada belirtilmiş halde.
```x_enable="YES"``` ifadesi, ```/etc/rc.conf``` dosyasında bir hizmetin veya özelliğin etkinleştirilmesi için kullanılır. “x” kısmı, özelliği temsil eden bir etiket veya tanımlayıcı olabilir ve “enable” kelimesi, söz konusu özelliğin veya hizmetin etkinleştirildiğini belirtir. “YES” ise etkinleştirme işaretidir.
```x_enable="YES"``` ifadesi, ```/etc/rc.conf``` dosyasında bir hizmetin veya özelliğin etkinleştirilmesi için kullanılır. ```"x"``` kısmı, özelliği temsil eden bir etiket veya tanımlayıcı olabilir ve ```"enable"``` kelimesi, söz konusu özelliğin veya hizmetin etkinleştirildiğini belirtir. ```"YES"``` ise etkinleştirme işaretidir.
Örneğin, yukarıdaki ```/etc/rc.conf``` dosyasında ```sshd_enable="YES"``` ifadesi var. Bu ifade, SSH (Secure Shell) hizmetinin sistem başlatıldığında otomatik olarak etkinleştirileceğini belirtir. Yani, her seferinde SSH hizmetini manuel olarak başlatmak zorunda kalmazsınız, sistem başlatıldığında SSH hizmeti de otomatik olarak başlatılır.
@ -22,10 +22,10 @@ Görüldüğü gibi makine host adı, ağ arabirimi yapılandırması, ağ geçi
Sonuç olarak, ```/etc/rc.conf``` dosyası FreeBSD işletim sisteminde sistem yapılandırmasını kontrol etmek için kullanılır. ```x_enable="YES"``` ifadesi, ```/etc/rc.conf``` dosyasında belirli bir hizmetin veya özelliğin etkinleştirildiğini gösterir ve sistem başlangıcında otomatik olarak başlatılmasını sağlar.
Bazı servislerin başlatılabilir olması için başlatma betikleri ```x_enable="YES"``` ifadesinin rc.conf dosyasında bulunmasını özellikle ister. Bu uygulamaları başlatmak istediğinizde hata alırsınız. Bu nedenle FreeBSD sistemlerde rc.conf kullanımına alışmanız ve özümsemeniz gerekir.
Bazı servislerin başlatılabilir olması için başlatma betikleri ```x_enable="YES"``` ifadesinin ```rc.conf``` dosyasında bulunmasını özellikle ister. Bu uygulamaları başlatmak istediğinizde hata alırsınız. Bu nedenle FreeBSD sistemlerde ```rc.conf``` kullanımına alışmanız ve özümsemeniz gerekir.
İyi çalışmalar..
# Lisans
Bu makale Bedreddin Şahbaz tarafından yazılmıştır. BSD-3-Clause ile ruhsatlanmıştır.
Bu makale Bedreddin Şahbaz tarafından yazılmıştır. BSD-3-Clause ile ruhsatlanmıştır.

View File

@ -0,0 +1,11 @@
# Freebsd'de /usr/local/etc/rc.d dizini ne işe yarar ?
```/usr/local/etc/rc.d``` dizini, FreeBSD işletim sisteminde başlangıç ve duruş senaryolarının yer aldığı bir dizindir. Bu dizindeki betikler, sistem açılışında veya kapatılırken otomatik olarak çalıştırılacak işlemleri tanımlar.
FreeBSD'de, sistem başlangıcında veya kapatılmasında çeşitli servislerin veya uygulamaların otomatik olarak başlatılması veya durdurulması gerekebilir. Bu tür işlemler, sistem yöneticisi tarafından ```rc.d``` dizinine eklenen betiklerle kolayca yapılandırılabilir.
Her betik, bir servisi başlatmak, durdurmak, yeniden başlatmak veya başka bir işlem gerçekleştirmek gibi belirli bir görevi yerine getirir. Bu betikler, sistem başlatıldığında ```/usr/local/etc/rc.d``` dizinindeki tüm betikler sırayla çalıştırılarak ilgili işlemler gerçekleştirilir.
Bu dizindeki betikler genellikle sistem yöneticileri veya paket yöneticisi tarafından eklenir. Özellikle FreeBSD'de yüklü olan paketler, ilgili servislerin başlatılması veya durdurulması için bu dizine ilgili betikleri ekler.
Bu şekilde, ```/usr/local/etc/rc.d``` dizinindeki betikleri düzenleyerek, belirli bir servisin sistem başlangıcında veya kapatılmasında nasıl davranacağını özelleştirebilirsiniz. Bu, sistem yöneticilerine, özel gereksinimlere veya servislerin bağımlılıklarına uygun şekilde otomatikleştirilmiş işlemler oluşturma esnekliği sağlar.

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

View File

@ -10,7 +10,7 @@ Bugün sizlere sanallaştırma ortamında kurduğumuz FreeBSD sistemimizin HDD b
Öncelikle kullandığımız sanallaştırma aracında sanal makinemiz için tanımladığımız disk alanını büyütmekle işe başlıyoruz. Bu işlem sanallaştırma ortamınıza göre farklılık gösterebileceği için detaya girmiyorum. Ben işlemi Proxmox VE üzerinde yaptım. Bu işlemi kolayca sanal makinenin içerisine girip Donanım seçeneğine giderek Disk Boyutlandır seçeneği ile yaptım ve sanal makineme 4 GB ek disk alanı eklenmesini sağladım.
## **Adim 2:**
## **Adım 2:**
Sanal makinemizde konsole gidip şu komutu çalıştırıyoruz;

View File

@ -1,90 +0,0 @@
# FreeBSD 13 Üzerinde PHP-FPM ve Apache Yapılandırması
Bu dökümanda FreeBSD 13 sistemimiz üzerinde kurulu Apache sunucumuzu php-fpm kullanarak PHP çalıştırır hale getireceğiz. Malum bu işi yapmanın diğer yolu; Apacheyi PHP modülü ile kullanmak. Bu dökümanda daha performanslı çalıştığı söylenen php-fpm ile Apache ve PHPyi birbiri ile bağlayacağız.
Öncelikle Apache ve PHP paketlerini uygun modüller ve ayarlarla kurmamız lazım. Kurulumu ports ile yapıyorsanız ön tanımlı ayarlarda ihtiyacınız olan seçenekler seçili halde oluyor. Apache ve PHP için ön tanımlı değerlerle devam edebilirsiniz. Kurulumlar yapıldıktan sonra düzenleyeceğimiz ilk dosya httpd.conf olacak. Dosyayı açarak aşağıdaki satırları bulun ve örneğe göre düzenleyin. FreeBSDde ports üzerinden kurulmuş Apache 2.4 için httpd.conf dosyasının yolu; ```/usr/local/etc/apache24/httpd.conf```
```
#
# Dynamic Shared Object (DSO) Support
#
...
LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
#LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
...
LoadModule proxy_module libexec/apache24/mod_proxy.so
...
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
```
Gerekli modülleri aktif hale getirmiş olduk. Modüllerle ilgili yaptığımız ayarın geçerli hale gelmesi için Apache servislerini yeniden başlatalım:
```
service apache24 start
```
# PHP-FPM
PHP-FPM (FastCGI Process Manager), ağır yüklü siteler için yararlı olabilen bazı ek özelliklere sahip alternatif bir PHP FastCGI uygulamasıdır. Yazının giriş bölümünde de bahsettiğimiz Apache web sunucusunun PHP modülü ile kullanımı aşağıda şematize edilmiştir.
![Apache web sunucusunun PHP modülü ile kullanımı](img/request-response-in-php-e1542398057451.jpg "Apache web sunucusunun PHP modülü ile kullanımı ").
İstemci (browser), sunucudan bir PHP sayfası talep ettiğinde Apache bu sayfayı PHP modülüne yorumlatıp sonucu istemciye gönderir. Burada PHP yorumlama işinin Apache servisi içinde yapıldığına dikkat edin. PHP-FPM kullandığımızda ise aşağıda bulunan yapı oluşacaktır.
![PHP-FPM kullandığımızda](img/setup-apache-php-frpm-ubuntu.png "PHP-FPM kullandığımızda").
Gördüğünüz gibi Apache bu sefer PHP kodlarının yorumlanmasını kendi içerisindeki PHP modülü yerine, bağımsız bir servis olarak çalışan FPM uygulamasına yaptırıyor. İşin mantığı genel olarak bu. Şimdi gerekli düzenlemeleri yapalım. PHP-FPM bir servis olarak çalışıyor demiştik. Öncelikle bu servisi çalıştırabilmek için /etc/rc.conf içerisine gerekli satırı ekleyelim:
```
php_fpm_enable="YES"
```
ve servisi çalıştıralım:
```
service php-fpm start
```
Ön tanımlı olarak php-fpm, arka planda 9000 numaralı TCP portunu dinleyecek ve yalnızca yerel makineden gelecek bağlantı isteklerini kabul edecek şekilde ayarlıdır. Eğer php-fpm servisini başka bir makinede çalıştırmayı planlamıyorsanız TCP yerine Unix soketi dinlemek daha hızlı ve daha güvenli bir yol olacaktır. Bu şekilde yapılandırmak için /usr/local/etc/php-fpm.d/www.conf dosyasını açalım ve aşağıdaki şekilde düzenleyelim:
```
user = www
group = www
listen = /tmp/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
```
Bu değişikliklerin etkili olabilmesi için php-fpm servisini yeniden başlatmak gerektiğini unutmayın. Aynı durum PHP ile ilgili yapacağınız tüm değişimlerde geçerli. mod_php kullandığınız zamanlarda Apache servisini yeniden başlatmak PHP ayarlarında yaptığınız değişimleri etkin hale getiriyordu ancak şu anda bu işi php-fpm servisi yaptığı için PHP ve php-fpm üzerinde yaptığımız tüm değişikliklerde php-fpm servisini yeniden başlatmayı unutmayalım.
```
service php-fpm restart
```
Son olarak Apache üzerinde küçük bir ayar yapmamız lazım. /usr/local/etc/apache24/Includes/php-fpm.conf dosyasını açalım ve şu içeriği ekleyelim:
```
<FilesMatch \.php$>
SetHandler proxy:unix:/tmp/php-fpm.sock|fcgi://localhost/
# use the following line instead if you didn't set PHP-FPM to listen on a Unix socket
#SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
```
Tüm ayarlamaları yaptık. Apache servisini yeniden başlatalım:
```
apachectl restart
```
Yaptığımız konfigürasyonu test edebiliriz. Web sunucumuzda bir php dosyası oluşturup <?php phpinfo();?> kodlarını bu sayfamıza yerleştirelim. Sayfayı ziyaret edelim:
![PHP Info](img/phpinfo.png "PHP Info").
Server API satırında FPM/FastCGI görüyorsanız tebrikler, sunucunuzda Apache+PHP-FPM yapılandırmasını doğru şekilde yapmışsınız.
# Lisans
Bu makale Bedreddin Şahbaz tarafından yazılmıştır. BSD-3-Clause ile ruhsatlanmıştır.