genel-sorular

Centos SSH Sensors Check

Linux Centos sunucularda sunucu değerlerinin takip edilmesi gerekebilir render sunucusu yada web sunucusu olarak kullandığımız sunucularımızın CPU sıcaklı değerlerini takip ederiz ki yüklenme durumlarını görebilelim .

Centos sunucumuza SSH üzerinden bağlantı sağlayalım ve aşağıdaki kodları sırasıya uygulayım ;

 
  sudo yum install lm_sensors
  sudo sensors-detect

sensor tarama modülümüzü yükledik şimdide çıktımıza bakalım

 

 sensors

 

Direct Admin CustomBuild Update

Direct admin her geçen gün kendini geliştiren ve sürekli yeni özellikleri bünyesine ekleyen dev paneller arasında hızla yükselmeye devam eden bir web hosting kontrol panelidir.

Direct admini ilk versiyonundan beri kullananlar bu değişimi çok iyi farkedeceklerdir, direct admin en stabil centos 7 sunucularda çalışır ve bu sunucuları SSH üzerinden kolayca update ile güncelleyebiliriz peki http yada mysql yada curl gibi ekstra pluginlerin son versiyonlarını nasıl kullanabiliriz .

Bu aşamada direct admin costumbuild 2.0 yardımcı olacak plugin olarak yüklenen ve tüm servisleri ve buildleri kontrol edebileceğimiz bu plugin sayesinde sorunsuz güncellemeler ve re-build ler sağlayabiliriz. eğer costumbuild 2.0 kurulu ise yine güncelleme işlemlerimize SSH üzerinden gerçekleştirmek isteyebiliriz bu durumda aşağıdaki satırları SSH üzerinden sırasıyla uygulamalıyız.

 
cd /usr/local/directadmin/custombuild
./build update
./build all d
./build rewrite_confs

 

java-script-dersleri

JS Timer Count Down – Geri Sayar

Javascript ile belirlenen zamandan geriye sayım için bir sayaç yapmak oldukça basit bir işlem , bu yazımızda geri zaman sayar yapacaz.

Öncelikle HTML alanını oluşturalım  ;

<span id="sayac"></span>

Sonrasında JS Fonksiyonumuzu yazalım

 
 $(function(){
     var saat = 12;
     var dakika = 0;
     var saniye = 0;
     var sayac = setInterval(function(){
            if(dakika == 0 && saniye == 0){
                saat--;
                saniye = 60;
                dakika = 60;
            }
            if (dakika != 0 && saniye == 0) {
                dakika--;
                saniye = 60;
            }
            if (saniye != 0) {
                saniye--;
            }
            if(saniye == 0 && dakika == 0 && saat == 0){
                clearInterval(sayac);
            }
            $("#sayac").html(saat+":"+dakika+":"+saniye)
     },1000)
 })

 

geri sayım sayacımız hazır artık projelerimizde kullanabiliriz,

react-native-dersleri-ogren

Neden React Native

React native bir cross platform uygulama geliştirme kütüphanesi-dilidir , Neden react native sorusuna en güzel yanıt ne yapmak istiyoruz sorusuna verilecek cevap ile aynı olacaktır.

Ne yapmak istiyoruz sorusu ile aynı cevap dedik çünkü bir programlama diline başlamak için öncelikle ihtiyaçlarımızı belirlemeliyiz sonrasında o dil ile ilgili kendimizi geliştirmeliyiz.

React native ile neler yapılabilir ?

“Write once run anywhere”

React native ile yazdığımız kod satırlarını Android , IOS , WEB platformlarının tamamında tek çıktı ile kullanabiliriz (istisnai componentler mevcut) .  React native ile bir web sitesinin daha doğrusu web uygulamasının mobil uygulamasını kolaylıkla JS bilgisi ile geliştirebiliriz, sonrasında alınan çıktı ile andrıid ve ios alanlarında derleme sağlanır ve mobil uygulama geliştirilmiş olur , Facebook iddiasına göre react native gerçekten “Native” imiş, ki bunu biz geliştiriciler yada kullanıcılar olarak performans tarafında kolaylıkla anlayabiliyoruz.(İonic vs. kullanınca)

Neden React Native ?

Bu soru için en güzel cevap yazım kolaylığı ve anlaşılabilir bir dil olması bunun sebebide JavaScript ile yazıyor olmamız , JS yıllardır Web için FrontEnd olarak kullanıldı ve yılların vermiş olduğu geliştirilme süreci ile stabiletisini kazanmış güçlü bir dil , JS alt yapısını kullanarak geliştirilen dilde component eklemeleri taglama ile ekleniyor ve bu yapısı neredeyse HTML ki bu yapıya JSX deniyor .  Eğer web dünyasına uzak değilseniz ve stabil bir yeni versiyon mobil uygulama geliştirme dili arıyorsanız bu React Native olacaktır çünkü Flutter gibi kendi içinde yeni ve sıfırdan yazılmış bir dil üzerine kurulmadı(Dart) ayrıca React native topluluğu oldukça fazla bunun en pozitif avantajı ise bir sorun ile karşılaştığınızda kolayca çözüm bulabiliyorsunuz.

Aslında bu tarz yazılım dilleri yeni çıkıyor ve neredeyse hepsi JS üzerinde kuruluyor ve tek kod yazımı ile tüm cihazlarda çalışacak diller hedefleniyor bunun tek sebebi artık teknoloji çok ilerledi ve herkes kolaylıkla teknoloji alanında uzamanlaşabiliyor ve kendi ekosistemini oluşturuyor , ilk zamanlarda  Symbian vardı sonra IOS sonra Andorid sonra Windows Mobil sonra derken sonra sonra onlarca mobil işletim sistemi bulunuyor ve çoğu işletim sistemi kendine göre üstün özellikleri var ama gelişim konusunda ekosistem farklılıklarından dolayı kısır kalıyor ve güçlü olamayan (yazılımcı yopluluğunu toplayamayan) silinip gidiyor. işte bu farklılıkları yok etmek için oluşturulan bu diller içinde en mantıklı react çünkü çoğu düzene karşı çıkmadan geliştirme yaparak kendi eko sistemini oluşturdu.

 

Linux Centos 7 Uzak Masaüstü Bağlantısı

Linux işletim sistemleride Windows gibi masaüstü desteği bulunmaktadır ve uzak bağlantı ile sorunsuz bir masaüstünden bilgisayar kullanma deneyimi yaşayabiliriz.

Daha önce bir çok sürümde ve linux dağıtımında tecrübelerim oldu ve bunların içerisinde en az sorun yaşadığım dağıtım Centos 7 ve masaüstü olarak ise GNOME oldu. Bu makalede düşünce yapısı olarak daha çok uzak sunucuda kurulum üzerinde durdum ancak kendi masaüstü bilgisayarınızdada linux kullanabilirsiniz ve Linux dağıtımı olarak ubuntu veya pardus kullanabilirsiniz ancak uzak sunucu olacaksa bu mutlaka Centos olmalıdır.

Öncelikle sunucumuza terminal bağlantısı sağlayalım sonrasında mutlaka öncelikle bir güncelleme yapalım  ;

 

 
 yum update -y

güncellemeyi yaptık sonrasında uzak bağlantıyı kuralım böylece sunucuya uzak bağlantı ile masaüstüne bağlanabiliriz ;

 
 sudo yum install -y epel-release
 sudo yum install -y xrdp
 sudo systemctl enable xrdp
 sudo systemctl start xrdp

Eğer sunucuda Firewall aktif ise ki bu centos 7 nin bazı sürümlerinde default olarak aktif geliyor bazılarında pasif geliyor hatta bazı sürümlerde firewall hiç bulunmuyo biliyor bu yüzden bu satırlarda Firewall Disabled çıktısı alırsanız şaşırmayın yada yanlış giden birşeylerin olduğunu düşünmeyin .

  
 sudo firewall-cmd --add-port=3389/tcp --permanent
 sudo firewall-cmd --reload

Artık GNOME desktop kurabiliriz ve böylece uzak bağlantı ile bilgisayara bağlandığımızda sorunsuz bir masaüstü ile karşılaşabiliriz.

 
 sudo yum groupinstall "GNOME DESKTOP" -y

artık kurulum tamamlandı ve bundan sonra GNOME default ayarlarını yapalım

 
 systemctl get-default
 sudo systemctl set-default graphical.target
 sudo systemctl isolate graphical.target

GNOME kurulumuda tamamdır artık sorunsuz bir uzak bağlantı (Uzak masaüstü bağlantısı) sağlayabileceğimiz bir sunucumuz bulunuyor .

NOT :

GNOME Kaldırmak istiyorsak aşağıdaki satırları sırasıyla uygulayabiliriz ;

 
 sudo yum groupremove -y "GNOME Desktop"
 sudo yum autoremove -y

 

named Servisi Yeniden başlama sorunu

Direct admin yada cPanel (cPanel kendi güvenlik önlemleri mevcut) farketmeksizin her iki paneldede restart sonrasında named sunucusu çökebilir.

Named servisi yani DNS sunucusu sunucuya reboot attıktan sonra sıklıkla yeniden başlamayabilir bu olağan bir durumdur çünkü her yeni hesap eklendiğinde bu hesaplara ait DNS yönlendirmeleri named conf içerisinde oluşturulur ve buradan yönlendirme alır ancak bazı durumlarda eklenen alan adında TR karakter içerebilir yada hesabı silinmiş bir hosting hesabının DNS zone yönlendirmeleri silinmeyebiliyor bu durumlarda Named servisi başlatılırken bu satırı okurken takılır ve devam edemez dolayısıyla DNS sunucunuz reboot sonrası çalışmaz , işte bu durumda aşağıdaki satırı SSH üzerinden çalıştırırız ve sorunlu satırı buluruz sonrasında bu satırı silerek named restart yaparak Named servisinin başlamasını sağlarız böylece sorunumuz çözülür.

 

 
 named-checkconf -z
 service named stop
 service named restart

 

Direct Admin User To Reseller

Direct admin de user / hosting olarak açılmış hesabı direk olarak reseller paketine geçiş yapılması mümkün değildir.

Direct admin yapısı gereği izinleme işleminde üç çeşit izin yapısı kullanır bunlar admin reseller ve user dır . yetkiler arasında arayüz üzerinden güvenlik gereği geçiş yapılması mümkün olmuyor kullanıcıyı direk oluştururken dilediğimiz izin altında oluşturabiliyoruz ancak izinler arasında geçişe izin verilmiyor .

İzin verilmeyen bu işlemi yalnızca SSH üzerinden gerçekleştirebiliyoruz bunun için sunucuya SSH ile bağlantı sağlayınız sorasında aşağıdaki kodları sırasıyla SSH üzerinden uygulayalım ;

 

 
cd /usr/local/directadmin/scripts
./user_to_reseller.sh <username>

 

PHP Dersleri

PHP Thermal Printer Yazdırma

Lan ile bağlanmış olan thermal printer (ESC POS) lar normal yazıcı standartlarıyla çalışmaz farklı bir protokol uygulanır.

Thermal printerlar ESC Pos adı ile geçerler ve serial olarak haberleşme kabul ederler ve windows standartlarında bulunan yazdırma protokolleri ile yazdıramazsınız özellikle bir MAC kullanıyorsanız bu işin yanında deveye hendek atlatmak daha kolaydır.

ESC POS ile yazıcı çıktısı almanız için PHP server ile thermal printer ınız aynı network ağı üzerinde olmalıdır ve sonrasında aşağıda paylaştığım kod yapısı ile bu işlemi kolayca yapabilirsiniz.

<?php

//constant
$rn=chr(13).chr(10);
$esc=chr(27);
$cutpaper=$esc."m";
$bold_on=$esc."E1";
$bold_off=$esc."E0";
$reset=pack('n', 0x1B30);

 
//formating data text:
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n\n\n\n\n\n";
$string .= $cutpaper;
$string .= $esc. chr(4) . chr(1);



//send data via TCP/IP port : the printer has tcp interface
$port = "9100";
$host = "192.168.1.210";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, $host, $port);
socket_write($socket, $string, strlen($string));
socket_close($socket);

ESC poslar genellikle 9100 portunu kullanır ancak ip adresi farklılık gösterebilir ESC POS ip adresini ağ taraması yaparak kolayca bulabilirsiniz yada modem üzerinden aldığı IP adresi kontrol edebilirsiniz.

PHP ioncube nedir ?

İoncube php dosyalarının içeriğinin şifrelenmesi için geliştirilmiş olan ücretli bir yazılımdır, ioncube ile tüm PHP dosyaları şifrelenebilir.

Şifrelenmiş PHP dosyalarını yalnızca ioncube yüklü sunucularda çalıştırabiliriz ve yalnızca bu php sorgularının çıktılarını izin verildiği ölçüde görebiliriz yani ioncube ile şifrelenmiş dosyaların içeriği anlaşılır şekilde okunamaz,

PHP ile yazılmış ve lisansladığınız projelerinizin / kodlarınızın çoğaltılmasını istemiyorsanız lisanslayarak ioncube ile şifreleyebilir böylece projenin kontrolü halen sizin elinizde olur ve izinsiz çoğaltılmasını engelleyebilirsiniz.

WHMCS ,  yada Worpdress için geliştirilmiş olan modüllerin lisanslarının korunması ve telif haklarının korunabilmesi için ilgili modüller ioncube ile şifrelenir ve yalnızca ioncube yüklü sunucularda okunabilir ve çalıştırılabilir, eğer ioncube yüklü sunucuda script çalışmıyorsa sorun yüksek ihtimal sürüm uyumsuzluğudur.

Site error: the file /home/content/html/wp-content/themes/dizilabx/functions.php requires the ionCube PHP Loader ioncube_loader_lin_5.6.so to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.

örnek bir hata kodu yukarıda verilmiştir, bu hatadan kurtulmanın iki yolu bulunuyor

  1. PHP Sürümü İstenilen ile tutarsız
  2. İoncube istenilen sürüm ile yüklü sürüm farklıdır

Direct Admin ioncube Kurulumu

Direct admin panelde default olarak PHP versiyonlarında ioncube gelir ancak bazı yazılımlar conf dosyasında aktif mi değil mi diye kontrol eder.

İşte bu kontrol den true dönmesi için ve ioncubenin varsayılan decoder olması için bir kaç satır kodla bu işlemi sağlayabiliriz. Yapacağımız işlem ile tüm PHP sürümleri için default olarak son sürüm ioncube update edilir ve tanımlama sağlanır .

cd /usr/local/directadmin/custombuild
./build update
./build set ioncube yes
./build ioncube

İoncube nedir ? 

Açık kaynak olmayan yani ticari olarak yazılmış olan PHP scriptlerinin kodlarının okunmasını engellemek veya müdahale edilmesini engellemek için ioncube firması tarafından geliştirilen şifreleme yazılımdır ve ücretlidir.

Encode edilmek istenen PHP sayfaları ioncube ile şifrelenir ve sonrasında ilgili anahtar olmadan bu sayfalar çözümlenemez, ioncube nin geçmiş sürümleri için şifrelemeler kırılabilmektedir ancak yeni sürümlerinde bu işlem oldukça zorlaşmıştır , işinin ehli bir şifre kırıcı yazılımcı bu işlemi yapabilmesi aylarını alabilmektedir.