ふくだ学習録とは?
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。
読了した本
データベースエンジニア養成読本 [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に接続されるようになった。
(結構時間かかった。。)
今日の一言
開発環境構築は、できひん時めちゃめちゃイライラするし進まんけど、一回理解したら世界変わるぐらいその後楽になるから好き。