tag:blogger.com,1999:blog-63159105061435386482023-11-15T19:57:44.271+03:00bedoNIXbedoNIXbedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-6315910506143538648.post-65658582611708670332022-09-01T09:57:00.005+03:002022-09-01T10:00:45.787+03:00FreeBSD/PHP Kurulumunda Timezone Ayarı<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOdG7UmaFDc6etTmo9w7Y-OF13A48FdX5BWhvv7PQZOWBhnSMM_LiPfAcC3J0ZRLLo4rY8ipsWDKOMKxf4A6XKxpt_wDc1rL53nMgKxH3k8v_QmZi0TRLHolsBe3YNuxzSRa2LV34vKnDy6mxT3ftGcQ69hk57vD0MKepPtrL_iq895lCJ7Cp8XOGTw/s300/freebsd-logo.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="260" data-original-width="300" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOdG7UmaFDc6etTmo9w7Y-OF13A48FdX5BWhvv7PQZOWBhnSMM_LiPfAcC3J0ZRLLo4rY8ipsWDKOMKxf4A6XKxpt_wDc1rL53nMgKxH3k8v_QmZi0TRLHolsBe3YNuxzSRa2LV34vKnDy6mxT3ftGcQ69hk57vD0MKepPtrL_iq895lCJ7Cp8XOGTw/s1600/freebsd-logo.png" width="300" /></a></div>Merhaba,<p></p><p>FreeBSD üzerinde kurulu PHP+Nginx web sunucumda tarih ile alakalı bazı sorunlar olduğunu farkettim. Şöyle ki sunucumda yapılan işlemlerde UTC+3 değil UTC+0 zaman dilimi kullanılıyor ve tüm işlemler 3 saat geriden yapılıyordu.</p><p>Durumdan emin olmak için bir test yapmak istedim. Saati veren bir PHP Scripti sunucumda çalıştırdım ve gerçekten de PHP işlemlerinde saat bilgisinin hatalı olduğunu farkettim. Kullandığım script ve verdiği çıktıyı aşağıya ekliyorum.</p><p> </p><p> </p><p>Kullandığım script;</p><p><span> </span><i><?php echo "Saat " . date("h:i:sa"); ?> </i><br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: "Droid Sans Mono", "monospace", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"></div><p>Bu scriptin verdiği saat bilgisi şöyle;</p><p><span> </span><i>Saat 06:38:19am</i></p><p>Oysa sistem saati o anda;</p><p><span> </span><i># date<br /><span> </span>Thu Sep 1 09:38:20 +03 2022</i></p><p> Sistem saati UTC+3 olduğu halde PHP Scriptleri UTC+0 olarak sonuç veriyor. Bu durumu düzeltmek için php.ini dosyasında ufak bir değişiklik yapmamız gerekiyor. FreeBSD üzerinde standart PHP kurulumunda php.ini dosyasının yolu /usr/local/etc/php.ini olarak belirleniyor. Bu dosyayı açıp içerisindeki şu satırı bulunuz;</p><p><span> <i>;</i></span><i>date.timezone = </i></p><p>Bu satırın başındaki ; işaretini kaldırıp şu değeri verelim;</p><p><span> </span><i>date.timezone = Europe/Istanbul</i></p><p>Burada <b>ters slash</b> işaretine dikkat edelim, normal slash konulursa ayar doğru çalışmıyor. Dosyayı kaydedip çıkarak kuruluma göre web sunucumuzu veya PHP-FPM'i yeniden başlatıp sonucu kontrol edelim. Yukarıdaki scripti çağırdığımızda saat doğru geliyor ise PHP için time-zone ayarımızı başarı ile yapmışız demektir.<br /></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-25031951630374413932022-08-30T16:03:00.005+03:002022-08-30T16:03:47.923+03:00Proxmox VE Sürümünü Güncelleme<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyRAOpApmOE2A8XMeTrbRQtXWv1GHAl48BvPjmY6Xkcfusb4MZyRZGv_GOK2csAroXmuRUderpNUszsMYCoNQMmEH4zgCFoNzU0zjNxB264_S3GOLoWyLH3anT2Ygm-x4_BccE4NcOLBivw7DAWQz__iVPa-Uy4PUI_VqTeGELGhcpMKOf0t02MU5yg/s540/proxmoxve.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="277" data-original-width="540" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyRAOpApmOE2A8XMeTrbRQtXWv1GHAl48BvPjmY6Xkcfusb4MZyRZGv_GOK2csAroXmuRUderpNUszsMYCoNQMmEH4zgCFoNzU0zjNxB264_S3GOLoWyLH3anT2Ygm-x4_BccE4NcOLBivw7DAWQz__iVPa-Uy4PUI_VqTeGELGhcpMKOf0t02MU5yg/s320/proxmoxve.jpg" width="320" /></a></div><div style="text-align: justify;">Proxmox VE ile ilgili deneyimlediğim bir işlemi daha buraya yazmak istedim. Proxmox VE sürümü ben kurulum yaptığımda 7.1 idi ve sonrasında 7.2 sürümü kullanıma sunuldu. 7.2 sürümü ile gelen değişimlere şu adrese göz atarak bakabilirsiniz (<a href="https://www.proxmox.com/en/news/press-releases/proxmox-virtual-environment-7-2-available" target="_blank">Proxmox Virtual Environment 7.2 released</a>) Ben de 7.1 olan sürümümü güncelleyerek 7.2 yapmak istedim ve bu konuda biraz araştırma yaptım. Proxmox VE yazılımını ücretsiz olarak kullanıyorsanız bu güncellemeyi yapabilmek için bazı işlemler yapmanız gerekmekte. Proxmox VE depoları ile ilgili detaylı bilgi için <a href="https://pve.proxmox.com/wiki/Package_Repositories">https://pve.proxmox.com/wiki/Package_Repositories</a> adresini ziyaret edebilirsiniz. <span style="color: red;"><b> </b></span></div><div style="text-align: justify;"><span style="color: red;"><b> </b></span></div><div style="text-align: justify;"><span style="color: red;"><b>Burada önemli bir UYARI!</b></span> Proxmox VE yazılımını üye olmadan kullandığımız için Proxmox VE No-Subscription deposunu kullanacağız ve bu depo "production" ortamları için önerilmiyor. Çünkü bu depodaki paketler yeterince test edilmemiş ve doğrulanmamış olabiliyor. <u>Ben bu riski minimize etmek için işleme başlamadan önce tüm sanal makinelerimin yedeğini aldım ve öncesinde test amaçlı kurduğum başka bir Proxmox VE üzerinde güncelleme işlemi yapıp sorun olmadığını teyit ettim. Siz de kendinizce önlemler alınız.</u></div><div style="text-align: justify;"> </div><div style="text-align: justify;">Gelelim yapılması gerekenlere. Aslında çok zor ve uzun bir işlem değil. Öncelikle pve-no-subscription deposunu elle eklememiz lazım. Bunun için ssh ile sunucumuza bağlanıp nano ile şu yoldaki dosyayı açalım;</div><pre><code class="language-bash"># nano /etc/apt/sources.list</code></pre><p>Açtığımız dosyanın sonuna şu satırları ekleyelim;</p><pre class="wp-block-preformatted"># PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription</pre><p style="text-align: justify;">ctrl+x ve Yes ile dosyada yaptığımız değişimi kaydedip çıkalım. Bundan sonra vermemiz gereken komutlar;</p><pre class="wp-block-preformatted"># apt update && apt dist-upgrade</pre><p style="text-align: justify;">Bu komutların sonunda sistem güncellenmiş olacak. Güncelleme bittikten sonra <b>tüm sanal makinelerinizi durdurup</b> Proxmox VE sunucunuzu yeniden başlatın;</p><pre class="wp-block-preformatted"># reboot</pre>Sunucunuz yeniden başladığında Proxmox VE sürüm bilgisini kontrol edin. İyi çalışmalar.. <p></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-11100990815911507052022-01-01T14:13:00.000+03:002022-01-01T14:13:20.470+03:00Let's Encrypt ve tinydns Kullanarak Wildcard Sertifika Üretimi<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgf6RARTdwxBHeMJ0sKoc5WWHTu37EFKnyPay0blwdVAB94c95nwyR3vtML7kANUrLzV0qVfqMk8CgJ8uRCcK6e7DwU8dAotuw3sw6O-a3RhbD3i1Akm96BI8DGnh2xT67hy2euBKhtv7xKnF6IWsntc1WhXo8ZGlC5NjBEHABIYFR0sl3uv4-zL_5_aA=s358" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="200" data-original-width="358" height="179" src="https://blogger.googleusercontent.com/img/a/AVvXsEgf6RARTdwxBHeMJ0sKoc5WWHTu37EFKnyPay0blwdVAB94c95nwyR3vtML7kANUrLzV0qVfqMk8CgJ8uRCcK6e7DwU8dAotuw3sw6O-a3RhbD3i1Akm96BI8DGnh2xT67hy2euBKhtv7xKnF6IWsntc1WhXo8ZGlC5NjBEHABIYFR0sl3uv4-zL_5_aA=s320" width="320" /></a></div><p></p><p style="text-align: justify;">Bu dökümanda; Let's Encrypt Wilcard Sertifikasını, DNS sunucu olarak
tinydns kullanan bir sistem yöneticisinin nasıl kolayca alabileceğini ve
akabinde sertifika yenilenmesinde işi nasıl otomatize edebileceğini
kendi deneyimim üzerinden aktarmaya çalışacağım.</p><p style="text-align: justify;"> Let's Encrypt nedir, ne işe yarar, nasıl çalışır sorularına bu yazıda çok yer vermek istemiyorum. Eğer Let's Encrypt nedir, nasıl çalışır konusunda bilginiz yetersiz ise öncelikle o konuda biraz araştırma yapmanız yerinde olacaktır.</p><p style="text-align: justify;">Let's Encrypt'in sertifika oluşturma için bir kaç "challange" metodu olduğunu biliyorsunuz. Wildcard tipi sertifikalar için bir kısıtlama söz konusu ve bu tip sertifika alabilmek için DNS challange metodunu kullanmak mecburi. Bu metod çok kabaca şöyle çalışıyor; Let's Encrypt sertifika oluşturma aşamasında, txt tipinde bir kayıt üretip bunu DNS sunucunuzdan yayınlamanızı istiyor. Siz DNS kaydını girip sertifika işlemine devam ettiğinizde Let's Encrypt size ilettiği txt kaydının alan adınızda olup olmadığını sorguluyor ve sorgu başarılı olur ise wildcard sertifika üretme işlemi başarı ile gerçekleşiyor. Buradaki amaç elbette sertifika üretmek istediğiniz alan adının gerçekten sahibi olup olmadığını otomatik bir şekilde kontrol etmek. Let's Encrypt süreçleri otomatik hale getirip insan müdahalesini gerektirmeyen bir yapıya sahip.</p><p style="text-align: justify;">Bu işlem için Let's Encrypt üzerinde kullanılabilecek plug-in yazılımları mevcut. DNS hizmetini aldığınız büyük oyuncular için işlemi otomatikleştiren plug-in bulabiliyorsunuz. Ancak kendi tinydns sunucusunu çalıştıran benim gibiler için bir kaç düzenleme yapmak gerekiyor. Neyse ki tinydns'in esnek ve basit yapısı nedeni ile bu gayet kolay. Nasıl yapıldığına geçelim.</p><p style="text-align: justify;">Öncelikle yaptığım her şey FreeBSD üzerinde bunu belirteyim. GNU/Linux üzerinde de çok yakın bir şekilde aynı yolu izleyebilirsiniz. Bazı dosya yolları ve komutlar farklılık gösterebilir.</p><p style="text-align: justify;">Let's Encrypt dosyalarının bulunduğu <span style="background-color: #fce5cd;">/usr/local/etc/letsencrypt</span> dizinine girelim. Bu dizinde <span style="background-color: #fce5cd;">cli.ini</span> adında bir ayar dosyası göreceksiniz. Bu dosyayı aşağıdaki gibi düzenleyelim;</p><p style="text-align: justify;"></p><pre>manual<br />server = https://acme-v02.api.letsencrypt.org/directory<br />rsa-key-size = 4096<br />preferred-challenges = dns<br />manual-auth-hook = /usr/local/etc/letsencrypt/certbot-dns-auth.sh<br />manual-cleanup-hook = /usr/local/etc/letsencrypt/certbot-dns-auth-cleanup.sh</pre><p></p><p style="text-align: justify;">certbot yazılımı bize çok rahatlık sağlayan manual-auth-hook ve manual-cleanup-hook tanımlama şansını veriyor. Bu tanımlamalar sayesinde certbot içerisinden shell scriptlerimizi çağırarak sertifika üretimi öncesinde ve sonrasında bazı işlemler yapabiliyoruz. Sertifika oluşturma öncesinde tinydns sunucumuza Let's Encrypt tarafından gönderilen txt kaydını giren shell scripti görelim,</p><p style="text-align: justify;"></p><pre># cat /usr/local/etc/letsencrypt/certbot-dns-auth.sh<br />#!/usr/local/bin/bash<br /><br />cd /etc/tinydns/root<br />cp -f data data-good<br />echo "'_acme-challenge.$CERTBOT_DOMAIN:$CERTBOT_VALIDATION:120" >> data<br />/usr/local/etc/letsencrypt/update.sh<br /># Sleep to make sure the change has time to propagate over to DNS<br />sleep 25</pre><p></p><p style="text-align: justify;">tinydns için benim kurulumunda root dizini /etc/tinydns/root yolunda, bu dizine geçip data dosyasını data-good olarak her ihtimale karşı yedekliyoruz. certbot tarafından gönderilen txt tipi kaydı data dosyasına yazıyoruz ve update.sh shell scriptini çağırıyoruz. Bu scripti de inceleyelim;</p><p style="text-align: justify;"></p><pre># cat /usr/local/etc/letsencrypt/update.sh<br />#!/bin/sh<br /><br />make<br />rsync -avz -e ssh /etc/tinydns/root/data.cdb root@ikinci_tinydns_ip:/etc/tinydns/root<br />rsync -avz -e ssh /etc/tinydns/root/data root@ikinci_tinydns_ip:/etc/tinydns/root</pre><p></p><p style="text-align: justify;">make komutu ile data dosyasını cdb formatına çevirip rsync satırları ile varsa ikinci, üçüncü, vb. diğer sunucularımıza da bu değişimi gönderiyoruz. Böylece tüm tinydns sunucularımızda gerekli txt kaydı kaydedilmiş oldu. Bir sonraki aşamada /usr/local/etc/letsencrypt/certbot-dns-auth-cleanup.sh scripti çalışacak ve girilen txt kaydını DNS sunucumuzdan temizleyecek. Bu scriptin içeriği de:</p><p style="text-align: justify;"></p><pre># cat /usr/local/etc/letsencrypt/certbot-dns-auth-cleanup.sh<br />#!/usr/local/bin/bash<br /><br />cd /etc/tinydns/root<br />sed '$d' data > tmp; mv -f tmp data<br />/usr/local/etc/letsencrypt/update.sh</pre><p></p><p style="text-align: justify;">Yine tinydns root dizinine geçip biraz önce eklediğimiz kaydı silerek update.sh scriptini yeniden çağırıyoruz. <br /></p><p style="text-align: justify;">Bu scriptlerin tümü başarı ile çalıştığında cerbot şu şekilde çıktı üretecek;</p><p style="text-align: justify;"></p><pre># certbot certonly -d '*.domain.com'<br />Saving debug log to /var/log/letsencrypt/letsencrypt.log<br />Requesting a certificate for *.domain.com<br />Hook '--manual-auth-hook' for domain.com ran with output:<br /> /usr/local/bin/tinydns-data<br /> sending incremental file list<br /> data.cdb<br /><br /> sent 1,970 bytes received 137 bytes 1,404.67 bytes/sec<br /> total size is 11,671 speedup is 5.54<br /> sending incremental file list<br /> data<br /><br /> sent 281 bytes received 101 bytes 764.00 bytes/sec<br /> total size is 7,206 speedup is 18.86<br />Hook '--manual-cleanup-hook' for domain.com ran with output:<br /> /usr/local/bin/tinydns-data<br /> sending incremental file list<br /> data.cdb<br /><br /> sent 1,848 bytes received 137 bytes 3,970.00 bytes/sec<br /> total size is 11,551 speedup is 5.82<br /> sending incremental file list<br /> data<br /><br /> sent 218 bytes received 101 bytes 638.00 bytes/sec<br /> total size is 7,121 speedup is 22.32<br /><br />Successfully received certificate.<br />Certificate is saved at: /usr/local/etc/letsencrypt/live/domain.com/fullchain.pem<br />Key is saved at: /usr/local/etc/letsencrypt/live/domain.com/privkey.pem<br />This certificate expires on 2022-04-01.<br />These files will be updated when the certificate renews.<br /><br />NEXT STEPS:<br />- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.<br /><br />- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />If you like Certbot, please consider supporting our work by:<br /> * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate<br /> * Donating to EFF: https://eff.org/donate-le<br />- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre><p></p><p style="text-align: justify;">Sertifikamız başarı ile oluştu. Yapılması gereken tek bir şey var. Let's Encrypt wildcard sertifikaları 3 ay geçerli oalcak şekilde veriyor. Bu nedenle 3 ayda bir bu sertifikaların yenilenmesi lazım. cli.ini dosyasında yaptığımız düzenleme sertifika yenilenirken de işe yarıyor. Tek yapmamız gereken bir cron işi oluşturmak ve her gün düzenli şekilde certbot'a sistemimizde yüklü sertifikaları denetletmek. Örnek bir cron işi;</p><p style="text-align: justify;"></p><pre style="width:auto">0 1 * * * root /usr/local/bin/certbot renew >> /var/log/letsencrypt/renew.log --post-hook "service nginx restart"<br /></pre><p></p><p style="text-align: justify;">Tebrikler, Let's Encrypt wildcard sertifikanızı güle güle kullanın..<br /></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-11490063898334285062021-12-24T18:37:00.005+03:002022-01-01T22:46:37.339+03:00Proxmox VE local-lvm Nasıl Silinir ve Oluşan Boş Disk Alanı local Alanına Nasıl Aktarılır<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhuadCqm_DgIdGAVmn2ktQ0QWMo2C-ZR0ewtX4IqkIz8Y36ZpWoA_N15ixyzF1xidSEBnhZa2x7vnVumnvGYD7ZAs1feQ-K8uc3gaf2SoowwlHmb5mBOTRV58ihUiq4d0QT-QFZvpZyTBxis2U2gMHRSikboM2RP934nWi96C8zTAcQerkremZlCtng4Q=s540" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="277" data-original-width="540" height="164" src="https://blogger.googleusercontent.com/img/a/AVvXsEhuadCqm_DgIdGAVmn2ktQ0QWMo2C-ZR0ewtX4IqkIz8Y36ZpWoA_N15ixyzF1xidSEBnhZa2x7vnVumnvGYD7ZAs1feQ-K8uc3gaf2SoowwlHmb5mBOTRV58ihUiq4d0QT-QFZvpZyTBxis2U2gMHRSikboM2RP934nWi96C8zTAcQerkremZlCtng4Q=s320" width="320" /></a></div><div style="text-align: justify;">Proxmox VE standart kurulumda ön tanımlı olarak LVM-Thin kullanan local-lvm adında bir volüm oluşturmakta. Bu volüm neden olduğunu bilmiyorum ancak benim sistemimde sorun yarattı. Backup ve snaphot alma işlemlerini bu volümde yapmak istediğimde çok yavaş olduğunu ve işlem sırasında diğer tüm sanal makinelerin kilitlendiğini farkettim. </div><div style="text-align: justify;"> </div><div style="text-align: justify;">Bu nedenle sanal makine kurulumlarımda local-lvm yerine local depolama alanını kullanmak istedim. Ön tanımlı olarak bu depolama alanı diskin kapasitesinin çok azına sahip. local-lvm depolama volümünü silerek boşalan alanı local alanına kaydırmak istedim. Bu işlemi şöyle yapıyoruz:</div><div style="text-align: justify;"><br />Öncelikle <b>Verimerkezi</b>'ne tıklıyoruz ve menüden <b>Depolama</b> sekmesine geçiyoruz. local-lvm üzerine tıklayıp yukarıdan <b>Kaldır</b> butonuna basıyoruz. Emin olmamakla beraber bu işlem volümü silmeyip sadece unmount ediyor olmalı. Bu işlemden sonra sunucu Shell sekmesine tıklayıp terminalden sırası ile şu komutları veriyoruz:</div><pre><code class="language-bash"># lvremove /dev/pve/data
# lvresize -l +100%FREE /dev/pve/root
# resize2fs /dev/mapper/pve-root</code></pre><p>Soldaki menüden local depolama alanına tıklayarak <b>Özet</b> sekmesine tıklayın. Disk alanı arttı ise işlem başarılı demektir..</p><p>Kaynaklar:</p><hr /><p><a href=" https://blog.jarmosz.uk/posts/removing-local-lvm-on-proxmox-5/" target="_blank"> https://blog.jarmosz.uk/posts/removing-local-lvm-on-proxmox-5/</a><br /></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-22507565573301094102021-12-20T10:43:00.002+03:002021-12-20T11:14:52.393+03:00FreeBSD 13 Üzerinde PHP-FPM ve Apache Yapılandırması<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiRtUwuEt9SjioyeQqwwezEp_m6bsQCUNW3ldbpwhwFcHWmKGB93W3Bitr4IWlzQN1kSguiIKNH5Pj4Fh0vSYeSRrbC3kS7Mcm720gBC3t84b0w-T0I3biBjnD_-wm1TUuEbajl4g2DQJPakejEQV7B9rOaT5vDCt2uOD31COzu8UHsjLY1e0csH-W_5Q=s300" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="260" data-original-width="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEiRtUwuEt9SjioyeQqwwezEp_m6bsQCUNW3ldbpwhwFcHWmKGB93W3Bitr4IWlzQN1kSguiIKNH5Pj4Fh0vSYeSRrbC3kS7Mcm720gBC3t84b0w-T0I3biBjnD_-wm1TUuEbajl4g2DQJPakejEQV7B9rOaT5vDCt2uOD31COzu8UHsjLY1e0csH-W_5Q=s16000" /></a></div><div style="text-align: left;"></div><div style="text-align: justify;">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; Apache'yi PHP modülü ile kullanmak. Bu dökümanda daha performanslı çalıştığı söylenen php-fpm ile Apache ve PHP'yi birbiri ile bağlayacağız.</div><div style="text-align: justify;"> </div><div style="text-align: justify;">Ö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. FreeBSD'de ports üzerinden kurulmuş Apache 2.4 için httpd.conf dosyasının yolu; <span style="background-color: #ead1dc;"><code class="jl jm jn jo jp b">/usr/local/etc/apache24/httpd.conf</code></span></div><div style="text-align: justify;"> <br /><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" id="5087">#<span style="background-color: #ead1dc;"><span></span></span><br /># Dynamic Shared Object (DSO) Support<span style="background-color: #ead1dc;"><span></span></span><br />#<br />...<br />LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so<br />#LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so<br />#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so<br />...<br />LoadModule proxy_module libexec/apache24/mod_proxy.so<br />...<br />LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so</span></pre></div><p></p><p style="text-align: left;"> </p><div style="text-align: left;"> 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:</div><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">service apache24 start</span></pre><p> PHP-FPM</p><div style="text-align: left;">PHP-<span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"><span>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.<br /></span></span></span></div><p><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"></span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgJ4WqbDzzZq4B123waiW0LyfRITaV-3v2jsLMPtTNRnwHfeaAM63SYRGTVnetXEL3eqIW-j2etF3P1P7EYw-d87YmR0x7ARF_m14dF_dywnjUfF5y841-nT4TIXtaZC_sJYAjXBm6CEJEWGKPk7tADNrDzVL0sHPt6LNEkO8WosfAAplCHVMoqnpzJ3A=s1073" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="1073" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEgJ4WqbDzzZq4B123waiW0LyfRITaV-3v2jsLMPtTNRnwHfeaAM63SYRGTVnetXEL3eqIW-j2etF3P1P7EYw-d87YmR0x7ARF_m14dF_dywnjUfF5y841-nT4TIXtaZC_sJYAjXBm6CEJEWGKPk7tADNrDzVL0sHPt6LNEkO8WosfAAplCHVMoqnpzJ3A=w400-h180" width="400" /></a></div><span>İ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.</span><p></p><p><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"></span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgiSFcufelF4twqcWUOk3blk08GNwmYqPMsyWTwCtu9BQpB_ouHJGcpInimxdJibL7qpsjVmWJR5zRbZAPF1N02_hPKcmsnmiJJMVDAZmSsoll358R0Un4IQ5WmJ3uEv7OaY_RZIFpzbp7DdBKnz8dp4yOhNJRcmWXvGR0Lae_9LWKWTzKTRhlA25qBIQ=s747" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="384" data-original-width="747" height="205" src="https://blogger.googleusercontent.com/img/a/AVvXsEgiSFcufelF4twqcWUOk3blk08GNwmYqPMsyWTwCtu9BQpB_ouHJGcpInimxdJibL7qpsjVmWJR5zRbZAPF1N02_hPKcmsnmiJJMVDAZmSsoll358R0Un4IQ5WmJ3uEv7OaY_RZIFpzbp7DdBKnz8dp4yOhNJRcmWXvGR0Lae_9LWKWTzKTRhlA25qBIQ=w400-h205" width="400" /></a></div><br /><span>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 <span style="background-color: #ead1dc;">/etc/rc.conf</span> içerisine gerekli satırı ekleyelim:</span><p></p><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">php_fpm_enable="YES"</span></pre><p><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"><span></span></span></span></p><p><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"><span>ve servisi çalıştıralım:</span></span></span></p><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">service php-fpm start</span></pre><p><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"><span></span></span></span></p><div style="text-align: left;"><span class="VIiyi" lang="tr"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="tr" data-language-to-translate-into="en" data-number-of-phrases="1" data-phrase-index="0"><span>Ö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 <span style="background-color: #ead1dc;">/usr/local/etc/php-fpm.d/www.conf</span> dosyasını açalım ve aşağıdaki şekilde düzenleyelim:</span></span></span></div><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">user = www<br />group = www<br />listen = /tmp/php-fpm.sock<br />listen.owner = www<br />listen.group = www<br />listen.mode = 0660</span></pre><div style="text-align: left;"><span>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.</span></div><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">service php-fpm restart</span></pre><p><span>Son olarak Apache üzerinde küçük bir ayar yapmamız lazım. <span style="background-color: #ead1dc;">/usr/local/etc/apache24/Includes/php-fpm.conf</span> dosyasını açalım ve şu içeriği ekleyelim:</span></p><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3"><FilesMatch \.php$><br /> SetHandler proxy:unix:/tmp/php-fpm.sock|fcgi://localhost/<br /> # use the following line instead if you didn't set PHP-FPM to listen on a Unix socket<br /> #SetHandler proxy:fcgi://127.0.0.1:9000<br /></FilesMatch></span></pre><div style="text-align: left;"><span>Tüm ayarlamaları yaptık. Apache servisini yeniden başlatalım:</span></div><div style="text-align: left;"><pre class="kq kr ks kt ku kv kw kx"><span class="gv ky jr fy jp b dt kz la s lb" data-selectable-paragraph="" id="bee3">apachectl restart</span></pre></div><div style="text-align: left;"><span>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:</span></div><div style="text-align: left;"><span><br /></span></div><div style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhBT_zxzvVlsjpbirkv5GjWMC7XumE0PTCr1u8DcoNS21KbTxZ6GK3LfEHzBu9dVReWoFHqZ-Vpt-roTKnRaCh6SwBhQOy1O6jh3XaVLpZFEr50z0YvTqGdbTrVSBtMYS1LUljX9uxYNsHLvJ4cbpkv_QygkAaHx3cVTc0BA-5LzD7NCAHPdVWxxlLbNA=s942" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="444" data-original-width="942" height="302" src="https://blogger.googleusercontent.com/img/a/AVvXsEhBT_zxzvVlsjpbirkv5GjWMC7XumE0PTCr1u8DcoNS21KbTxZ6GK3LfEHzBu9dVReWoFHqZ-Vpt-roTKnRaCh6SwBhQOy1O6jh3XaVLpZFEr50z0YvTqGdbTrVSBtMYS1LUljX9uxYNsHLvJ4cbpkv_QygkAaHx3cVTc0BA-5LzD7NCAHPdVWxxlLbNA=w640-h302" width="640" /></a></div><br /><span>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..<br /></span></div>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-26607553574340410672021-12-19T16:32:00.003+03:002021-12-19T16:36:02.445+03:00MariaDB Üzerinde Bulunan Bir Veritabanını Başka Bir Sunucuya Manuel Restore Etmek<p> <a href="https://blogger.googleusercontent.com/img/a/AVvXsEiWZw0cfGBB0NfxGD7A74CPpcIxnOiQ24669enaFGCeppNpZExJoAsNeep2irEWysy0nmp6ieC-bbl_U61AJrzTuJSzr1JZZxQb7AAvrCauqXQ1dCQe6D5U1oOz-jnLXCmTKKVxqOz4TAEkvMsGYHB99fG19uEbdmu5hIUNpCBuEAMsDY8xEZVQ6FoxNQ=s600" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="600" height="120" src="https://blogger.googleusercontent.com/img/a/AVvXsEiWZw0cfGBB0NfxGD7A74CPpcIxnOiQ24669enaFGCeppNpZExJoAsNeep2irEWysy0nmp6ieC-bbl_U61AJrzTuJSzr1JZZxQb7AAvrCauqXQ1dCQe6D5U1oOz-jnLXCmTKKVxqOz4TAEkvMsGYHB99fG19uEbdmu5hIUNpCBuEAMsDY8xEZVQ6FoxNQ=s320" width="320" /></a>MariaDB veya MySQL üzerinde bulunan veritabanınızı başka bir sunucuya aktarmak mı istiyorsunuz? Bunu basitçe halletmeniz mümkün. </p><p>Öncelikle veritabanını aktarmak istediğimiz sunucumuzda yeni sunucumuzun bağlanabileceği ve backup alabilmesi için select komutu çalıştırma yetkisi bulunan bir kullanıcıya ihtiyacımız var. Veritabanını taşımak istediğiniz sunucuya bağlanın ve mysql komut satırına geçin. Şu komutları verelim:<br /></p><pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">mysql> CREATE USER 'kullanici_adi'@'yedek__alinacak_sunucu_ipsi' IDENTIFIED BY 'sifre';<br />mysql> GRANT SELECT, LOCK TABLES ON testdb.* TO 'kullanici_adi'@'yedek_alinacak_mysqlin_ipsi';</pre><br />İlk satırdaki komut veritabanını yedeklemek için kullanacağımız hesabı tanımlarken, ikinci satır ise bu kullanıcıya testdb veritabanı üzerinde SELECT yetkileri tanımaktadır.Şimdi veritabanını restore etmek istediğimiz sunucuya geçip komut satırından şu komutu verelim:<br /><br /><pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;"># mysqldump -h yedek_alinacak_sunucunun_ipsi -u kullanici_adi -psifre testdb > testdb.sql</pre><br />Bu komut; veritabanının yedeğini alacağımız sunucuya bağlanıp, testdb veritabanını mysqldump komutu ile bulunduğumuz dizine testdb.sql adıyla yedekleyecektir.<br /><br />Bir sonraki işimiz aldığımız bu yedeği restore etmek. Bunun için öncelikle mysql istemcisine girerek testdb veritabanını yeni sunucumuzda oluşturalım:<br /><br /><pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;"># mysql -u root -p<br />Enter password:<br /><br />mysql> create database testdb;<br />mysql> quit;</pre><br />Sonrasında dump ettiğimiz veritabanını oluşturduğumuz boş veritabanına kaydedelim. Bunun için kullanacağımız komut:<br /><br /><pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;"># mysql -u root -psifre testdb < testdb.sql</pre><p></p><p>İşte hepsi bu kadar.. Eski sunucunuzda bulunan veritabanınızı manuel restore uygulayarak yeni sunucunuza taşıdınız..<br /> <br /></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-32238717080878401972021-12-18T19:41:00.006+03:002021-12-18T23:52:39.141+03:00Ubuntu 20.04 Server Üzerinde Let’s Encrypt Wildcard SSL Sertifikası Oluşturma<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj3YuBJcsr7WxH3HmxzrcWkbwmx6TusHHtNoobYNWm5bfxrcPUCZ9OsdN-5hPa-zd7dbfF1YrbVUBnApItvP9W6cy43TDnoNucDzkI58zTNpHelZDsM8BWEh-kmELkirmTBEhsAB-vSndVlSYOzbb6baX-7BvLmVacgzqqVQb9l4ZlVMtgnpN8R3zI6NA=s358" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="200" data-original-width="358" height="179" src="https://blogger.googleusercontent.com/img/a/AVvXsEj3YuBJcsr7WxH3HmxzrcWkbwmx6TusHHtNoobYNWm5bfxrcPUCZ9OsdN-5hPa-zd7dbfF1YrbVUBnApItvP9W6cy43TDnoNucDzkI58zTNpHelZDsM8BWEh-kmELkirmTBEhsAB-vSndVlSYOzbb6baX-7BvLmVacgzqqVQb9l4ZlVMtgnpN8R3zI6NA=s320" width="320" /></a></div><br />Let's Encrypt Internet Security Research Group ("ISRG") tarafından
geliştirilen ve Linux Foundation tarafından desteklenen Security
Research Group tarafından ilk olarak 2015 yılında üretilmiş bir açık
sertifika otoritesidir. Tüm amaç kamu yararı için ücretsiz, otomatize ve
açık bir sertifika doğrulama sistemidir.<p></p>
<p>Let's Encrypt web sunucuların HTTP yerine HTTPS kullanılmasını
yaygınlaştırmak üzere SSL/TLS sertifikaların ücretsiz olarak üretilmesi
ve dağıtılması amacıyla kurulmuştur. Sektörün önde gelen şirketleri
Cisco, Mozilla ve Electronic rontier Foundation firmaları tarafından
finanse edilmektedir ve bu servis sponsorlar desteği ile devamlılığını
sağlamaktadır.</p>
<p>Let's Encrypt ile ücretsiz olarak SSL sertifikaları üretilebilmekte.
Ubuntu 20.04 Server üzerinde bu sertifikanın üretilmesi ile ilgili
basamakları bu dökümanda bulabilirsiniz.</p>
<p>Öncelikle depolarımızı güncelleyelim,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">sudo apt-get update
</pre>
<p>Sonrasında gerekli uygulamaları yükleyelim,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">$ sudo apt-get install letsencrypt</pre>
<p>Bu aşamada Let's Encrypt üzerinden sertifika oluşturmak için gerekli
uygulamalar sistemimizde yüklü halde. Let's Encrypt sertifika
oluşturmak için domainin yöneticisi olduğunuzu ispat etmenizi istiyor.
Wildcard tipinde sertifika oluşturmak için "DNS Challenge" yöntemini
kullanmaz zorunlu. Sertifikaları oluşturmak için şu komutu kullanıyoruz,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: auto; overflow: auto hidden; padding: 8px; width: auto;">$ sudo certbot certonly --manual --preferred-challenges=dns --email mailadresiniz@domain.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d domain.com -d *.domain.com</pre>
<p>Parametreler şöyle,</p>
<ul><li>certonly: Bir sertifika oluştur veya yenile ama yükleme</li><li>manual: Sertifikayı etkileşimli olarak oluştur</li><li>preferred-challenges: Etki alanı sahipliğini doğrulamak için DNS Challange kullan</li><li>server: Sertifika oluşturmak için kullanılacak sunucu adresi</li><li>agree-tos: ACME sunucusunun üyelik şartlarını kabul et</li><li>d: Sertifika oluşturulacak domain adı</li></ul>
<p>Komutu verdiğimizde şu çıktılar üretilecektir,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for domain.com
dns-01 challenge for domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.
Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.domain.com with the following value:
T6LEeoXaGoxB3vcoG0ZhmlniM3VBV3BKA2se9E637UY
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue</pre>
<p>Bu aşamada çıktıda belirtilen DNS TXT kaydını DNS sunucularına
girmemiz gerekiyor. Tinydns DNS sunucusu için yukarıda verilen anahtara
uygun girdi şu şekilde olmalı,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">'_acme-challenge.domain.com:Qz8v7yHVUdUnB3N5O-qmqZPySrs82NCJXkxpOGmbpYE:3600</pre>
<p>DNS sunuculara gerekli kaydı girdikten sonra enter tuşuna basarak
işleme devam ediyoruz (işlemin zaman aşımına uğramaması için kaydı hızlı
girmek gerekiyor). Eğer her şey yolunda gitmiş ise şu ekran çıktılarını
görmemiz gerekiyor,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem
Your cert will expire on 2022-01-17. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le</pre>
<p>Sertifikalarımızı certbot ile bir kez daha görüntüleyelim,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: domain.com
Domains: domain.com *.domain.com
Expiry Date: 2022-01-17 08:01:37+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/domain.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/domain.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre>
<p>Evet gördüğünüz üzere sertifikamız ve private key başarı ile
oluşturulmuş durumda.. Şimdi yapmamız gereken son bir işlem var. Let's
Encrypt sertfikaları 90 gün için oluşturduğu için sertifikas süresi sona
erdiğinde yenilenmesi için bir cron işi girmemiz lazım.</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">$ sudo crontab -e</pre>
<p>Komutu ile açtığımız alana şu kaydı ekliyoruz,</p>
<pre style="background-color: #fafafa; border-radius: 3px; border: 1px solid rgb(226, 226, 226); font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; margin: 1em 1em 1em 1.6em; overflow-x: auto; overflow-y: hidden; overflow: auto hidden; padding: 8px; width: auto;">0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log</pre>
<p>Evet tüm aşamaları tamamladık. Artık Let's Encrypt üzerinden ücretsiz olarak SSL sertifikamızı kullanabiliriz..</p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0tag:blogger.com,1999:blog-6315910506143538648.post-74963799802032702372021-12-18T18:38:00.004+03:002021-12-18T19:43:26.201+03:00Proxmox VE Mail Gönderim Ayarları<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg_qOZDTxC8exblpyY468XgYgxR-qnEVRliRyD-sfAxTC9q6BRyKT1QsO5jNjl8E5letM9PEOMFRXxiw2VGCMCYJgbMxhmVivorO-3dnv7B7LDCXhTpjT59zxF-n3WrCV4PwKyqVONm7-4sGZ2btg4MKiEHC0pJVJZFS2aaYZq-rtHr18NapijCCriPyw=s540" style="display: block; margin-left: 1em; margin-right: 1em; padding: 1em 0px; text-align: center;"><img border="0" data-original-height="277" data-original-width="540" src="https://blogger.googleusercontent.com/img/a/AVvXsEg_qOZDTxC8exblpyY468XgYgxR-qnEVRliRyD-sfAxTC9q6BRyKT1QsO5jNjl8E5letM9PEOMFRXxiw2VGCMCYJgbMxhmVivorO-3dnv7B7LDCXhTpjT59zxF-n3WrCV4PwKyqVONm7-4sGZ2btg4MKiEHC0pJVJZFS2aaYZq-rtHr18NapijCCriPyw=s16000" /></a></div><p>Proxmox VE (Virtual Environment) bilindiği üzere; Debian tabanlı, açık kaynak kodlu Hypervizor Tip 1 (Bare Metal) bir sanallaştırma aracı. Bu araç ile ilgili detaylı bilgi için <a href="https://www.proxmox.com/en/proxmox-ve" target="_blank">Proxmox VE</a> adresini ziyaret edebilirsiniz.</p><p>Bu dökümanda kurulumunu yaptığımız Proxmox VE tarafından bize gönderilecek e-posta mesajlarının harici bir e-posta sunucusuna yönlendirilmesini sağlayacağız. Proxmox VE Postfix mail sunucusu ile gelmekte. Bu nedenle yapacağımız işlemler Postfix ayarlamak olacak bir anlamda. Öncelikle Proxmox VE sunucumuzun terminaline ister web arayüzü üzerinden ister SSH ile bağlanalım ve gereken libsasl2-modules paketini kuralım:</p><pre><code>apt-get install libsasl2-modules</code></pre><p>Şimdi yoksa /etc/postfix/sasl_passwd dosyasını oluşturalım ve içerisine mail sunucumuza ait bilgileri girelim:</p><pre><code>nano /etc/postfix/sasl_passwd</code></pre><p>İlgili satırları bu dosyanın içerisine ekleyelim:</p><pre><code>[server_adresi_veya_ip]:587 mailadresiniz@domain.com:şifreniz</code></pre><p>Şimdi Postifix sunucumuzun ayarlarını yapalım. /etc/postfix/main.cf dosyasını açalım:</p><pre><code>nano /etc/postfix/main.cf</code></pre><p>Dosyaya şu satırları ekleyelim:</p><pre><code>relayhost = [server_adresi_veya_ip]:587<br />smtp_use_tls = no<br />smtp_sasl_auth_enable = yes<br />smtp_sasl_security_options =<br />smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd</code></pre><p>Gerekli yetkiyi verip maps dosyasını oluşturalım:</p><pre><code>chmod 600 /etc/postfix/sasl_passwd<br />postmap /etc/postfix/sasl_passwd</code></pre><p>Postfix servisini yeniden başlatalım:</p><pre><code>systemctl restart postfix.service</code></pre><p>Ve test etmek için şu komut ile mail göndermeyi deneyelim:</p><pre><code>echo "Test mail from postfix" | mail -s "Test Postfix" test@test.com</code></pre><p>Şu komut ile Proxmox VE için de test yapabiliriz:</p><pre><code>echo "test" | /usr/bin/pvemailforward</code></pre><p>Postalar başarı ile size ulaştı ise tebrikler, Proxmox VE sunucunuzdan gelecek e-posta bildirimlerini almaya başlayabilirsiniz..<br /></p>bedohttp://www.blogger.com/profile/13417455642494433993noreply@blogger.com0