Localhost’ta Kurulu WordPress güncellemesi

Wordpress üzerinde çalışan bir çok yazılım geliştirici yazdığı kodları kendi bilgisayarında kurulu web sunucusu üzerinde test eder. Bende geliştirmekte olduğum Notices-Duyurular eklentisinin denemelerini kendi bilgisayarımda kurulu olan web sunucusunda (localhost) test ediyorum. Localhost üzerinde Wordpress kurduğumda en çok karşılaştığım sorun güncellemeleri panel üzerinden yapamıyor olmaktı. Wordpress çekirdek güncellemesini wordpress.org üzerinden indirip dosyaları arşivden çıkartarak güncelleme yapabiliyoruz fakat dil paketi güncellemelerini zip arşivi olarak nereden indireceğimi bilmiyorum. Localhost üzerinde dil güncellemelerini nasıl yapacağımı araştırırken wp-config.php dosyasında ufak bir değişiklik yaparak bütün güncellemeleri tıpkı gerçek sunucu ortamında olduğu gibi otomatik olarak yapabileceğimi öğrendim.

Bu işlem için ilk önce wordpress wp-content dizininin ve wp-config.php dosyasının localhost (www-data) tarafından düzenlenebiliyor olması gerekiyor. Bu dizinler için dosya izinleri aşağıdaki gibi olmalı (your-user linux kullanıcı adınızı temsil etmekte) :

[bash]drwxrwx— 8 your-user www-data 4096 sep 12 11:11 wp-content
-rw-rw—- 1 your-user www-data 3897 sep 12 10:54 wp-config.php[/bash]

Dosya izinleri hakkında daha fazla bilgi için Dosya izinleri – Linux yazısını inceleyebilirsiniz.

Dosya izinlerini ayarladıktan sonra wp-config.php dosyasını açarak aşağıdaki kodu eklediğinizde artık localhost üzerinden wordpress güncellemelerini yapabilirsiniz.

[php]define(‘FS_METHOD’,’direct’);[/php]

İyi çalışmalar.

Devam

Composer update hatası error:14090086

Composer php için hazırlanmış bir bağımlılık yönetim uygulamasıdır. Size projenize kolay bir şekilde kütüphaneleri ekleme ve güncelleme işlemlerinde kolaylık sağlar. Sürekli güncellenen açık kaynak kütüphaneleri projenizde kullanmak ve güncel tutmak istediğinizde en büyük yardımcınız composer olacaktır. Ben composer i laravel framework ile hazırladığım projelerimi  güncel tutmak için kullanıyorum. Bu yazıda composer kullanırken karşılaştığım bir sorunun çözümünü anlatacağım. Daha önce yaşadığım bu sorunu uzun araştırmalar sonrası çözmüştüm. Bu gün bilgisayarımı formatladıktan sonra karşılaştım ve tekara araştırma yapmak zorunda kaldım. Bir daha ki sefere aramamak için ve aynı sorunla karşılacak diğer geliştiricilerin faydalanması için çözümü burada yazmaya karar verdim.

Hata composer update yada composer self-update komutunu verdiğimizde kaşımıza çıkıyor. Karşımıza çıkan hata tam olarak şöyle:

[bash][ComposerDownloaderTransportException]
The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed [/bash]

Bu hata bilgisayarımızda kurulu olan PHP nin openssl yapılandırmasından kaynaklanıyor. PHP ssl sertifikasını bulmak istediği yerde bulamadığı için karşımıza bu şekilde bir hata çıkıyor. Bu hatanın çözümü için ilk önce PHP nin ssl sertifikalarını nerede bulmak istediğini öğreniyoruz. Bunun için konsolda aşağıdaki komutu çalıştırıyoruz:

[bash]php -r “print_r(openssl_get_cert_locations());”[/bash]

komutun çıktısı aşağıdakine benzer olacaktır.

[bash]Array
(
[default_cert_file] => /usr/lib/ssl/cert.pem
[default_cert_file_env] => SSL_CERT_FILE
[default_cert_dir] => /usr/lib/ssl/certs
[default_cert_dir_env] => SSL_CERT_DIR
[default_private_dir] => /usr/lib/ssl/private
[default_default_cert_area] => /usr/lib/ssl
[ini_cafile] =>
[ini_capath] =>
)
[/bash]

İkinci adım olarak aşağıdaki komut ile sertifika dosyasını indiriyoruz.

[bash]wget http://curl.haxx.se/ca/cacert.pem[/bash]

Son olarak indirdiğimiz sertifika dosyasını PHP default_cert_file dizinine kopyalıyoruz(bu dizini bir önceki komut ile öğrendik).

[bash]sudo mv cacert.pem /usr/lib/ssl/cert.pem[/bash]

Son olarak ne olur ne olmaz diye apache sunucumuzu yeniden başlatıyoruz:

[bash]sudo service apache2 restart[/bash]

Artık proje dizininize gelip composer update komutunu verdiğinizde projenizin kütüphaneleri güncellenecektir. İyi çalışmalar.

Devam

PHP de ”(Boşluk) ve null farkı

Bilgisayar açısından her değerin bir karşılığı vardır.Bu durumdan dolayı boş değişken diye bir değişkenden söz edildiği zaman bu değişkenin değeri null olarak tanımlanmış  demektir. Ama bir çok yazılımcı boş değişken tanımlamak istediklerinde ‘ ‘ değerini kullanılıyorlar.Bu kullanım yanlış bir kullanım şekli olmuş oluyor. bu iki değerin nasıl farklı sonuçlar verdiğini görmek için aşağıdaki kodları inceleyebilirsiniz.

[php]
$a=”;
$b=null;

if(isset($a)): echo "isset ” = true <br>"; else: echo "isset ” = false <br>"; endif;
if(isset($b)): echo "isset null = true <br>"; else: echo "isset null = false <br>"; endif;
echo "<br>";
if(empty($a)): echo "empty ” = true <br>"; else: echo "empty ” = false <br>"; endif;
if(empty($b)): echo "empty null = true <br>"; else: echo "empty null = false <br>"; endif;
echo "<br>";
if(is_null($a)): echo "is_null ” = true <br>"; else: echo "is_null ” = false <br>"; endif;
if(is_null($b)): echo "is_null null = true <br>"; else: echo "is_null null = false <br>"; endif;
echo "<br>";
if($a==$b): echo "”==null true <br>"; else: echo "”==null false <br>"; endif;
if($a===$b): echo "”===null true <br>"; else: echo "”===null false <br>"; endif;[/php]

Çıktı :

isset ” = true
isset null = false

empty ” = true
empty null = true

is_null ” = false
is_null null = true

”==null true
”===null false

Devam

CKEditor Kullanımı – Dosya Yöneticisi

Marhabalar,

CKEditor Kullanımı  yazı dizisine Dosya yöneticisi ile devam ediyoruz.Metin  editöründe en çok  ihtiyacımız olan şeylerden biride ortam dosyalarımızın yani resim,video,müzik ,vb.  dosyaların yönetilmesini saplayan dosya yöneticidir. Dosya yöneticisi ile dosyalarınızı tek bir noktadan yönetebilirsiniz.Yeni dosya yükleme düzenleme silme ve gönderilerinize ekleme işlemlerini  dosya yöneticisi ile kolayca yapabilirsiniz.Herhangi bir dosya yöneticiniz yoksa CKEditor de yazınıza resim  eklemek istediğinizde resmin url adresi ile resmi  ekleyebileceksiniz bunun için resmi  daha önceden sizin internete yükleyip url  adresini kaydetmeniz  gerekiyor, bu şekilde  kullanım hiç kullanışlı değil.

[caption id="attachment_2105" align="aligncenter" width="527"]ckeditor-resim-upload Resim yüklemek için herhangi bir buton yok[/caption]

Bu yazımda ücretsiz olarak dağıtılan Roxy Fileman isimli  dosya yöneticisinin CKEditor ile  bağlantısının nasıl  yapılacağını  anlatacağım.İlk olarak  Roxy Fileman ı  sitesinden indiriyoruz ve sitemizin  ana dizinine yüklüyoruz.

[box type="download"]Roxy Fileman Download[/box]

fileman klasörü içindeki  Upload dizininin sunucu tarafından yazılabilir olduğuna dikkat ediyoruz. Sonrasında CKEditor e dosya işlemlerinde fileman ı kullanması  için bir kaç  tanımlama yapmamız gerekiyor.Bunu CKEditor config dosyasında yada CKEditor u  eklediğimiz sayfadan yapabiliriz.

CKEditor config dosyası ile :

[code lang="js"]
/**
 * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
    config.language = 'tr'; //CKEDITOR arayüz dili
    config.uiColor = '#9AB8F3';// CKEDITOR arayüz rengi
    config.colorButton_colors = '000000,FF0000,00FF00,0000FF';//yazı renk butonunun renkleri
    config.colorButton_enableMore = false; //belirtilenler dışında renk  seçimini  engelleme
    config.contentsLanguage = 'tr';//Editör içeriği oluşturmak için kullanılan yazı dilinin dil kodu.
    
//Dosya Yöneticisi
    config.filebrowserBrowseUrl = '/fileman/index.html';// Öntanımlı Dosya Yöneticisi
    config.filebrowserImageBrowseUrl = '/fileman/index.html?type=image'; // Sadece Resim Dosyalarını Gösteren Dosya Yöneticisi
    config.removeDialogTabs = 'link:upload;image:upload'; // Upload işlermlerini dosya Yöneticisi ile yapacağımız için upload butonlarını kaldırıyoruz
    //---------
};
[/code]

Config dosyası  ile yaptığımız  tanımlama tüm editor leri  etkiler.

HTML içerisinde :

[code lang="html"]<!DOCTYPE html>
<html>
<head>
<title>CKEditor Örnek</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--Ckedtor ana dosyasını  ekleyelim-->
<script src="ckeditor/ckeditor.js"></script><!--ckeditor dosyaları  bu  dosya ile aynı  dizinde-->
</head>
<body>
<form method="post" action="">
<textarea name="editor1" id="editor1" rows="10" cols="80">
Gelişmiş elemanları bulunan metin alanı
</textarea>
<input type="submit" value="Kaydet">
</form>
<script>
CKEDITOR.replace('editor1',{
filebrowserBrowseUrl:'/fileman/index.html', // Öntanımlı Dosya Yöneticisi
filebrowserImageBrowseUrl:'/fileman/index.html?type=image', // Sadece Resim Dosyalarını Gösteren Dosya Yöneticisi
removeDialogTabs: 'link:upload;image:upload' // Upload işlermlerini dosya Yöneticisi ile yapacağımız için upload butonlarını kaldırıyoruz
});
</script>
</body>
</html>[/code]

Bu değişiklikleri  yaptıktan sonra CKEditor ile yazılarınıza resim eklemek çok kolay bir hal  alacak:

ckeditor-resim-upload1ckeditor-resim-upload2

 

[box type="tick" style="rounded"]
Diğer yazılar:

CKEditor Kullanımı – Kurulum
CKEditor Kullanımı – Ayarlar
CKEditor Kullanımı – Toolbar Düzenlemesi
CKEditor Kullanımı – Ajax Post
[/box]

 

 

Devam

Laravel 4.* IDE Helper – Otomatik Kod Tamamlama

Yazılımcının  en büyük  yardımcısı  kullandığı IDE dir.Yazdığı kodların otomatik olarak düzene sokulması, kod yazarken otomatik kod tamamlama,versiyon takip sistemleri ile çalışma kolaylığı sağlama gibi bir çok yardımcı özeliğe yazılımcılar IDE kullanarak kavuşur.

oto_kod_tamamlamaIDE lerin en önemli özelliği otomatik kod tamamlama özelliğidir. Örneğin foreach döngüsü oluşturacağınız zaman for yazdığınızda IDE size otomatik olarak yazdığınız  harflere göre kullanılabilir kodları listeleyecek siz de arasından yazmak istediğiniz kodu seçip hızlı bir şekilde yazmaya devam edeceksiniz.

parametrebilgisiKullanacağınız  fonksiyonun alacağı parametrelerin ne olduğunu, türlerini size otomatik olarak göstererek  parametreleri öğrenmek için fonksiyonun tanımlamasına dönüp bakmaktan sizi kurtarır.

Laravel gibi gelişmiş frameworklerde bu özellik tam olarak istendiği gibi çalışmayabiliyor. Örneğin yönlendirmeleri kontrol etmek için kullanılan Route sınıfını yazarken kod tamamlama özelliğini kullandığımızda sınıfın tam yolunu kullanarak kodlara ekliyor oysaki  doğru çalışabilmesi için sadece Route:: şeklinde yazılması gerekiyor.

[php]

IlluminateSupportFacadesRoute:: //Yanlış

Route:: //Doğru

[/php]

Bu nedenden dolayı “Rote::” dan sonra yazılacak fonksiyonlar ve onların parametreleri de doğru bir şekilde gösterilemiyor.

Bu sıkıntıyı çözmek için Laravel  fonksiyonlarını ve sınıflarını IDE mize doğru bir şekilde bildirecek bir uygulama geliştirilmiş ve geliştirilmeye devam ediyor. Bu uygulamaya https://github.com/barryvdh/laravel-ide-helper adresinden ulaşabilirsiniz.

Laravel IDE Helper Kurulumu

LAravel ide helper uygulamasını kendi projenize eklemek için yapmanız gereken işlemler çok basit. İlk önce projemizin Laravel sürümünün güncel olmasını sağlamak için projemizin ana dizinde şu komutu çalıştırıyoruz:

[bash]composer update[/bash]

Bu komutu çalıştırdıktan sonra ide helper uygulamamızı composer.json dosyamıza eklemek için :

[bash]composer require barryvdh/laravel-ide-helper:1.*[/bash]

komutunu çalıştırıyoruz.Composer in güncelleme işlemi bittikten sonra Projemizdeki app/config/app.php dosyasını açıp Service Providers(Servis Sağlayıcılar) dizisine

[php]‘Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider’,[/php]

satırını  ekliyoruz.  Bu işlemleri yaptıktan sonra artık ide-helper dosyamızı oluşturabiliriz. Bunun için projemizin ana dizininde

[bash]php artisan ide-helper:generate[/bash]

Artık kullandığınız ide Laravel projelerinizde de size doğru bir şekilde kolaylık sağlayabilecek.

[box type="info"]Daha fazla bilgi  için uygulamanın readme dosyasını inceleyebilirsiniz.[/box]

Devam