Laravel Framework public Dizin İsmini Değiştirme

Ana Sayfa Blog Laravel Framework public Dizin İsmini Değiştirme

Laravel Framework public Dizin İsmini Değiştirme

Merhaba arkadaşlar,

Laravel ile herhangi bir projeye başlarken ilk yaptığım eylemlerden biri, virtual host sorunları yaşamamak ve sunucularımdaki varsayılan public dizini public_html olduğundan Laravel’in public dizinini public_html olarak değiştirmektir.

Not: Ben burada varsayılan public dizin isminin public_html olduğunu varsayarak işlem yapacağım, sizin sunucunuzda bu dizinin ismi www, htdocs, httpdocs vs. olabilir. Sunucunuzu denetleyip bu isme göre yapılandırmanızı yapmalısınız.

Aşağıdaki örnekte FileZilla uygulamasından örnek ekran görüntüsü sunulmuştur:

Bu değişikliğin, php artisan serve komutunu kullandığınızda sorun çıkarmaması, ayrıca elixir / gulp kullandığınızda da gerekli vendor publish durumlarında da varlıklarınızın (asset) bu dizine gönderilmesi için gerekli tüm yapılandırmayı gerçekleştireceğiz.

Aşağıdaki yönergeleri adım adım takip edin:

public dizinini public_html olarak adlandırın.

Bu dizindeki index.php dosyası içindeki

$app = require_once __DIR__ . '/../bootstrap/app.php';

satırının altına aşağıdaki satırları ekleyin:

// set the public path to this directory
$app->bind('path.public', function () {
    return __DIR__;
});

kaydedin ve kapatın.

Proje ana dizinindeki server.php dosyası içindeki ‘/public’ kısımlarını ‘/public_html’ olarak güncelleyin.

Proje ana dizinindeki gulpfile.js dosyasının içindeki

var elixir = require('laravel-elixir');

satırının altına bunları ekleyin:

elixir.config.sourcemaps = false;
elixir.config.publicDir = 'public_html';
elixir.config.publicPath = 'public_html';
elixir.config.cssOutput = 'public_html/css'; // tercihe bağlı
elixir.config.jsOutput = 'public_html/js'; // tercihe bağlı

kaydedin ve kapatın.

app/Console/Commands dizini içinde Serve.php adında bir dosya oluşturun ve bunları içine kaydedin:

<?php

namespace App\Console\Commands;

use Exception;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Process\PhpExecutableFinder;
use Symfony\Component\Process\ProcessUtils;

class Serve extends Command {
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'serve';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Serve the application on the PHP development server';

    /**
     * Execute the console command.
     *
     * @return void
     *
     * @throws \Exception
     */
    public function fire() {
        chdir('/');

        $host = $this->input->getOption('host');

        $port = $this->input->getOption('port');

        $base = ProcessUtils::escapeArgument($this->laravel->basePath());

        $binary = ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));

        $this->info("Laravel development server started on http://{$host}:{$port}/");

        if (defined('HHVM_VERSION')) {
            if (version_compare(HHVM_VERSION, '3.8.0') >= 0) {
                passthru("{$binary} -m server -v Server.Type=proxygen -v Server.SourceRoot={$base}/ -v Server.IP={$host} -v Server.Port={$port} -v Server.DefaultDocument=server.php -v Server.ErrorDocument404=server.php");
            } else {
                throw new Exception("HHVM's built-in server requires HHVM >= 3.8.0.");
            }
        } else {
            passthru("{$binary} -S {$host}:{$port} {$base}/server.php");
        }
    }

    /**
     * Get the console command options.
     *
     * @return array
     */
    protected function getOptions() {
        return [
            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', 'localhost'],

            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 8000],
        ];
    }
}

kaydedin ve kapatın.

app/Console içindeki Kernel.php dosyasındaki

protected $commands = [
    //
];

kısmını aşağıdaki şekilde ayarlayın:

protected $commands = [
    Commands\Serve::class,
];

kaydedin ve kapatın.

İşlem tamam!

Takıldığınız herhangi bir şey olursa, bu makalenin altındaki yorum alanından iletebilirsiniz.

Keyifli Laravellemeler!

Sinan Eldem

Fullstack Web Developer

Laravel Framework ile PHP ve MySQL üzerine özel ders, danışmanlık ve web programcılığı hizmetleri veriyorum.

Danışmak istedikleriniz ile ilgili benimle irtibat kurabilirsiniz.

Benzer Yazılar

Laravel'de Kendi Fonksiyonlarımızı Yazma

Forumlarda sıkça kaşılaşılan ve bana e-posta ile en çok sorulan sorulardan biri de Laravel projesine ilave edilecek fonksiyonların nereye konacağıdır.

Linux İşletim Sistemi Tarih ve Saatini Yapılandırma

Yeni bir Linux Sunucu kurulumu, sunucuda köklü bir değişiklik yapıldığında veya gün ışığından dolayı saatler ileri veya geri alındığında bazen Linux Sunucu tarih ve saatini yeniden yapılandırmak gerekir.

Repository Pattern (Ambar Deseni) Nedir?

Repository (Ambar) deseni iş mantığınızı veri kaynağınızdan soyutlamanın bir yoludur. Veri getirme kodunuzun üstünde ekstra bir katman olup değişik yollarla kullanılabilmektedir.

Yorumlar