본문 바로가기

웹 응용/laravel

게시판 만들기 - 2. 기본 설정

초기 설정은 2가지가 있는데, 이 2가지는 처음에 설정해두면 굳이 나중에 바꿀일이 없고 추가하는 일도 거의 없다.


1. config/database.php 

 

'connections' => [

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'), //★
            'port' => env('DB_PORT', '3306'), //★
            'database' => env('DB_DATABASE', 'laravel'), //★
            'username' => env('DB_USERNAME', 'root'), //★
            'password' => env('DB_PASSWORD', 'password'), //★ 
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
    ],

DB에 관련한 설정을 하는 것이다. 

나같은 경우에는 MySQL만 사용할거라 위의 내용 빼고는 모두 지웠다. 

가장 기본적으로 //★ 가 있는 곳은 고쳐줘야한다. 

본인의 mysql 설정을 확인하고 바꾸면 된다.

host=처음에 설정은 아마 127.0.0.1 로 되어있을 텐데, Hostname 설정따라서 바꾸면 된다.

post=처음설정이 잘 기억아 안나지만, Port 설정 맞춰서 바꾸기 

database=이건 데이터가 들어갈 테이블 이름이 아니다. 데이터베이스다! 

              라라벨에선 마이그레이트해서 테이블은 만들 수 있지만, 데이터베이스는 사전에 설정해야한다. 

              나같은 경우엔 아래 사진처럼 데이터베이스 부터 만들었다 .

데이터베이스만 생성

username=Username 설정에 맞춰서 설정해주면 된다.  

password=바로 위에 적은 username 계정의 비번을 적어주면 된다.

 

이 5개가 가장 기본적인 것이고, 세세하게 하시는 분들은

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

이것도 utf8만으로 설정도 해주시던데 나는 실제로 해보니 기본설정으로 해도 문제가 없어서 그냥 쓰고 있다.

아래는 내가 설정한 config/database.php의 전체코드이다. 

<?php

use Illuminate\Support\Str;

return [

    /*
    |--------------------------------------------------------------------------
    | Default Database Connection Name
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */

    'default' => env('DB_CONNECTION', 'mysql'),

    /*
    |--------------------------------------------------------------------------
    | Database Connections
    |--------------------------------------------------------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is
    | supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */

    'connections' => [

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'password'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Migration Repository Table
    |--------------------------------------------------------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven't actually been run in the database.
    |
    */

    'migrations' => 'migrations',

    /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer body of commands than a typical key-value system
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */

    'redis' => [

        'client' => env('REDIS_CLIENT', 'phpredis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],

        'default' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_DB', '0'),
        ],

        'cache' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_CACHE_DB', '1'),
        ],

    ],

];

2. .env 

APP_NAME=Laravel //★
APP_ENV=local
APP_KEY=base64:CZXmDhXSOqSB8OJ8nkOintTJkMdEg9nWOWo0r+OoaQI=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql //★
DB_HOST=localhost //★
DB_PORT=3306 //★
DB_DATABASE=laravel //★
DB_USERNAME=root //★
DB_PASSWORD=password //★

위의 코드는 긴~ 부분중 일단 필요한 부분만 사용한 것이다. 

밑에는 메일 관련한 설정도 있는데, 아직까지 메일사용은 미정이라서 나중에 또 바꿀 수도 있다. 

단! 위의 것은 가장 기본적! 완~전 기본적인 것이다. 

 

APP_NAME=이 프로젝트의 이름을 의미한다. 파일명이랑은 상관이 없다. 기본 설정 그대로여도 무관 

DB_CONNECTION=데이터베이스의 종류를 의미한다. 

                         위의 config/database.php 의 mysql-driver 와 같게 입력해주면 된다. 

이 밑으로 HOST,PORT,DATABASE,USERNAME,PASSWORD 도 config/database.php 와 같게해줘야한다. 

여기까진 정말 기초설정이라 어려운 게 없다. 

 

아래는 내가 사용하는 .env의 전체코드이다. 

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:CZXmDhXSOqSB8OJ8nkOintTJkMdEg9nWOWo0r+OoaQI=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=password

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

'웹 응용 > laravel' 카테고리의 다른 글

게시판 만들기 - 4. 메인 화면  (0) 2020.03.01
게시판 만들기 3. 설치할 것  (0) 2020.03.01
게시판 만들기 - 1. 구상  (0) 2020.03.01
라라벨 5.8 버전으로 설치  (0) 2020.02.25
라라벨 코드 리뷰 0224  (0) 2020.02.24