Gitlab CE Lokal SSL

Gitlab’ın self-hosted sürümünü sadece lokalde kullanmak isterseniz, url internete açık olmadığında Let’s Encrypt ile otomatik olarak SSL oluşturamıyor. Yalnızca ip ile erişimde ise genellikle ücretli olarak SSL alma şansı bulunmuyor.

Bu yüzden https kullanmak için self-signed SSL oluşturmak gerekiyor.

Öncelikle /etc/gitlab/gitlab.rb dosyası içerisinde aşağıdaki değişiklikler gerekli.

Ben ip adresi kullanacağım için external_url‘i o şekilde ayarlıyorum.

external_url "https://10.0.0.5"

Let’s Encrypt’i devre dışı bırakalım

letsencrypt['enable'] = false

SSL dosyaları için etc/gitlab/ssl dizini oluşturalım

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl

OpenSSL ile bir self-signed sertifika oluşturalım

cd etc/gitlab/ssl
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout 10.0.0.5.key -out 10.0.0.5.crt -subj "/CN=10.0.0.5" \
  -addext "subjectAltName=DNS:10.0.0.5,IP:10.0.0.5"

Son olarak Gitlab’ı yeniden konfigüre edelim

sudo gitlab-ctl reconfigure

Not: Eğer daha önceden sistemde sertifika varsa ve sadece openssl ile yenileme yapıldıysa, reconfigure komutu işe yaramayacaktır. Bunun yerine NGINX yenileme için aşağıdaki komut kullanılabilir

gitlab-ctl hup nginx

MySQL Foreign Key (Dış Anahtar) Kontrolü

Bildiğiniz gibi MySQL, ilişkisel bir veritabanı yönetim sistemi(RDBMS). Bu da demek oluyor ki doğru tablo motoru kullanıldığında tablolar arasında ilişkilendirmeler yapabiliyoruz.

Bu yazımda ilişkilendirilmiş tablolarda düzenleme yapılması sonrasında alınacak aksiyonlara değineceğim. Öncelikle InnoDB yada diğer ilişkisel tablo motorlarından birini kullanmamız gerekiyor. MyISAM ne yazık ki bu desteğe sahip değil.

Bu konuyu en iyi anlamak ve anlatmak için örnek bir senaryo üzerinden gitmenin daha iyi olacağını düşündüm. İnternette çok sık karşımıza çıkan bir yapı var ve ben bunu en temel haliyle ele almak istiyorum. Konu: üyenin sitenizden bir ürün satın alması, yani e-ticaret. Devamını oku

Yii2 ile 404 Hatalarını Anasayfaya Yönlendirmek

Bazı durumlarda sitelerimizde kullanıcıya yada arama motorlarının botlarına hata sayfası gözükmesindense, belirli bir sayfaya yönlenmelerini tercih edebiliriz.

Bu konuda yii framework basit bir yöntem sunuyor; Response komponenti.

config/web.php dosyanızda components bölümü altında aşağıdaki kodları yapıştırıp kullanabilirsiniz.

Burada if ($response->statusCode == 404) satırına isterseniz 500 yada farklı hataları da yakalaması için ekleme yapabilirsiniz. Hatta 404 için ayrı tasarım sayfaları da bu yöntemle farklı url’lere yönlendirilebilir.

config/web.php örnek dosyasının tamamı için burdan buyrun.

Apache X-SendFile (mod_xsendfile) Kurulumu

X-SendFile eklentisi Apache (yada nginx, lighttpd vb.) üzerinden hem sunucu belleğini yormadan hemde dizini açık etmeden kullanıcıların dosya indirebilmesi için kullanılır.

Bu eklenti özellikle digital goods diye tabir edilen dijital indirmeler yapabildiğiniz sitelerde(codecanyon, themeforest, cozumeks.com gibi) hem herkese açık dizinde dosyaları barındırmamak hemde kullanıcının satın aldığı ürünü session gibi sistemlerle kontrol etmek için oldukça sık kullanılır.

Genellikle CPanel, Plesk yada Vesta gibi panellerle birlikte kurulu gelmiyor. O yüzden kendiniz kurmak ve yapılandırmak durumundasınız.

CentOs / RHEL için kurulumuna bakalım; Devamını oku

MAMP Server Sayfa Yenilemelerindeki Yavaşlama

Geçen gün localhost üzerinde geliştirme yaparken, sitelerin bazen çok yavaş çalıştığını farkettim. Neredeyse 15-20 sn kadar hemde.

Ben MacOs Yosemite üzerinde MAMP Pro kullanıyorum. Sorunun bununla alakalı olabileceğini düşündüm ki, öyleymiş. Yosemite üzerinde Bonjour adında bir servis var. Bu servis Mamp üzerindeki .local uzantılı virtual server’lar ile çakışıyor. Bonjour, session dosyalarını kilitliyor ve PHP virtual server ile aynı dosyayı okumaya çalışınca beklemek durumunda kalıyor.

Gelelim çözüme; en basit çözümü .local uzantılı serverları .dev yada benzeri ile değiştirmek. Yok eğer ben illa .local olarak kullanacağım derseniz de /etc/vhosts dosyasını aşağıdaki gibi ayarlamanız gerekli:

Ardından dns önbelleğini temizleyin ve gerekiyorsa tarayıcınızı yeniden başlatın.

Google Analytics ile Ekran Çözünürlüğü Raporu Oluşturmak

Google analytics’e girip hesabınıza bağlı bir görünüm seçtiğinizde Kitle > Genel Bakış adımından mobil oturumların ekran çözünürlüklerini kolayca görebiliyoruz. Peki ya masaüstü ekran çözünürlükleri ?

Analytics, sol menüde bulabileceğiniz genel raporlarında bu metriklere yer vermiyor. Ancak bu verileri tutuyor ve özel raporlar aracılığıyla görüntülememize izin veriyor. Biz de şimdi bir özel rapor oluşturalım;

Devamını oku

Vesta Kontrol Paneli Percona Kurulumu

Vesta’dan daha önce kısaca bahsetmiş, kullanıcı dostu ve basit arayüzü, ücretsiz olması gibi avantajların tercih sebebi olduğunu söylemiştik. Bugün de varsayılan olarak hazır halde gelen MySql’in yerine Percona’nın nasıl kurulacağını göreceğiz.

Percona da, aynı MariaDB gibi Mysql temel alınarak geliştirilen bir veritabanı motoru. Özellikle InnoDB’ye alternatif olarak geliştirilen XtraDB isimli depolama motoru sayesinde çok daha kararlı ve hızlı çalışıyor. Aynı zamanda kaynak tüketimi açısından da daha verimli olduğunu söyleyebilirim. Devamını oku

CentOs 7 LAMP Stack Kurulumu

CentOS ekibi bundan yaklaşık 1 yıl kadar önce 7. sürümün kararlı halini indirmeye sundu. Önceki sürümlere kıyasla çok büyük farklılıklar taşımasa da, MariaDB ve systemd gibi bazı radikal değişiklikler mevcut.

CentOs 7 hakkında kendi web sitesinden daha detaylı bilgiye ulaşabilirsiniz. Biz kuruluma geçelim. Devamını oku

Vesta Kontrol Panelinden SSL Zorunluluğunu Kaldırmak

Vesta, ücretsiz, hafif ve kullanımı kolay bir hosting kontrol paneli. İlk kurulduğunda varsayılan olarak panel SSL desteğiyle geliyor. Eğer Vesta CP ile birlikte SSL desteğini kullanmak istemiyorsanız /usr/local/vesta/nginx/conf/nginx.conf dosyasındaki SSL ile başlayan satırları kaldırmanız yada yorum içine almanız yeterli.

yazarak dosyayı açalım. Aşağıdaki satırları bulup değiştirelim;