Ubuntu Kurulum ve Laravel Deploy İşlemleri

Ubuntu Kurulum ve Laravel Deploy İşlemleri

Projenizi hazırladığınız artık projenizi yayına alarak kullanıcılarınızla buluşturmak istiyorsunuz fakat bir bilginiz bulunmuyor ise bu makale size oldukça yardımcı olacaktır. Laravel normal şartlarda paylaşımlı hosting yapılarında yayınlamanız mümkün olmasa bile zordur, yayınlansa bile size bazı problemler çıkartacağına emin olunuz. Ama ben illa yayınlayacağım derseniz SSH erişimi olan bir hosting tercih ediniz. Benim önerim hawkhost* firması olacaktır. Gelelim paylaşımlı olmayan size özel bir sunucuya laravel kurulumuna bu işlem için Digital Ocean* firmasını öneriyorum. Yazmış olduğum makale paylaşımsız temiz sunucuya kurulum için geçerlidir. Digital Ocean vermiş olduğum link ile kayıt olduktan sonra ihtiyaçlarınıza uygun bir sunucu seçtikten sonra Ubuntu 16.04.3 x64 işletim sistemini kurunuz. Kurulum işlemleriniz tamamlandıktan sonra SSH erişimini yaparak sunucunuza erişim yapınız. Artık işlemlere başlayabiliriz.

Aşağıdaki komutları sırayla çalıştırın.

Sunucumuza İhtiyacımız Olan Paketleri Yüklüyoruz.
sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install zip unzip
sudo apt-get install -y php7.0 php7.0-fpm php7.0-mysql php7.0-zip php7.0-gd
sudo apt-get install nginx git

MySQL Kurulumu Yapalım;

sudo apt-get update
sudo apt-get install mysql-server

MySQL Veritabanı Oluşturalım;

mysql -u root -p
CREATE DATABASE laravel;

Laravel için önemli paketleri kuralım

sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get install -y php7.0-mbstring php7.0-xml --force-yes

İsteğe bağlı kurabilecekler paketler.

sudo apt-get install php7.0-curl php7.0-json

NOT: PHP 7.0 için kullanılabilir paketleri listelemek için aşağıdaki komutu kullanabilirsiniz:
İsteğe bağlı kurabilecekler

sudo apt-cache search php7-*

PHP Yapılandırılmasını yapalım.

sudo nano /etc/php/7.0/fpm/php.ini

php.ini açarak cgi.fix_pathinfo değerini alt kısımdaki gibi değiştiriniz. Hızlı bulmak için CTRL+W kombinasyonunu kullanabilirsiniz. Başındaki “;” kaldırmayı unutmayın.

cgi.fix_pathinfo=0

PHP 7.0 Yeniden başlatalım.

sudo service php7.0-fpm restart

Nginx Yapılandıralım
Nginx varsayılan dosyasında değişiklik yapacağımız için öncelikle yedek alıyoruz.

sudo mkdir ~/Backups
sudo cp /etc/nginx/sites-available/default ~/Backups/default

İlgili düzenlemeyi yapmak için alt kısımdaki kodu kullanınız.

sudo nano /etc/nginx/sites-available/default

Ardından alt kısımda verilen default olan yapılandırmayı bir alttaki yapılandırma ile değiştiriniz.

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        root /usr/share/nginx/html;
        index index.html index.htm;
        server_name localhost;
        location / {
                try_files $uri $uri/ =404;
        }
}

Yapılandırmasını alt kısımdaki ile değiştiriniz.

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        root /var/www/laravel/public;
        index index.php index.html index.htm;
        # Make site accessible from http://localhost/
        server_name <Your Domain name / Public IP Address>;
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php?$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Yapılmış değişikler try_files $uri $uri/ =404; kodunu try_files $uri $uri/ /index.php?$query_string; değiştirdik ve location ~ \.php$ { ... } eklemesini yaptık.
Nginx’i yeniden başlatalım.

sudo service nginx restart

SWAP Yapılandırılması (İsteğe Bağlı)
Swap sunucunuzun belleği yetersiz kalması durumunda yardımcı olacaktır.

sudo fallocate -l 1G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Composer Kurulumu;

cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Github hesabımızda bulundurduğumuz repoyu klonluyoruz.

cd /var/www/
git clone https://github.com/laravel/laravel.git

.env dosyasını yeniden oluşturuyoruz.

cd laravel
mv .env.example .env

Composer’i install ediyoruz.

composer install

Yükleme tamamlandığında, Laravel dosyaları ve dizinleri yayına alalım.

chown www-data: -R /var/www/laravel/

Nginx yeniden yapılandıralım.

service nginx reload

Eksik paketler ile hatalar alırsanız, bu paketleri alt kısımdaki kod ile bulunuz.

sudo apt-cache search php7-*

Eksik olan paketleri ekleyin veya kaldırın.

sudo apt-get purge <package name>
sudo apt-get autoremove --purge

Laravel’in yazma izni ihtiyacı olan dosyalara izin verelim.

sudo chown -R :www-data /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage

Tüm işlemlerin bitiminde artık kendi bilgisayarınızdan push sunucunuzda pull yaparak verilerinizi çok hızlı bir şekilde güncelleyebilirsiniz.
Laravel ile projenizde başarılar dilerim.
Yararlı olabildiysem ne mutlu, Hatam var ise bildirilirse düzeltebilirim.
*Linkler referanslıdır.

Beğen  1
Yazar

2008, Yılından beri sistem ve yazılım teknolojileri ile ilgilenmekteyim. Ayrıntılı bilgi için hakkımda sayfamı inceleyebilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yapılan Yorumlar ( 2 )