- Düzenlendi
Merhaba arkadaşlar,
Çok ciddi bir proje geliştiriyorsanız ve sunucu işinden de anlıyorsanız DigtalOcean ya da benzeri bir çözüme gidersiniz. Bu size ciddi bir emek gerektiren, korkutucu bir yol gibi görünür. En basitinden "kendi domainim için nasıl email açacağım?" Binlerce kaynağa ve DigtalOCean'ın devasa dökümantasyonuna rağmen hala işin içinden çıkamayacağınız yerler var. İnternet üzerinde sanki herkes kendi Facebook'unu açacakmış gibi ya da herkesin devasa bir firması varmış gibi dersler anlatılıyor. DigitalOceanda ayar nasıl yaplır, Chef nasıl kullanılır, Vagrant nasıl kurulur, Homestead nedir, Postfix kurulumu ya da 3rd party e-mail (Soho, Google Apps) entegrasyonları nasıl yapılır. Forge nedir ne işe yarar vs. Bu konu uzar da uzar. 10 dolar Forgeye 5 dolar DO ya verirsiniz ama bir email açmaya 2 gün uğraşırsınız. Çünkü aslında sorunsuz bir kurulum yapmanız mucize gibidir. Her anlatılanın doğru olmadığını da öğrenirsiniz.
Ama facebook açmıyorsunuz ve onlarca çalışanınız, günde 100bin trafiğiniz de yok. İhtiyacınız olan mütevazi bir site ve 3 dolarlık bir hosting (shared hosting) size ya da müşterinize fazlasıyla yetiyor..Cpanele girer, tek tuşla her işinizi halleder, phpmyadmin kullanır, email kolayca oluşturulur, birden fazla alan adı açabilirsiniz (addon domain)..Ne ilginçtir ki shared hosting de Laravel kurulumuna dair çok fazla bilgiye ulaşamıyorsunuz ya da yarım yamalak bilgiler bulursunuz. Hele ki addon domain üzerine nasıl Laravel kurulur ya da mümkün müdür hiç düşündünüz mü?
Bugün Zuckerbergcilik oynamayı bırakıp, shared hosting'de laravel kurulumu yapalım..İnanmayacağınız derecede kolay olduğunu, birden fazla siteniz olsa da hiç sorun olmadığını göreceksiniz.
Gereken malzemeler:
1- En az PHP 5.4 kurulu ve SSH kullanmanıza izin veren bir hosting firması. (Tavsiye isteyenler için Hawkhost..3.95 aylık ve sınırsız addon domain)
2- Windows kullanıcı iseniz SSH bağlantı sağlamanız için kullanacağımız program PUTTYi
3-Laravel 5 ile tasarlanmış localhostta çalışır durumda ve asıl sunucuya yüklenmeye hazır bir adet website
4- FTP için Filezilla, eğer XAMPP kurduysanız Filezilla zaten kuruludur.
Daha anlaşılır olması açısından örnek kullanıcı adı, şifre, veritabanı isimleri kullanacağım.
Diyelim bir hosting planı aldık.
1-Bize emai ile gönderdiği bir IP adresi olur. Bunu not edin.
2-Cpanel için bize kulanıcı adı ve şifre verir. Örnek kullanıcı adımız "pellempus", sifremiz "sifrem" olarak verilmiş olsun.
3- Her hosting planı bir ana domaine bağlıdır ve zaten hosting alırken bunu belirtisiniz. bu domain için varsayılan dizin, yani dosyaları atmanız gereken yer public_html dizinidir. Bazen www olabilir. Ama büyük ihtimal public_html'dir. yani dizinimiz /home/pellempus/public_html
4- Biz ikinci bir domain ekleyip ona Laravel kurmak istiyoruz. Yani addon domain. Bunu bilirsek birden fazla site barındırmayı da öğrenmiş oluruz... Kuracağımız addon domain "laravelsitem.com" olsun. Bu durumda dizinimiz /home/pellempus/public_html/laravelsitem.com olacak... Detaylar ileride, bu bilgi aklınızda olsun.
ADIM 1:
Kontrol panelimize girelim (cpanel). Addon domainimizi eklemek için "Addon Domains" e tıklayalım ve 2. adresimizi şu şekilde açalım:
New Domain Name (Alan adınız) : laravelsitem.com
Subdomain or FTP Username: laravelsitem (önemsiz, bunu kullanmayacağız)
Document Root: public_html/laravelsitem.com (Otomatik oluşturulur, değiştirebilirsiniz ama biz böyle bırakalım)
Password: birsifre (Bu sifre FTP için, bunu kullanmayacağız istediğiniz şifreyi verin)
Password again: birsifre
dedikten sonra Add Domain diyelim. Bir kaç saniye içinde 2. domain eklenecektir.
ADIM 2:
Veritabanı oluşturmak için kontrol panelden MYSQL databases ikonuna tıklayalım. 3 adımlık bir işimiz var.
1- Create Database bölümünden New database kısmına bir isim yazarak veritabanı oluşturun. Büyük ihtimalle cpanel kullanıcı adımızı en başa ekleyecektir. yani
New Database: pellempus_veritabanim diyelim Create database butonuna tıklayalım. İşlem bitince Go back ile dönelim.
2- Bir kullanıcı oluşturalım: MySQL Users Add a New User kısmından istediğimiz isimde kullanıcı oluştıralım. Otomatik olarak pellempus_ ekleyebilir.
Username: pellempus_veritabanikullanicisi
Password: veritabanisifrem
Password Again: veritabanisifrem
dedikten sonra create a user diyelim. İşlem bitince Go back ile dönelim.
3-Add a User to a Database kısmından
User:pellempus_veritabanikullanicisi
Database:pellempus_veritabanim
seçerek Add diyelim. Karşınızda bu kullanıcıya vermek istediğiniz yetkiler gelecektir (insert, update gibi) Eğer uzman değilseniz All Priveleges seçin ve onaylayın.
ADIM 3:
Artık laravel de .env dosyamızı ayarlayıp yükleme aşamasına geçebiliriz. Bunu detaylı olarak bir başka konuda anlatmıştım. Laravel sitemizin olduğu dosyalarda ana dizinde .env.example vardir. Onun ismini .env olarak değiştirip dosyayı açarak şu değişjkiği yapın ve kaydedin:
Yüklemeye başlamadan önce son adım. Kontrol panelden Select PHP version butonuna tıklıyoruz. Orada phar işaretliyoruz ve Save diyoruz.
ADIM 5:
Putty açıp karşımıza çıkan ilk pencerede host name kısmına hosting aldığmızda bize gönderilen IP adresini girelim. SSH seçili olduğundan emin olduktan sonra en altta Open butonuna tıklıyoruz. Karşınıza siyah bir pencere gelecek. İlk olarak cpanel için kullandığımız kullanıcı adımızı giriyoruz ve sonra şlfre. Örneğimizde kullanıcı adımızı pellempus ve şifremiz "sifre" idi. Bunları kullanacağız. Bağlantı gerçekleştiğinde ls yazıp entera basın, dizin listesi geliyorsa bağlantıyı gerçekleştirdiniz demektir. Şimdi composer kurabiliriz.
Putty kapatmayın, bu ekrana tekrar döneceğiz.
ADIM 6:
Filezilla ila FTP kullanarak hostingimize baglanalım. Hosting açarken kullandığınız email şifre ile bağlanabilirsiniz. Host olarakta ana domain kullanabilirsiniz. Bağlantı gerçekleştiğinde public_html içinde laravelsitem.com klasörü göreceksiniz. Onun içine girerek sağ tıkla New File diyin. index.html isimli bir dosya yaratın. Boş bir html dosyaı yeterlidir, bu sizin dizin yapınızı gizleyecektir. Ancak bu işlemi yükleme başlamadan önce mutlaka yapın.
ADIM 7:
Bulundugunuz laravelsitem.com dizinine hazırladığınız Laravel sitesini olduğu gibi yükleyin.Ancak bunu yapmadan önce storage içindeki tüm cache dosyalarını silin. Yükleme bitince PUTTY ekranına dönüp sırasıyla şu komutları girin
ADIM 8:
Laravel sitemiz artık hazır. Tek bir sorun var. Adres satırına laravelsitem.com yazdığımızda bu public_html içindeki laravelsitem.com dizinine bakacak. Yani /home/pellempus/public_html/laravelsitem.com ...Bizim bunu laravelsitem.com/public adresine yönlendirmemiz gerek. Yani /home/pellempus/public_html/laravelsitem.com/public
İki yöntem var
Yöntem 1: Putty ekranına dönüp Symbolik link yaratalım
1-Filezilla açıp public_html içindeki laravelsitem.com klasörüne girelim.
2- Sağ tıkla New file diyerek dosya ismine .htaccess diyelim ve onaylayın.
3-.htaccess üstüne sağ tıklayıp edit diyerek şu kodu ekleyelim ve kaydedelim
Addon domainlere göre anlattım. Bu şekilde bir çok addon ekleyebilirsiniz ve tek bir hosting planında kolayca bir çok laravel sitesi çalıştırabilirsiniz.
Kolay gelsin,
Çok ciddi bir proje geliştiriyorsanız ve sunucu işinden de anlıyorsanız DigtalOcean ya da benzeri bir çözüme gidersiniz. Bu size ciddi bir emek gerektiren, korkutucu bir yol gibi görünür. En basitinden "kendi domainim için nasıl email açacağım?" Binlerce kaynağa ve DigtalOCean'ın devasa dökümantasyonuna rağmen hala işin içinden çıkamayacağınız yerler var. İnternet üzerinde sanki herkes kendi Facebook'unu açacakmış gibi ya da herkesin devasa bir firması varmış gibi dersler anlatılıyor. DigitalOceanda ayar nasıl yaplır, Chef nasıl kullanılır, Vagrant nasıl kurulur, Homestead nedir, Postfix kurulumu ya da 3rd party e-mail (Soho, Google Apps) entegrasyonları nasıl yapılır. Forge nedir ne işe yarar vs. Bu konu uzar da uzar. 10 dolar Forgeye 5 dolar DO ya verirsiniz ama bir email açmaya 2 gün uğraşırsınız. Çünkü aslında sorunsuz bir kurulum yapmanız mucize gibidir. Her anlatılanın doğru olmadığını da öğrenirsiniz.
Ama facebook açmıyorsunuz ve onlarca çalışanınız, günde 100bin trafiğiniz de yok. İhtiyacınız olan mütevazi bir site ve 3 dolarlık bir hosting (shared hosting) size ya da müşterinize fazlasıyla yetiyor..Cpanele girer, tek tuşla her işinizi halleder, phpmyadmin kullanır, email kolayca oluşturulur, birden fazla alan adı açabilirsiniz (addon domain)..Ne ilginçtir ki shared hosting de Laravel kurulumuna dair çok fazla bilgiye ulaşamıyorsunuz ya da yarım yamalak bilgiler bulursunuz. Hele ki addon domain üzerine nasıl Laravel kurulur ya da mümkün müdür hiç düşündünüz mü?
Bugün Zuckerbergcilik oynamayı bırakıp, shared hosting'de laravel kurulumu yapalım..İnanmayacağınız derecede kolay olduğunu, birden fazla siteniz olsa da hiç sorun olmadığını göreceksiniz.
Gereken malzemeler:
1- En az PHP 5.4 kurulu ve SSH kullanmanıza izin veren bir hosting firması. (Tavsiye isteyenler için Hawkhost..3.95 aylık ve sınırsız addon domain)
2- Windows kullanıcı iseniz SSH bağlantı sağlamanız için kullanacağımız program PUTTYi
3-Laravel 5 ile tasarlanmış localhostta çalışır durumda ve asıl sunucuya yüklenmeye hazır bir adet website
4- FTP için Filezilla, eğer XAMPP kurduysanız Filezilla zaten kuruludur.
Daha anlaşılır olması açısından örnek kullanıcı adı, şifre, veritabanı isimleri kullanacağım.
Diyelim bir hosting planı aldık.
1-Bize emai ile gönderdiği bir IP adresi olur. Bunu not edin.
2-Cpanel için bize kulanıcı adı ve şifre verir. Örnek kullanıcı adımız "pellempus", sifremiz "sifrem" olarak verilmiş olsun.
3- Her hosting planı bir ana domaine bağlıdır ve zaten hosting alırken bunu belirtisiniz. bu domain için varsayılan dizin, yani dosyaları atmanız gereken yer public_html dizinidir. Bazen www olabilir. Ama büyük ihtimal public_html'dir. yani dizinimiz /home/pellempus/public_html
4- Biz ikinci bir domain ekleyip ona Laravel kurmak istiyoruz. Yani addon domain. Bunu bilirsek birden fazla site barındırmayı da öğrenmiş oluruz... Kuracağımız addon domain "laravelsitem.com" olsun. Bu durumda dizinimiz /home/pellempus/public_html/laravelsitem.com olacak... Detaylar ileride, bu bilgi aklınızda olsun.
ADIM 1:
Kontrol panelimize girelim (cpanel). Addon domainimizi eklemek için "Addon Domains" e tıklayalım ve 2. adresimizi şu şekilde açalım:
New Domain Name (Alan adınız) : laravelsitem.com
Subdomain or FTP Username: laravelsitem (önemsiz, bunu kullanmayacağız)
Document Root: public_html/laravelsitem.com (Otomatik oluşturulur, değiştirebilirsiniz ama biz böyle bırakalım)
Password: birsifre (Bu sifre FTP için, bunu kullanmayacağız istediğiniz şifreyi verin)
Password again: birsifre
dedikten sonra Add Domain diyelim. Bir kaç saniye içinde 2. domain eklenecektir.
ADIM 2:
Veritabanı oluşturmak için kontrol panelden MYSQL databases ikonuna tıklayalım. 3 adımlık bir işimiz var.
1- Create Database bölümünden New database kısmına bir isim yazarak veritabanı oluşturun. Büyük ihtimalle cpanel kullanıcı adımızı en başa ekleyecektir. yani
New Database: pellempus_veritabanim diyelim Create database butonuna tıklayalım. İşlem bitince Go back ile dönelim.
2- Bir kullanıcı oluşturalım: MySQL Users Add a New User kısmından istediğimiz isimde kullanıcı oluştıralım. Otomatik olarak pellempus_ ekleyebilir.
Username: pellempus_veritabanikullanicisi
Password: veritabanisifrem
Password Again: veritabanisifrem
dedikten sonra create a user diyelim. İşlem bitince Go back ile dönelim.
3-Add a User to a Database kısmından
User:pellempus_veritabanikullanicisi
Database:pellempus_veritabanim
seçerek Add diyelim. Karşınızda bu kullanıcıya vermek istediğiniz yetkiler gelecektir (insert, update gibi) Eğer uzman değilseniz All Priveleges seçin ve onaylayın.
ADIM 3:
Artık laravel de .env dosyamızı ayarlayıp yükleme aşamasına geçebiliriz. Bunu detaylı olarak bir başka konuda anlatmıştım. Laravel sitemizin olduğu dosyalarda ana dizinde .env.example vardir. Onun ismini .env olarak değiştirip dosyayı açarak şu değişjkiği yapın ve kaydedin:
APP_ENV=production
APP_DEBUG=false
APP_KEY=SomeRandomString
DB_USERNAME=pellempus_veritabanim (ya da sşz nasıl ayarladıysanız)
DB_USERNAME=pellempus_veritabanikullanicisi (ya da sşz nasıl ayarladıysanız)
DB_PASSWORD=veritabanısifrem (ya da sşz nasıl ayarladıysanız)
ADIM 4:Yüklemeye başlamadan önce son adım. Kontrol panelden Select PHP version butonuna tıklıyoruz. Orada phar işaretliyoruz ve Save diyoruz.
ADIM 5:
Putty açıp karşımıza çıkan ilk pencerede host name kısmına hosting aldığmızda bize gönderilen IP adresini girelim. SSH seçili olduğundan emin olduktan sonra en altta Open butonuna tıklıyoruz. Karşınıza siyah bir pencere gelecek. İlk olarak cpanel için kullandığımız kullanıcı adımızı giriyoruz ve sonra şlfre. Örneğimizde kullanıcı adımızı pellempus ve şifremiz "sifre" idi. Bunları kullanacağız. Bağlantı gerçekleştiğinde ls yazıp entera basın, dizin listesi geliyorsa bağlantıyı gerçekleştirdiniz demektir. Şimdi composer kurabiliriz.
curl -sS https://getcomposer.org/installer | php
yazıp entera basarak kurulumu başlatın. Kurulum bitince echo "alias composer='php ~/composer.phar'" >> .bashrc. ~/.bashrc
yazıp entera basalım. Bu composeri istediginiz dizinde kullanmanızı sağlayacaktır.Putty kapatmayın, bu ekrana tekrar döneceğiz.
ADIM 6:
Filezilla ila FTP kullanarak hostingimize baglanalım. Hosting açarken kullandığınız email şifre ile bağlanabilirsiniz. Host olarakta ana domain kullanabilirsiniz. Bağlantı gerçekleştiğinde public_html içinde laravelsitem.com klasörü göreceksiniz. Onun içine girerek sağ tıkla New File diyin. index.html isimli bir dosya yaratın. Boş bir html dosyaı yeterlidir, bu sizin dizin yapınızı gizleyecektir. Ancak bu işlemi yükleme başlamadan önce mutlaka yapın.
ADIM 7:
Bulundugunuz laravelsitem.com dizinine hazırladığınız Laravel sitesini olduğu gibi yükleyin.Ancak bunu yapmadan önce storage içindeki tüm cache dosyalarını silin. Yükleme bitince PUTTY ekranına dönüp sırasıyla şu komutları girin
cd public_html
cd laravelsitem.com
Dizine girdik. Update var mı bakalım
composer update
Migration için sorun çıkmasın diye küçük bir önlem alalım
composer dump-autoload
Şimdi migrationlarımızı yapabiliriz. Bunun ne olduğunu bilecek kadar Laravel bildiğinizi varsıyoyurum
php artisan migrate
Eğer seed dosyanız varsa
php artisan db:seed
PUTTY açık kalsın buraya döneceğiz.ADIM 8:
Laravel sitemiz artık hazır. Tek bir sorun var. Adres satırına laravelsitem.com yazdığımızda bu public_html içindeki laravelsitem.com dizinine bakacak. Yani /home/pellempus/public_html/laravelsitem.com ...Bizim bunu laravelsitem.com/public adresine yönlendirmemiz gerek. Yani /home/pellempus/public_html/laravelsitem.com/public
İki yöntem var
Yöntem 1: Putty ekranına dönüp Symbolik link yaratalım
ln -s /home/pellempus/public_html/laravelsitem.com/public /home/pellempus/public_html/laravelsitem.com
Yöntem 2: Eğer symbolink link işe yaramıyorsa apache mod_rewrite kullanacağız. Bunu yapmadan önce test yapalım... Tarayıcıda adres satırına laravelsitem.com yazdığımızda beyaz boş bir sayfa geliyorsa bunun anlamı boş olarak attığımız index.html yi görüyor ve sembolik link işe yaramadı demektir. Eğer ki adres satırına laravelsitem.com/public yazdığınızda site çalışıyorsa tüm yüklemeleri doğru yaptık demektir. Şimdi bunu düzeltmek için 1-Filezilla açıp public_html içindeki laravelsitem.com klasörüne girelim.
2- Sağ tıkla New file diyerek dosya ismine .htaccess diyelim ve onaylayın.
3-.htaccess üstüne sağ tıklayıp edit diyerek şu kodu ekleyelim ve kaydedelim
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Kaydedip kapatınca sunucuya yükleyeyim mi diye soracaktır. Evet diyerek işlemi bitirin. Şimdi adres satırında sitenizi girip deneyebilirsiniz. Hosting firmaların çoğuna uyumlu bir yöntemdir ve bir sorunlar karşlaşmayacagınızı umuyorum...Addon domainlere göre anlattım. Bu şekilde bir çok addon ekleyebilirsiniz ve tek bir hosting planında kolayca bir çok laravel sitesi çalıştırabilirsiniz.
Kolay gelsin,