LoginSignup
0
0

More than 3 years have passed since last update.

【ふくだ学習録】アプリ制作part12【39日目】

Posted at

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門
SQLアンチパターン
Docker入門

今読んでいる本

なし

アプリ制作

laravel環境構築

MySQLの構築は終わったので、次はLaravelの環境構築をしていく。

そもそもLaravelを作成するのは下記の流れでスクレイピングを行なっていきたいから。
①LaravelでどういったサイトをスクレイピングしていくのかをMySQLへ登録
②(バッチ処理で)ScrapyからMySQLへ通信し、MySQL上のデータを参考にスクレイピング用ファイルを作成し実行
③Scrapyで取得した情報をMySQL上へ保存
といった流れにするため。

参考にした記事は下記。

Dockerを使ってLaravel開発環境構築
nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する

nginx記述変更

今回nginxを経由するアクセスは2つ。
①一般ユーザーからのnodeへのアクセス。(Next.jsで作るフロント部分)
②アドミンユーザーからのLaravelへのアクセス(Laravelで作る、管理用画面)
なので、nginx側でプロキシを複数作成しておく。

# node(一般ユーザーアクセス)
server {
    listen 80;
    server_name localhost;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://express:3000/;
    }
}

# Laravel(adminユーザーアクセス)
server {
    listen 9000;
        index index.php index.html;
        root /var/www/public;

    server_name localhost;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        }

    location ~ \.php$ {

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

80番をnode, 9000番をphpにしている。
(現在はまだローカル環境のみでの開発なので、ポート番号のみでの出し分けにしている。)

laravelインストール

laravelのインストールまでを行なっていく。
記載したdockerfileはこんな感じ。

FROM php:7.2-fpm
COPY php.ini /usr/local/etc/php/

RUN apt-get update \
  && apt-get install -y zlib1g-dev mariadb-client \
  && docker-php-ext-install zip pdo_mysql

#①
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
      && php -r "if (hash_file('SHA384', 'composer-setup.php') === trim(file_get_contents('https://composer.github.io/installer.sig'))) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
      && php composer-setup.php\
      && php -r "unlink('composer-setup.php');" \
      && mv composer.phar /usr/sbin/composer

#②  
ENV COMPOSER_ALLOW_SUPERUSER 1

ENV COMPOSER_HOME /composer

ENV PATH $PATH:/composer/vendor/bin

WORKDIR /var/www

RUN composer global require "laravel/installer"

①composerは常に最新版をインストールするように設定。
composerのバージョンが変わっても対応可能なDockerfileの書き方を参考にした。)

②composerインストール時に、質問が出ても処理が停止しないようにするために設定。
(Y/nなどを入力しなくてもいいように)(Dockerfileで、質問を受けずにrootでcomposer installする)[https://qiita.com/nju33/items/fc85dc8071c99015bc92]

laravelアプリ作成

ここまで記載できたら、docker execして、Laravel用のコンテナに入って、laravel newするだけ。
localhostではnode(Next)、localhost:9000ではLaravelに接続されるようになった。
(結構時間かかった。。)

今日の一言

開発環境構築は、できひん時めちゃめちゃイライラするし進まんけど、一回理解したら世界変わるぐらいその後楽になるから好き。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0