Categories
Açık Kaynak İşletim Sistemleri PHP Programlama Yazılım

Ubuntu’da PHP Geliştirme Ortamı Kurmak 2021

Kurulumuna başlamadan önce kullanacağımız alet çantasına bir bakınalım. Bu yazıda bir LEMP stack tabanlı yani Linux, Nginx, MySQL ve PHP yığınının kurulumunu anlatacağım.

  • Nginx : Özetle kullanıcıdan gelen istekleri yönetmeye yarayan web sunucu yazılımı. Apache kullanımı günden güne düştüğü için seçimimi Nginx tarafında kullandım.
  • MySQL : Açık kaynak kodlu ilişkisel veritabanı.
  • PHP : Geliştirme yapacağımız yazılım dili.
  • Curl : Çeşitli protokolleri kullanarak veri transferi yapmaya sağlayan yazılımdır.
  • Composer : PHP paketleri için paket yönetimi yazılımı.
  • Git : Sürüm kontrol sistemi.
Categories
Açık Kaynak PHP Programlama

Gnu/Linux’da PHP Ayıklama(Debugging)

Yazılım yapısı gereği karmaşık bir iştir. Bu nedenle yazdığımız yazılımın sonucunda belmediğimiz hatalarla karşılaşabiliriz ve bazen hata mesajları tek başına bir şey ifade etmez. Her adımı var_dump() ve print_r() ile yazdırmakta çok kullanışlı değildir.

PHP derlenen (compiled) değil yorumlanan (interpreted) bir programlama dilidir. Bundan dolayı çoğu geliştirme ortamında (IDE) ayıklama (debugging) özelliği varsayılan olarak gelmez. Bu nedenle bir ayıklama aracı yüklememiz gerekiyor. Bu yazıda bu konu en popüler debug aracı olan Xdebug ile Nginx+ Visual Studio Code yapılandırmasında anlatılıyor. Dilerseniz anlatılanları kendi yapılandırmanıza uyarlayarak kurulumu gerçekleştirebilirsiniz.

Categories
Laravel PHP Programlama Yazılım

Windows Ortamında Laravel Task Scheduler ile Çalışmak

Bir Web uygulaması geliştiriken yaşanan en büyük sıkıntılardan biride cron joblarların versiyon kontrol sistemine dahil edilemiyor olması. Bunun için Laravel’de tek cron job ile tüm zamanlanmış görevlerin yapılmasına olanak sağlayan bir sistem bulunuyor.Bu sistemi Windows test ortamında cron job olmadığı için bunu bir şekilde benzetim yaparak halletmeniz gerekiyor. Bunun için araştırma yaptığımda ilgili StackOverFlow makalesine ulaştım. Anladım ki bu işlemi Windows görev zamanlayıcısı (Windows Task Scheduler) ile halledebiliriz. Bunun için öncelikle not defteri açıp aşağıdaki kodları kendimize göre düzenleyip .bat olarak herhangi bir yere kaydedelim.

Categories
Laravel PHP Programlama Yazılım

Laravel’de getID3 Paketi ile Dosyalardan Metadata Çekmek

Bildiğiniz composer (Besteci, bestekâr demek aynı zamanda ) paket yönetici sağolsun pek çok php kütüphanesini kendi projemize tereyağından kıl çeker gibi ekleyebiliyoruz. Bu yazıda bunlardan biri olan getID3 paketini kullanacağız.

Categories
Laravel PHP Programlama Yazılım

Laravel’de MP3 Dosya Tipi Doğrulaması (Validation)

Her ne kadar Laravel frameworkünün belgelendirmesinin ne kadar iyi olduğu ile övünsekte bazen bazı eksiklikler gözümüzden kaçmıyor değil. Bir proje için serverda dosyaya mp3 doğrulama işlemi yapmam gerekti. Bunun için mimes: kuralını uyguladım yani ;

$this->validate($request, array(
                'audio'=>'required|mimes:mp3,m4a,mp4,m4r',
            ));
Categories
Açık Kaynak İşletim Sistemleri Yazılım

Ubuntu’da Etkin Ekran Görüntüsü Kaydetme

Ubuntu kullanırken en çok aradığım yazılımlardan biride sadece Windows ortamını destekleyen Lightshot isimli ekran görüntüsü alma aracıydı. Temel ekran kaydetme işleminde tüm ekran kaydedilmesine rağmen bu yazılımla ekranın sadece istenilen bölgesi işaretlenip sabit disk yerine direk panoya (clipboard) kopyalayabiliyor veya internete yükleyip bağlantısını bize verebiliyor. Ayrıca işaretlenen bölge üzerinde basit sansürlemeler üzerini çizmeler, işaretler yapılabiliyor. Sitesinde yazılımın direk Linux sürümleri için çıkartılan bir paketinin olmadığını ama istenilirse Wine ile yüklenebileceği yazıyor. Buna rağmen wine ile yüklemek başarılsa bile uyumluluk sorunları nedeniyle kullanımı Windows’daki rahatlığı vermiyordu. Linux için bu tarz bir araç ararken karşılama Flameshot çıktı. Flameshot tam olarak tüm ihtiyaçlarımı karşılıyor. Hatta Lightshot’dan bile daha iyi olduğunu söyleyebilirim.

Categories
Laravel PHP Programlama Yazılım

Laravel Eloquent Event Kullanımı

Laravel veya herhangi bir framework kullanırken mutlaka event (olay) ve listener (dinleyici) mantığına ihtiyaç duyuyoruz. Eğer Laravel kullanıyorsanız işinizi kolaylatıracak bir tüyo vermek istiyorum. Bu yazının devamında kullanacağımız kısımlar için Laravel’in event/listener yapısını biliyor olmanızı öneririm. Eğer bilmiyorsanız buradan resmi belgelendirmeden yararlanabilirsiniz.

Categories
İnternet Sistem Yönetimi Yazılım

Hosting İşlemleri için Kolay Server Kurulumu : Digital Ocean + ServerPilot + Cloudflare

2011 yılında açtığım ilk blogumdan itibaren Türkiye’de iyi hosting firması arama maceram başladı. Ucuz diye alınan birkaç hosting firmasından hiç memnun kalmadım hatta birinden çoğu zaman mail atamadığımızı, attığımız maillerin spama düştüğünü söylediğimizde anlık hata olduğunu belirttiler ancak olayın üzerine gittiğimizde “başka bir firmaya geçebilirsiniz” diye cevap bile aldım. 🙂 (Yapma ya hiç aklımıza gelmedi) Pahalı ve kaliteli olduğu söylenen yerli firmalarda ise neredeyse hepsinin Türk Telekom altyapısını kullanması sebebiyle TT’nin veri merkezinde yaşanan en ufak sıkıntıda sitelere erişilemez hale geliyordu.  Yurt dışı firmalar ise normal fiyatlarının pahalı olması ve zamanla dolar kurunun yükselmesi nedeniyle kullanılmaz oluyordu. Zamanla site sayısınında artması da tüm bunların üstüne tuz, biber oldu.

Categories
Yazılım

Attaching an entity of type ‘Entity Adı’ failed because another entity of the same type already has the same primary key value. This can happen when using the ‘Attach’ method or setting the state of an entity to ‘Unchanged’ or ‘Modified’ if any entities in the graph have conflicting key values. hatası

Merhaba sevgili kod severler, 🙂

Yine kod yazmakla geçen gecelerim birinde Entity Framework  code first yaklaşımı ile tablo bağımsız update işlemi yapmak amacı  aşağıdaki kodu yazdım. kodların geri kalan kısmında ilgili context ile diğer nesnelerim ve generic class için Tentity adında bir sınıf oluşturdum.

Categories
Yazılım

Package Manager Console “provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified” hatası

Bir yazılım projesi  için Entity Framework Code First migration uygulamamam gerekti ancak Package manager console’da “Update-Database” komutunu çalıştırınca aşağıdaki hatayı aldım.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified