Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@kiyo27

Laravelで簡単なCMSを作成(環境構築)

Laravelの開発環境をdockerを使ってnginx + php + sqliteの構成で作ってみます。

docker-composeで管理

ディレクトリ構成は以下です。srcディレクトリ配下にはLaravelのコードがインストールされます。

.
├── docker
│   ├── nginx
│   │   └── default.conf
│   └── php
│       ├── Dockerfile
│       └── php.ini
│
├── docker-compose.yml
└── src

docker-composeでコンテナを管理します。

docker-compose.yml
version: '3'
services:
  nginx:
    image: nginx
    ports:
      - 8080:80
    volumes:
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./src:/var/www
    depends_on:
      - php
  php:
    build: ./docker/php
    volumes:
      - ./src:/var/www

nginxの設定

default.conf
server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    server_name localhost;
    root /var/www/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }
}

phpコンテナ

Dockerfile
FROM php:7.3-fpm

ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer

RUN apt-get update &&\
    apt-get install -y libzip-dev &&\
    docker-php-ext-configure zip --with-libzip && \
    # Install the zip extension
    docker-php-ext-install zip && \
    docker-php-ext-install pdo_mysql

COPY php.ini /usr/local/etc/php/

WORKDIR /var/www
php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

コンテナ起動

docker-compose.ymlファイルが置いてある場所でdocker-compose upを実行するとコンテナが起動します。バックグラウンドで起動するために-dも付けて起動させます。

docker-compose up -d

Laravelインストール

コンテナが起動できたらLaravelをインストールするために、phpコンテナに入ります。

# docker-compose exec php bash

phpコンテナに入れたらLaravelをインストールします。

# composer create-project laravel/laravel .

インストールが完了したら、http://localhost:8080にアクセスして環境が正しく構築出来ているか確認します。下の画像のように表示できていればOKです。

スクリーンショット 2021-05-02 131652.png

SQLiteの設定

laravel/database 配下に database.sqlite というファイルを作成します。次に.envファイルをsqliteを使用するために修正します。

.env
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
# DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

これで設定は終わりです。

作成したデータベースにデータを登録する場合は、以下の記事を参考に。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kiyo27
主にバックエンドを担当。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?