Nginx Üzerinde Ücretsiz Let’s Encrypt SSL Kurulumu

İlk olarak repoyu çekip yüklüyoruz;

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

Güvenlik duvarında nginx için sadece http erişimlerine izin verilmiş olabilir. Eğer öyleyse https erişimlerini açmamız gerekecek. Kontrol etmek için;

ufw status

Gelen çıktı da Nginx Full yazıyorsa aşağıdaki 2 komutu yazmanıza gerek yok.

sudo ufw allow ‘Nginx Full’
sudo ufw delete allow ‘Nginx HTTP’

Daha sonra domaini tanımlıyoruz.

sudo certbot –nginx -d siteadi.com -d www.siteadi.com

Bu komuttan sonra kuruluma başlayacak ve http ile erişim yapıldığı zaman otomatik olarak https e yönlendirmek isteyip istemediğinizi soracaktır. Seçimizini yapıp devam edin. SSL sertifikanız kuruldu.

Kurulum bittiğinde ssl sertifikanızı süresi bittiğinde otomatik yenilenmesini istiyorsanız aşağıdaki komutu da çalıştırmalısınız.

sudo certbot renew –dry-run

 

 

Terminal Üzerinden Mysql Erişimi ve Default Password Değiştirme

Mysql’e erişmek için;
-u: Kullanıcı adını ifade eder. Bu flagdan sonra erişeceğiniz kullanıcı adını girmelisiniz
-p: Şifreyi ifade eder. komut çalıştıktan sonra root kullanıcısının şifresini isteyecektir.

mysql -u root -p

Kullanıcı adınız ve şifrenizi doğru girdiyseniz, mysql’e erişmiş olacaksınız.
Mysql veritabanlarınızı görmek için;

show databases;

Bir veritabanı üzerinde işlem yapmak için öncelikle veritabanını seçmeniz gerekmektedir;

use veritabani_adi;

Veritabanı içerisindeki tabloları listelemek için;

show tables;

Bundan sonrası mysql bilginize göre sorguları atıp at koşturabilirsiniz.

"Select * from tablo_adi" bla bla..

Mysql şifrenizi değiştirmek için terminalden mysql’e giriş yaptıktan sonra;

UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';

Aktif olarak giriş yapmış bir kullanıcının şifresini değiştirdiyseniz şifre değişikliğinin yansıması için;

FLUSH PRIVILEGES;

Veritabanı oluşturmak için

CREATE DATABASE veritabani_adi CHARACTER SET utf8 COLLATE utf8_general_ci;

Standart olarak utf8 kullandığımız için karakter seti ile oluşturdum. Yoksa “create database db_adi” yeterli olacaktır.

Linux Üzerinde Mysql Server Kurulumu

Önce işletim sistemindeki paketleri güncellememiz gerek;

sudo apt-get update

Mysql-server kurulumu;

sudo apt-get install mysql-server

Eğer kişisel bilgisayarınızda sadece geliştirme amaçlı kullanıyorsanız yada veritabanınıza sadece sunucunuz içerisinden erişecekseniz aşağıdaki kodu çalıştırmanıza gerek yoktur.
Yaptığı işlem mysql servisini dışardan gelecek isteklere açmaktır. Varsayılan 3306 portunu erişime açılacaktır.

sudo ufw allow mysql

Eğer hata alırsanız, ufw yüklü değildir. Yüklemek için;

sudo apt-get install ufw

Mysql servisini başlatıyoruz;

systemctl start mysql

Bilgisayarımızın yada sunucumuzun her açılışında mysql servisini otomatik çalıştırmak istiyorsak;

systemctl enable mysql

Linux Üzerinde Docker-Compose Kurulumu

Docker-compose kullanmak için;
Projeyi resmi Github reposundan yerel klasörümüze indirip çalıştırma yetkisi vereceğiz.

sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Download işlemi bittikten sonra;

sudo chmod +x /usr/local/bin/docker-compose

Hepsi bu kadar.

docker-compose --version

Linux Üzerinde Docker Kurulumu

Docker’ın GPG anahtarını çekiyoruz;

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Docker repository’i indiriyoruz;

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Ardından repo paketlerimizi güncelliyoruz;

sudo apt-get update

Ve docker’ı bilgisayarımıza kuruyoruz;

sudo apt-get install -y docker-ce

Yüklemenin ardından systemctl ile start, stop, status komutlarını kullanarak işlem yapabilirsiniz.

sudo systemctl status docker

SCP ile İki Linux Makina Arasında Veri Transferi Yapmak

Merhabalar,

SCP (Secure Copy) yani Güvenli Kopyalama komutu ile iki linux makina arasında dosya transferi yapabilirsiniz. Tek dosya yada bir dizini olduğu gibi farklı bir sunucuya gönderebilir veya alabilirsiniz.

Dosya gönderimi için;

scp dosyaadi.txt kullanici_adi@server_ip:/home/

 

Dosya almak için;

scp kullanici_adi@server_ip:/home/dosyaadi.txt. (bulunduğunuz dizin içerisinde alacaktır.)

 

Dizin gönderimi için;

Dizin gönderimi için scp komutundan sonra -r kullanmamız gerekiyor.

scp -r /gönderilecek_dizin_adi kullanici_adi@server_ip:/home/

 

Dizin almak için;

scp -r  kullanici_adi@server_ip:/home/alınacak_dizin_adi

 

Karşı bilgisayarın ssh portu 22’den farklı ise komutlarınıza -Pport_numarası parametresini ekleyerek veri transferinizi gerçekleştirebilirsiniz. Örnek;

scp -r -P /gönderilecek_dizin_adi kullanici_adi@server_ip:/home/

 

Komutları çalıştırdıktan sonra karşı sunucunun şifresi sizden istenecektir, şifreyi doğru girdikten sonra veri transfer işlemi başlayacaktır.

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. hatası çözümü

Merhabalar,

Laravel 5 go to my site.3 versiyonu kurulumu tamamladıktan sonra bu sorunla karşılaştıysanız çözümü aşağıdaki gibidir;

Projenin kurulduğu dizine terminal üzerinden eriştikten sonra,

php artisan key:generate

php artisan config:clear

komutlarını çalıştırırsanız sorun düzelecektir.

Terminal ile Mysql’e Veri Aktarma ve Yedek Alma Komutları

Merhabalar, Proje geliştirirken zaman zaman linux terminal üzerinden işlem yapmak zorunda kalabiliyoruz. Sunucu saldırı alıp yada farklı sebeplerden down olabilir, ani bir sunucu değişikliği yapmak zorunda kalabiliriz vs. durumlarda phpmyadmin kurulumu ile uğraşmak daha fazla zaman alacağından terminal ile içeri veri aktarma(mysql import) yapabiliriz yada yedek(mysql dump) alabiliriz.

Terminalden SSH ile sunucuya bağlandıktan sonra;

Yedek almak için;
mysqldump -u mysql_kullanıcı_adı -p veritabanı_adı > yedek_dosya_adı.sql

İçeri veri aktarmak için;
mysql -u mysql_kullanıcı_adı -p veritabanı_adı < yedek_dosya_adı.sql