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.

Direct Admin Kullanıcı Adı Sınırı Değiştirme

Direct admin ile domain eklerken ilgili domain için DA panel girişinde kullanılacak kullanıcı adının ilk kurulumdaki sınırı 8 dir.

cPanel sunucudan direct admin sunucuya geçiş yapmışsanız cPanelde kullanıcı adı limiti 15 dir, dolayısıyla hesap taşımalarında yada hesap oluşturmak için tanımlanan kullanıcı adı sınırında sorunlar yaşayabilmemiz normaldir.

Kullanıcı sınırını direct admin ile 8 ila 14 (dahil) arasında yeni değer belirleyebiliriz.

Öncelikle SSH ile DA panel sunucuya bağlanalım sonrasında aşağıdaki satırda belirlenen alanda güncelleme sağlayalım ;

/usr/local/directadmin/conf/directadmin.conf

yukarıdaki dosya yolunu nano ile açarak aşağıdaki satırı bulup değeri 8 ila 14 arasında bir rakam ile değiştirelim

max_username_length=

 

cPanel den Direct Admine Taşınma

cPanel sunucudan Direct Admin sunucuya geçiş işlemi cPanelden cPanel sunucuya site taşımak kadar kolay bir işlem .

cPanel sunucudan Direct Admin sunucuya hesap taşımak için öncelikle cPanel sunucuda sitenin yedeğini alalım

/scripts/pkgacct <kadi>

yedek aldıktan sonra bu .tar.gz yedeğini bilgisayarımıza indirmek yerine sunucudan sunucuya transfer sağlayalım ;

scp /home/cpmove-<kadi>.tar.gz <sunucuip>:/root/

 

artık cPanel sunucusunda işimiz bitti Direct Admin sunucusuna geçiş yapabiliriz ;

SSH ile bağlandıktan sonra cPanel yedeğini Direct Admin yedeği olarak görünmesi için dönüştürme sağlamamız gerekecek bunun için ufak bir .sh yüklemesi sağlamamız gerekiyor.

 

mkdir -p /root/cpanel_to_da
cd /root/cpanel_to_da
wget -O cpanel_to_da.sh http://www.custombuild.eu/cpanel/cpanel_to_da.sh
chmod +x cpanel_to_da.sh
wget -O cpanel_da_roundcube.php http://www.custombuild.eu/cpanel/cpanel_da_roundcube.php.txt
wget -O php_sql_parser.tar.gz http://www.custombuild.eu/cpanel/php_sql_parser.tar.gz
tar xzf php_sql_parser.tar.gz
rm -f php_sql_parser.tar.gz
mkdir -p /home/admin/converted_user_backup

artık Direct Admin yüklü sunucumuz cPanel > DA Yedek tanımlaması için hazır aşağıdaki kodu DA Panelde çalıştırdıktan sonra yedek geri yükleme alanında görünür hale gelecektir.

/root/cpanel_to_da/cpanel_to_da.sh /root/cpmove-<kadi>.tar.gz /home/admin/converted_user_backup

 

Direct Admin Let’s Encrypt Kurulumu

Direct admin panelde ücretsiz ssl sertifikası sunan Let’s Encrypt kullamabiliriz bu işlemide kolay şekilde gerçekleştirebiliriz.

Direct admin panel üzerinden User alanından SSL Management ile SSL sertifikasını kolay bir şekilde aktif edebilecek hale getiren Let’s SSL sertifikasının SSH üzerinden kurulumunu anlatıma geçelim ;

Öncelikle SNI Aktif ediyoruz

grep -q 'letsencrypt=1' /usr/local/directadmin/conf/directadmin.conf || echo 'letsencrypt=1' >> /usr/local/directadmin/conf/directadmin.conf

grep -q 'enable_ssl_sni=1' /usr/local/directadmin/conf/directadmin.conf || echo 'enable_ssl_sni=1' >> /usr/local/directadmin/conf/directadmin.conf

sonrasında SSH ile kurulum aşamalarına geçelim aşağıdaki satırları sırasıyla uygulayalım . ;

 

cd /usr/local/directadmin/custombuild/
./build clean all
./build update
./build update_versions
./build update_da
./build rewrite_confs

 

artık ücretsiz Let’s Encrypt sertifikası için DA panel üzerinden aktif olacak plugin kurulumu tamamlandı sonrasında DA ile erişimi sağlamanız durumunda SSL Management alanından SSL Sertifikasının kurulumunu kolayca sağlayabiliriz.

Eğer Direct Admin Panel üzerinden göremiyorsak yapmamız gereken son işlem ;

service httpd restart

service directadmin restart

 

Centos Linux DirectAdmin Kurulumu

Direct Admin Web hosting yönetim uygulamasıdır , en iyi şekilde centos sunucularda çalışır ve cPanel gibi oldukça kullanışlı ve hosting firmaları içinde ideal bir yazılımdır.

*Kurulum Centos 7 için anlatılmaktadır . ;

DirectAdmin kurulumundan önce Perl in sunucuda yüklü ve modüllerin hazır olması gereklidir.

yum install psmisc net-tools systemd-devel libdb-devel perl-DBI perl-Perl4-CoreLibs xfsprogs rsyslog logrotate crontabs file kernel-headers

ilk satırımı çalıştırdıktan sonra update yapalım öncelikle . ;

yum update -y

sonrasında kuruluma geçebiliriz ;

wget https://www.directadmin.com/setup.sh
chmod 755 setup.sh
./setup.sh

herşey bu kadar artık Direct Admin paneli kurulu SSH ile install işleminin sonunda size DA kullanıcı adı şifre ve port bilgisi verecek bunları bir yere not edin xxx.xxx.xxx.xxx:2222 şeklinde erişiminizde root kullanıcı adı ve şifresi değil kurulum sonrasında oluşan kullanıcı adı ve şifresi kullanılmaktadır.

JQuery – PHP (Trim) Crop and Upload Script

PHP ve JQUERY ile tasarladığınız form sayfanızda en sorunsuz şekilde kullanıcı dostu resim yükleme işlemi gerçekleştirmek için kolay bir method bulunuyor.

jquery-image-upload

Dosya seç tıklıyoruz ve resmimizi seçtikten sonra karşımıza aşağıdaki gibi bir popup geliyor , popup üzerinden istediğimiz alana TRİM uyguladıktan sonra yükle dediğimiz anda aşşağıda kodlarını paylaştığım PHP dosyasına resmi göndererek upload işlemi gerçekleşmiş oluyor.

Resim yükleme esnasında veya trim sonrasında herhangi bir sayfa yenileme işlemi olmadığı için sayfamızda form değerlerinde sıfırlama yada post get ile gelinmiş bir sayfa ise yeniden çalışma gibi bir durum oluşmuyor. Diğer bir avantajı resim dosyası ile birlikte diğer form bilgileri aynı anda gitmeyeceği için büyük boyutlu resim dosyalarında yüklenmeme gibi bir durum oluşursa tüm form yeniden doldurulmak zorunda kalmayacaktır.

 

jquery-trim-and-upload

 

Script HTML içeriği

 

<html>  
    <head>  
        <title>Resim Crop ve PHP upload işlemi</title>  
		
	
		< script src="jquery.min.js"></script>  
		< script src="bootstrap.min.js"></script>
		< script src="croppie.js"></script>
		<link rel="stylesheet" href="bootstrap.min.css" />
		<link rel="stylesheet" href="croppie.css" />
		
    </head>  
    <body>  
        <div class="container">
          <br />
      <h3 align="center">Resim boyutlandırma ve JQuery kullanarak PHP ile upload işlemi</h3>
      <br />
      <br />
			<div class="panel panel-default">
  				<div class="panel-heading">Resimi Seçiniz</div>
  				<div class="panel-body" align="center">
  					<input type="file" name="upload_image" id="upload_image" />
  					<br />
  					<div id="uploaded_image"></div>
  				</div>
  			</div>
  		</div>
    </body>  
</html>

<div id="uploadimageModal" class="modal" role="dialog">
	<div class="modal-dialog">
		<div class="modal-content">
      		<div class="modal-header">
        		<button type="button" class="close" data-dismiss="modal">×</button>
        		<h4 class="modal-title">Boyutlandır ve yükle</h4>
      		</div>
      		<div class="modal-body">
        		<div class="row">
  					<div class="col-md-8 text-center">
						  <div id="image_demo" style="width:350px; margin-top:30px"></div>
  					</div>
  					<div class="col-md-4" style="padding-top:30px;">
  						<br />
  						<br />
  						<br/>
						  <button class="btn btn-success crop_image">Boyutlandır yükle</button>
					</div>
				</div>
      		</div>
    	</div>
    </div>
</div>

Script JS İçeriği

 
$(document).ready(function(){

	$image_crop = $('#image_demo').croppie({
    enableExif: true,
    viewport: {
      width:200,
      height:200,
      type:'square' //circle
    },
    boundary:{
      width:300,
      height:300
    }
  });

  $('#upload_image').on('change', function(){
    var reader = new FileReader();
    reader.onload = function (event) {
      $image_crop.croppie('bind', {
        url: event.target.result
      }).then(function(){
        console.log('jQuery bind complete');
      });
    }
    reader.readAsDataURL(this.files[0]);
    $('#uploadimageModal').modal('show');
  });

  $('.crop_image').click(function(event){
    $image_crop.croppie('result', {
      type: 'canvas',
      size: 'viewport'
    }).then(function(response){
      $.ajax({
        url:"upload.php",
        type: "POST",
        data:{"image": response},
        success:function(data)
        {
          $('#uploadimageModal').modal('hide');
          $('#uploaded_image').html(data);
        }
      });
    })
  });

});

 

Script PHP içeriği

if(isset($_POST["image"]))
{
	$data = $_POST["image"];


	$image_array_1 = explode(";", $data);


	$image_array_2 = explode(",", $image_array_1[1]);


	$data = base64_decode($image_array_2[1]);

	$imageName = time() . '.png';

	file_put_contents($imageName, $data);

	echo '<img src="'.$imageName.'" class="img-thumbnail" />';

}

 

Projede kullanılan dosyalar indirmek için . ; LINK

 

 

Expo Native Base FontAwasome5 sorunu

Expo ve native base yeni versiyonlarında bir sorundur çözülemiyor ancak uzun araştırmalar sonucunda bu sorunuda çözdük .

Eğer yeni bir proje oluşturduysanız ve projenizde native base kullanıyorsanız expo start verdiğinizde aşağıdaki gibi hata ile karşılaşmaktasınız . ;

 

 Unable to resolve "@expo/vector-icons/FontAwesome5" from "node_modules/native-base/dist/src/basic/IconNB.js"

bu hatayı çözebilmek için öncelikle projenizden node_modules ve package.json.lock dosyalarını ve klasörülerini siliniz

silme işleminden sonra package.json dosyanızda native base satırını aşağıdaki gibi ayarlayınız ;

 

"native-base": "2.8.1",

 

bu işlemden sonra terminalden ;

npm install --cache /tmp/empty-cache

satırını çalıştırınız ve hatanız artık yok 🙂

expo yu çalıştırırkende aşağıdaki gibi start verirseniz kesin çözüm bulmuş olunacaktır.

 

expo start -c

 

Fotoğraf Sahtemi Kontrolü

Sosyal medya üzerinde sürekli siyasiler yada ünlülülere ait resimler paylaşılır hatta bu resim size bile ait olabilir , işte bu durumda bir resimin gerçek mi yoksa üzerinde oynama var mı bunu araştırmak artık çok kolay.

Tineye.com sayesinde bu resimlerin gerçek mi yoksa sahte mi olduğunu anlamanız çok kolay aslında sizin kullanıcı olarak yaptığınız hiç bir işlem yok az bir ingilizce sayesinde fotoğrafınızı bu siteye yükleyin sonrasında site size bu fotoğraf sahtemi yoksa gerçek mi hemen size sebebleri ile birlikte açıklasın .

Bu web sitesi kendi söylemlerine göre sizin yüklediğiniz hiç bir fotoğrafı hiç bir yere kaydetmiyor sadece üzerinde yapay zeka sayesinde bir araştırma yapıyor sonrasında size sonuçları veriyor sayfa gösteriliyor ve sizin verileriniz web sitesinden kaldırılıyor. Oldukça güvenli gibi …

Aynı zamanda bu site ile tarattığınız resimin orjinal resmi internet üzerinde mevcut ise bu resmide size bularak gösteriyor bu sayede sonuç gerçek mi sahtemi daha delilli şekilde ortaya serilmiş oluyor.

PHP Dersleri

PHP konusunda oniki yıllık bir tecrübem bulunuyor ve PHP dersleri verme konusundada oldukça hevesliyim , bu sayede sizin soracığınız sorulara ve yaşamış olduğunuz sorunalara yardımcı olmak isterim .

PHP ile uygulama geliştirme daha doğru web sitesi hazırlama işlemleri diğer dillere göre oldukça kolaydır ve kolay olmasından daha çok önemli olan geliştirici topluluğudur, eğer bir yazılım dili üzerinde uzmanlaşmak istiyorsanız ve kararsız iseniz yapılabilecek en iyi seçme methodu topluluğu nasıl , dil geliştirici firma geliştirdiği dile ne kadar önem veriyor ne kadar destek sağlıyor .

Sonrasında geliştiricisi olmak istediğiniz dil hakkında github üzerinden bir araştırma yapın ne kadar kullanıcı ne kadar ücretsiz yazılım sunmuş .

Ücretsiz yazılım denilince PHP nin eline su dökebilecek bir yazılım dili daha bulunmuyor , her zaman popüler olmuş bir sitenin / uygulamanın ücretsiz bir muadili mutlaka PHP ile biri yazmıştır ve github üzerinden yayınlanmıştır. Bir yazılım için para ödemek sizin için çok kabul edilebilir bir olay değilse mutlaka PHP geliştiricisi olun mesela wordpress , wordpress ile bir site yayınlamak sadece dakikalarınızı alacaktır , dakikalar içerisinde siteniz hazır , dakikalar içinde bir site hazır ise bu scriptin yazıldığı dil beni ne ilgilendirir diye bilirsiniz , bunu derseniz çok yanılırsınız diyelim bir sorun ile karşılaştınız ne yapacaksınız bu durumda ?

Bir diğer durum ise PHP nin yayınlanması , hemen hemen tüm hosting firmalarında mutlaka Linux sunucu bulunur ve cPanel ile site yayını yapmanız için çok cüzi miktarlara size hosting satışı gerçekleştirebilirler, burda biraz karşılaştırma yapmak istiyorum diyelim ASP yani .NET geliştiricisiniz burda sitenizi internette sağlıklı şekilde yayınlamak için Windows sunucu üzerinden yayın yapmalısınız , eğer sunucu sahibi değilseniz windows / plesk panel sunucular linux / WHM sunuculara göre daima bir tık daha pahallıdır. Yok hosting almayacak kendi sunucunuzu kuracaksınız işte işler burda sarpa sarar windows sorunların babasıdır , yaşayabileceğiniz sorunlar milyonlara ulaşabilir. Bu cümlem eleştiri alabilir ancak haklıyım , linuxde sorun yaşamaz mısınız evet yaşayabilirsiniz ancak o sorunu çözmeniz çocuk oyuncağıdır , çözemediniz mi cPanel yüklü ise bu sorunu cPanele destek bildirimi olarak iletin onlar sizin yerinize sunucudaki tüm sorunları çözüp size sorununuzu anlatır .

PHP Dersleri için ise google – youtube oldukça zengin kaynaklar içeriyor , yazının başındada bahsettiğim gibi milyonlarca PHP geliştiricisi bulunuyor ve yardım topluluğu oldukça yardım sever.

PHP 7.0 ile birlikte hiyararşisini oldukça değiştirdi ve güncelledi bu sayede scriptlerde %70 e varan hızlanmalar yaşandı , yani php 7.0 ile birlikte PHP derslerine başlamamanız için hiç bir neden bulunmuyor . PHP öğrenmesi kolay , geliştirmesi kolay ve en güzeli tüm herşeyi ÜCRETSİZ.

 

PHP ile sıklıkla kullanılan bir kaç yazılım bulunuyor  burada PHP geliştirmek için yada scriptinizi çalıştırmak için gerekli olacak tüm yazılımları sıralamak istiyorum , bunu sıralamamın sebebi PHP derslerinize bu yazılımları inceleyerek başlayın ön araştırmanızı yapın ve hemen şimdi öğrenmeye başlayın.

  • Apache veya Nginx
  • phpMyAdmin
  • MYSQL
  • Visiual Studio Code Editör
  • Wamp / Xampp
  • Linux / Centos
  • cPanel / WHM
  • FTP