20200526のPHPに関する記事は13件です。

【環境構築】Windows10にXAMMPをインストール方法

Xamppのインストール方法をご紹介します。画像多めです。

作業環境

OS:Windows 10
エディション:HOME
バージョン:2004

XAMPPのインストール方法

①公式サイトからダウンロード

下記の公式サイトにアクセスします。
https://www.apachefriends.org/jp/index.html
202005262113.png
「Windows向けXAMPP」をダウンロードします。
執筆時点(2020/05/26)では、バージョンは7.4.6です。

②インストールする

ダウンロードが完了したら、ファイルをダブルクリックしてインストールします。基本的にこだわりがなければ、「Next>」を押していくだけです。
202005262117.png
セットアップの最初の画面です、「Next>」を押します。
202005262118.png
Components(構成要素)を選びます。特に怪しいものはないので、「Next>」を押します。
202005262119.png
インストールするフォルダを選びます。Cドライブ直下で問題ない場合は、そのまま「Next>」を押します。
202005262214.png
言語の選択の画面です。日本語は選べないので、そのまま「Next>」を押します。
202005262215.png
チェックボックスのチェックを外して、「Next>」を押します。
202005262216.png
インストールの準備ができたので、「Next>」を押します。
202005262227.png
インストールが始まります。
202005262228.png
完了したら、「Finish」を押してインストール完了です。
202005262254.png
インストールが完了したら、上記の画面が表示されます。
特に難しい点などはなくインストールできますが、ポートの競合などが起こる場合があるので、設定については別記事にて解説します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【環境構築】Windows10にXAMMPをインストールする方法

XAMMPのインストール方法をご紹介します。画像多めです。

作業環境

OS:Windows 10
エディション:HOME
バージョン:2004

XAMPPとは

XAMPPとは
X → Cross platform(MacでもWindowsでもLinuxでも利用できる)
A → Apache(Webサーバー)
M → MariaDB(データベース)
P → PHP(プログラム言語)
P → Perl(プログラム言語)
の略で、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたものです。
つまり、XAMMPを1つをインストールするだけで、アプリを作成する環境が構築できるのです。
PHPはブラウザだけでは動かないので、PHPを動かすために導入しています。

XAMPPのインストール方法

①公式サイトからダウンロード

下記の公式サイトにアクセスします。
https://www.apachefriends.org/jp/index.html
202005262113.png
「Windows向けXAMPP」をダウンロードします。
執筆時点(2020/05/26)では、バージョンは7.4.6です。

②インストールする

ダウンロードが完了したら、ファイルをダブルクリックしてインストールします。基本的にこだわりがなければ、「Next>」を押していくだけです。
202005262117.png
セットアップの最初の画面です、「Next>」を押します。
202005262118.png
Components(構成要素)を選びます。特に怪しいものはないので、「Next>」を押します。
202005262119.png
インストールするフォルダを選びます。Cドライブ直下で問題ない場合は、そのまま「Next>」を押します。
202005262214.png
言語の選択の画面です。日本語は選べないので、そのまま「Next>」を押します。
202005262215.png
チェックボックスのチェックを外して、「Next>」を押します。
202005262216.png
インストールの準備ができたので、「Next>」を押します。
202005262227.png
インストールが始まります。
202005262228.png
完了したら、「Finish」を押してインストール完了です。
202005262254.png
インストールが完了したら、上記の画面が表示されます。
特に難しい点などはなくインストールできますが、ポートの競合などが起こる場合があるので、設定については別記事にて解説します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

システム日時を変更してcurlで証明書検証エラーが出たら--insecureをつける

タイトルの通りです。結論はこちら

問題が発生した状況

PHPUnitを利用して、以下のようにexec()でテスト対象のAPIを叩くという内容のテストを作成していました。(デバッグ用のオプションは省略->こちらが参考になります)

curl -X POST https://[テスト対象APIのURL] -d [POSTするデータ] > [出力先ファイル]

そのテストにおいて、システム日時を変更する必要があったので、

date -s "2020-01-01 00:00:00"

とコマンドを実行してコンテナ内のシステム日時を変更する処理を追加しました。
すると、以下のようなエラーが出ました。

curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.htmlcurl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

証明書が認証されていないから、検証がいらないなら飛ばしたほうがいいよ、というようなことが書いてあります。

どうやって解決したか

テストコードなので証明書検証をスキップしました。
上記のエラーメッセージに従って --insecure のオプションをつけます。

curl -X POST https://[テスト対象APIのURL] -d [POSTするデータ] --insecure > [出力先ファイル]

これで証明書を検証せずにテストコードを走らせることができました。

まとめ

システム日時を変更することで、証明書検証が通らなくなることがあるみたいです。
今回はテストコードだったので証明書検証をスキップできましたが、本番環境だったら、日時の変更も考慮に入れて証明書を用意しないといけませんね。まあ、本番環境でそうそう日時変えないと思いますが。。。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPで日付や時刻を操作するならCarbonライブラリ

※本記事は、初心者にもわかりやすい解説をしています。

Carbonとは?

Carbonとは、PHPで標準に用意されているDateTimeクラスを拡張して、より使いやすくなった日付操作ライブラリです。弊社では、最近PHPフレームワークで「Laravel」を使うことが多いですが、LaravelにはCarbonが標準搭載されています。(Laravel5.8以降はバージョン2.X系、5.7では1.X系)
日付や時刻を扱うなら、DateTimeクラスより今時なCarbonライブラリがオススメです。

Carbonのバージョンは1.X系と2.X系があり、2.X系ではImmutable(イミュータブル)版が利用可能となります。

Immutableとは

プログラミングにおいてImmutable(イミュータブル)とは「不変」という意味で、オブジェクトの状態が変わらないことを指します。
元のデータはそのままに、複製しつつ変化させたバージョンを作るということです。
逆に、元のデータが変更可能なオブジェクトの性質をMutable(ミュータブル)と言います。

目次
Carbonのインストール
Carbon基本の使い方
日付加算
日付減算

Carbonのインストール

ライブラリのインストールは、コマンド一発でインストールできるcomposerで。

プロジェクトルートで、以下コマンドを実行します。

composer require nesbot/carbon

compose.jsonファイルに、「Carbon」が追加されていればOKです。

Carbonライブラリの使い方

Carbon基本の使い方

Carbonインスタンスを作ります。

sample.php
use Carbon\Carbon;
$carbon = new Carbon();
echo '<pre>';
var_dump($carbon);

結果は以下の通り

sample.php
object(Carbon\Carbon)#1549 (3) {
  ["date"]=>
  string(26) "2020-05-26 06:02:26.902497"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "UTC"
}

※タイムゾーンの「UTC」とは、世界各地の標準時を決めるときの基準となる「世界標準時」のことです。たとえば日本の標準時(JST)は「UTC」よりも 9時間進んでいるため「UTC+09:00」となります。

試しにUTCとタイムゾーンを日本に変更したオブジェクトの2つの中身を見てみると、ちょうど9時間後になっているのがわかります。

sample.php
use Carbon\Carbon;
$carbon = new Carbon();
echo '<pre>';
var_dump($carbon);
var_dump($carbon->timezone('Asia/Tokyo'));
exit;

結果は以下の通り

sample.php
object(Carbon\Carbon)#1166 (3) {
  ["date"]=>
  string(26) "2020-05-26 10:27:25.054927"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "UTC"
}
object(Carbon\Carbon)#1166 (3) {
  ["date"]=>
  string(26) "2020-05-26 19:27:25.054927"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(10) "Asia/Tokyo"
}

日付フォーマット

CarbonはDateTimeクラスを継承しているので、勿論formatメソッドなども使えます。

sample.php
$carbon = new Carbon();
$carbon->format('Y-m-d');//string(10) "2020-05-26"

createFromTimestamp()でタイムスタンプからインスタンスを生成

$carbon = Carbon::createFromTimestamp(9876543210);//2010-10-09 16:16:58

日時形式の文字列からインスタンスを生成

$carbon = Carbon::parse('2020/05/31 12:31:26');//2020-05-31 12:31:26

本日の00時00分00秒を取得

$carbon = Carbon::today('Asia/Tokyo');//2020-05-31 00:00:00

日付加算

明日の「現在時刻」を取得:その1

sample.php
$carbon = new Carbon();
$addday = $carbon->addDay();//2020-06-01 12:45:57

明日の「現在時刻」を取得:その2

sample.php
$carbon = new Carbon();
$nextday = new Carbon('next day');//2020-06-01 12:45:57

明日の「00時00分00秒」を取得

sample.php
$tomorrow1 = new Carbon('tomorrow');
又は
$tomorrow2 = Carbon::tomorrow();
echo '<pre>';
var_dump($nextday);
var_dump($tomorrow1,$tomorrow2); //2020-06-01 00:00:00(どちらも同じ結果)

N日後の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$addday3 = $carbon->addDays(3);//2020-06-03 12:45:57

N日後の「00:00:00」を取得

sample.php
$today = new Carbon('today');
$addday5->addDays(5);//2020-06-05 00:00:00

1日後の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$addday3 = $carbon->addDay();//2020-06-03 12:45:57

指定日時の「00:00:00」を取得

sample.php
Carbon::createMidnightDate(2020, 7, 25);//2020-07-25 00:00:00

指定日時の「現在時刻」を取得

sample.php
Carbon::createFromDate(2020, 7, 25);//2020-07-25 12:45:57

Nか月後の「00:00:00」を取得

sample.php
$carbon = new Carbon('today');
$addmonth3 = $carbon->addMonths(3);//2020-08-31 00:00:00

Nか月後の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$addmonth3 = $carbon->addMonths(3);//2020-08-31 12:45:57

N年後の「00:00:00」を取得

sample.php
$carbon = new Carbon('today');
$addyaear3 = $carbon->addYears(3);//2023-05-31 00:00:00

N年後の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$addyaear3 = $carbon->addYears(3);//2023-05-31 12:45:57

N時間後を取得

sample.php
$carbon = new Carbon('today');
$addHour3 = $carbon->addHour(3);//2020-05-31 03:00:00

N分後を取得

sample.php
$carbon = new Carbon('today');
$addMinutes3 = $carbon->addMinutes(3);//2020-05-31 00:03:00

N秒後を取得

sample.php
$carbon = new Carbon('today');
$addSeconds = $carbon->addSeconds(3);//2023-05-31 00:00:03

日付減算

昨日の「現在時刻」を取得:その1

sample.php
$carbon = new Carbon();
$subDay = $carbon->subDay();//2020-05-30 12:45:57

昨日の「00:00:00」を取得

sample.php
$yesterday = new Carbon('yesterday');//2020-05-30 00:00:00
// 又は
$yesterday = Carbon::yesterday();//2020-05-30 00:00:00

N日前の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$subdays = $carbon->subdays(3);//2020-05-28 12:45:57

N日前の「00:00:00」を取得:その1

sample.php
$today = new Carbon('today');//2020-05-31 00:00:00
$subDays = $today->subDays(5);//2020-05-26 00:00:00

Nか月前の「00:00:00」を取得

※2020年2月は29日までのため、31日-29日=2日が加算された3月2日となるので注意

sample.php
$carbon = new Carbon('today');//2020-05-31 00:00:00
$subMonth = $carbon->subMonth(3);//2020-03-02 00:00:00

Nか月前の「現在時刻」を取得

sample.php
$carbon = new Carbon();
$subMonth = $carbon->subMonth(3);//2020-03-02 12:45:57

N年前の「00:00:00」を取得

sample.php
$carbon = new Carbon('today');//2020-05-31 00:00:00
$subYears = $carbon->subYears(3);//2017-05-31 00:00:00

N年前の「現在時刻」を取得

sample.php
$carbon = new Carbon();//2020-05-31 12:45:57
$subYears = $carbon->subYears(3);//2017-05-31 12:45:57

N時間前を取得

sample.php
$carbon = new Carbon('today');//2020-05-31 00:00:00
$subHours = $carbon->subHours(3);//2020-05-30 21:00:00

N分前を取得

sample.php
$carbon = new Carbon('today');//2020-05-31 00:03:00
$subMinutes = $carbon->subMinutes(3);//2020-05-30 23:57:00

N秒前を取得

sample.php
$carbon = new Carbon('today');//2020-05-31 00:00:00
$subSeconds = $carbon->subSeconds(3);//2023-05-31 23:59:57
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPWordテンプレートに改行を含む文字列をセットする

やりたいこと

PHPOffice/PHPWord のテンプレートに、改行を含む文字列をセットしたい。

解決方法

改行文字を <w:br /> に置換してセットする。

<?php
use PhpOffice\PhpWord;

$phpWord = new PhpWord\PhpWord();

// テンプレートファイルの読み込み
$templateProcessor = new PhpWord\TemplateProcessor('/path/to/template/file.docx');

// テンプレートにセットする値
$rawValues = [
    'foo' => "bar\nbuz\n",
];

foreach ($rawValues as $key => $value) {
    // 改行文字を <w:br /> に置換する
    $processedValues[$key] = preg_replace('/\n/', '<w:br />', $value);
}

// テンプレートに値をセットする
$templateProcessor->setValues($processedValues);

// ファイルを保存する
$templateProcessor->saveAs('/path/to/save/file.docx');

備考

思わぬデザイン崩れの原因にもなりやすいので、できるだけセットする文字列に改行文字を含まない構成を検討したほうがよいと思います。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

誰でもなれる自宅警備員入門(IoT)

記事をご覧くださりありがとうございます!
初めまして。AI/IoT分野のプロフェッショナルを目指して修行中の、のぶたんです。?

今回はESPマイコンやセンサーなどを駆使すると遠隔でリモコン操作したり、お家の様子を監視できるのでみんな自宅警備員になれるゾとことについて取り扱っている記事です!

作った基板①

必要な部品
①赤外線LED←リモコン操作用
②抵抗
③CDSセル←部屋の明るさ監視用
④圧電ブザー←起動音・操作音出力用
IMG_20200526_162838.jpg

作った基板②

必要な部品
①圧力センサー←ドアの開閉状況監視用
※画像は省略(基板①のようにESPマイコンにセンサーをつないだだけ)

作った基板③

必要な部品
⑥水温センサー←カメの水槽温度監視用
※画像は省略(基板①のようにESPマイコンにセンサーをつないだだけ)

実際の監視、操作画面(室内の明るさ、シーリングライトリモコン操作・開閉状態)

Screenshot_20200526-162547.jpeg
→工夫ポイント:CDSセルにより室内の明るさを確認できるので、シーリングライトがちゃんと消灯できているかが確認できます。
Screenshot_20200526-162608.jpeg

実際の監視画面(カメの水槽温度)

Screenshot_20200526-162531.jpeg

感想

リアルタイムにグラフがにょろにょろ動くので監視している気分が味わえます。
→今回は、chart.jsを用いてグラフをつくりました!
さらに、これを家の全室に配置すれば、自宅警備員ごっこができます。

ソースコード

しばし待たれよ!

最後に

今回は自宅警備員デビューする記事について紹介しました。
IoTの面白さを雰囲気だけでも感じ取ってくださると幸いです。
皆さんもアイデア次第でいろいろできるので、家の安全を守る素敵な自宅警備員になってくださいね(笑)

冗談はさておき、技術的な話をちょこっと。
★シーリングライト操作に関しての処理は下記のようになっています。
EYhuIJuUwAEWfyO.jpg
★センサデータのPOSTに関しての処理は
サーバ側にFlaskを使用しています。
一定周期でPOSTされたセンサーデータをjsonで記録して、それをajaxを用いて取得してchart.jsでグラフのフロント表示しています。

この記事では、全体像だけ説明したので作り方は、githubに乗っけようと思います。

それでは✋

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ElasticbeanstalkでAmazon Linux 2のプラットフォームブランチを選択するとebextensionsが動かない

AWS BeanstalkでPHPプラットフォームを選択するとき、最新のプラットフォームブランチだとAmazon Linux2を使うようになっている。
Amazon Linuxのときに使っていた、ebextensionsがそのままだと動かなかったのを書き換えたのでメモ。
/var/app/ondeckで動いていた部分を変更。

一応ログを見る限り、composer installは自動で走っているみたいなので、00-composerはいらないかもしれないと思う。
ここのコマンドのエラーログは、/var/log/cfn-init-cmd.logに出力される

変更前

.ebextensions/*.config
commands:
  01-updateComposer:
    command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: COMPOSER_HOME
    value: /root

  - namespace: aws:elasticbeanstalk:container:php:phpini
    option_name: document_root
    value: /public

container_commands:
  00-composer:
    command: "php /opt/elasticbeanstalk/support/composer.phar install"
    cwd: "/var/app/ondeck"
  01-environment:
    command: "mv /var/app/ondeck/$ENV_FILE /var/app/ondeck/.env"
  02-migrate:
    command: "php artisan migrate"
    cwd: "/var/app/ondeck"

変更後

.ebextensions/*.config
commands:
  01-updateComposer:
    command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: COMPOSER_HOME
    value: /root

  - namespace: aws:elasticbeanstalk:container:php:phpini
    option_name: document_root
    value: /public

container_commands:
  00-composer:
    command: "php /usr/bin/composer.phar install"
    cwd: "/var/app/staging"
  01-environment:
    command: "mv /var/app/staging/$ENV_FILE /var/app/staging/.env"
  02-migrate:
    command: "php artisan migrate"
    cwd: "/var/app/staging"
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel リクエストログの場所

目的

  • ログの場所を知ったため忘れない様にメモする。

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.3)
ハードウェア MacBook Pro (16-inch ,2019)
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ 16 GB 2667 MHz DDR4
グラフィックス AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いて導入
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いて導入

ログの場所

  • ログは下記に存在する。
    • アプリ名ディレクトリ/storage/logs/laravel.log

出力

  • アプリ名ディレクトリで下記コマンドを実行してログを出力する。

    $ tail -f storage/logs/laravel.log
    
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

学習記録PHP#3(クラス)

PHPにおける関数とクラスについて

クラスの概要

クラスとは様々な処理を簡単に行うための道具。

PHPの場合は関数とクラスが混在している。
現在、追加されているのはクラスが主流。

クラスの中身は2つ

プロパティ:何かを記録するもの(変数)
メソッド:何かの処理を行うもの(関数)

クラス:設計図

設計図の中には変数(プロパティ)と関数(メソッド)が入っている。

クラスとインスタンス

クラスとは設計図。
インスタンス(本体・実体)/オブジェクト(物体)
クラスを使う際はクラスから作られたインスタンスを使う。
インスタンスは複数作成可。

インスタンス化

$変数名 = new クラス名();
インスタンス化:クラスから実際に作られたインスタンスを変数に代入すること。

クラスの使い方


$ins1 = new Personal();
$ins1 -> name = 'A太郎';
$ins1 -> age = 20;
->:アロー関数

インスタンスが代入された変数のデータ型はstring型となる。
print(gettype(変数));でチェック。

クラスの使い方まとめ

  • インスタンス化をする
  • プロパティに必要な値を入れる
  • メソッドで処理を実行する
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者向けハンズオン】WindowsにDockerでPHP/MySQL/Apache環境構築(第2回:PHP動かすところまで)

概要

 前回の記事はこちら:

 新人もベテランも本当にエンジニアによくある、「開発環境建てるのめんどくさい問題」を解決する糸口を模索していました。そこで行き当たったWindows環境でDockerを使って開発出来るようにする、という着地に対してアプローチしていくハンズオンです。
 1回1時間程度の作業時間でやるルールにして、記事は細切れに書いて行くスタイル。あと参考にさせていただいた記事はこちらです。
 ※https://qiita.com/hirosnow/items/cbe2a90ba1c6921fea1a

目標

  • PHP/MySQL/Apacheで古き良きWEBアプリケーションの開発環境を作る
  • つくった開発環境を他の人に配布できるようにする
  • ↑の「配布された人が簡単に開発環境を作れる手順をまとめる」ところまでがゴール

では行ってみましょう。

本日の作業内容

作業ディレクトリの作成

参考にした記事に従って、「C:\Users\あなたのPCのユーザー名\home」というディレクトリを作成しました。
※参考との相違点①:「\work」になっているところを「\home」い変えました(好み)

home/
 ├ html/
 │ └ index.php
 ├ mysql/
 ├ php/
 │ └ php.ini
 └ docker-compose.yml

設置したファイルの記述

ちなみにここに来て大変今更ですが「Dockerってなんや」「Dockerfile?docker-compose.yml?」あたりでそもそも理解に躓いたタイミングがあり、その解消になったyoutube動画を転載させていただきます。
https://www.youtube.com/watch?v=VIzLh4BgKck

記述したdocker-compose.yml

version: '3'

services:
  php:
    image: php:7.2-apache
    volumes:
      - ./php/php.ini:/usr/local/etc/php/php.ini
      - ./html:/var/www/html
    ports:
      - 32778:80
  mysql:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test
      MYSQL_USER: test
      MYSQL_PASSWORD: test
    command: --innodb-use-native-aio=0
    ports:
      - "32780:3306"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_ARBITRARY: 1
      PMA_HOST: mysql
      PMA_USER: test
      PMA_PASSWORD: test
    restart: always
    links:
      - mysql:mysql
    ports:
      - '32779:80'

記述したphp.ini(ホントはxamppでもともと使ってたやつを入れたんですが、恥ずかしいのでこちらの記述で)

[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

記述したindex.php(ここは別になんでもいいと思う)

<?php
    phpinfo();

いざ、起動

該当フォルダに移動

cd (docekr-compose.ymlのあるディレクトリ)

いざ、起動

docker-compose up -d

接続してみる

http://127.0.0.1:32778/」

おお、すごい。来てる。簡単。
image.png

終わり。

コマンド一発は超絶楽ですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者向けハンズオン】WindowsにDockerでPHP/MySQL/Apache環境構築(第1回:DockerDesktopを入れるまで)

概要

 新人もベテランも本当にエンジニアによくある、「開発環境建てるのめんどくさい問題」を解決する糸口を模索していました。何しろ、自分と共通の開発環境つくってもらうのがめんどくさくて仕方がない。
 で、そういった課題への解決策としては当然のように「Docker」が提唱されることになるわけです。
「でも自分の開発環境Windowsなんだよなあ」
 とはいえ行けるかどうか半信半疑で調べてみたら、結構参考記事が上がっていたので「よしじゃあこれも備忘つけながらやってみるか」と思い立った次第です。

 同じく例によって、1回1時間程度の作業時間でやるルールにして、記事は細切れに書いて行くスタイル。長くなると読む側もダレるかなあと思ったというのもあります。

目標

  • PHP/MySQL/Apacheで古き良きWEBアプリケーションの開発環境を作る
  • つくった開発環境を他の人に配布できるようにする
  • ↑の「配布された人が簡単に開発環境を作れる手順をまとめる」ところまでがゴール

では行ってみましょう。

作業内容

dockerインストール

こちらからインストール → https://docs.docker.com/docker-for-windows/install/

その後ダウンロードしたexeファイルを使ってインストール。

image.png

↓↓↓

image.png

↓↓↓

無事完了
image.png

まさかのエラー(でなければスルー)

意気揚々とインストールしたdockerを始めようとしたらいきなりエラーで出鼻をくじかれる。なぜ。。。
image.png

調べたらこんな記事が出てきました。
https://qiita.com/toro_ponz/items/d75706a3039f00ba1205

手順通りやったらできました。良かった。PCの管理者、ユーザーの利用者で躓くかもしれない。
image.png

初期セットアップ

とりあえず指示通り青いボタンを押しながら「Start」「Next Step」
image.png

(色々出る)
image.png

Docker Hubのアカウントが必要でした。
僕はたまたまもってましたが、ここで取得しましょう。
https://hub.docker.com/
image.png

で、Sign inしておしまいです。チュートリアルとか色々出るけど最後はこの画面でした。
image.png

終わり。

なんだかんだ読みながらやるとインストールだけで1時間とか立ちますよね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PhpStorm pstorm コマンドでターミナルからプロジェクトを開く

PhpStorm をインストールすると pstorm コマンドも一緒にインストールされていました。(今日知った)

$ which pstorm
/usr/local/bin/pstorm
$ pstorm <プロジェクトのパス>

でプロジェクトを開くことができます。
カレントディレクトリのプロジェクトを開く場合は下記のコマンドで開きます。

$ pstorm .

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac Laravel 7 Authを用いたユーザ登録 ログイン ログアウトなどの機能を作成する ver 2.0

目的

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.3)
ハードウェア MacBook Pro (16-inch ,2019)
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ 16 GB 2667 MHz DDR4
グラフィックス AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いて導入
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いて導入

条件

  • $ laravel newコマンドが実行できること。

概要

  1. アプリの作成
  2. DBの作成と設定
  3. マイグレーション
  4. 確認

詳細

  1. アプリの作成

    1. Laravelアプリを作成したいディレクトリにターミナルで移動する。
    2. 下記コマンドを実行してLaravelのアプリを作成する。

      $ laravel new アプリ名 --auth
      
  2. DBの作成と設定

    1. 下記コマンドを実行してMySQLにターミナルからログインする。MySQLのルートユーザのパスワードを忘れた方はこちら→MySQL 8.0.18 のrootパスワードを忘れた時のリセット方法

      $ mysql -u root -p
      
    2. 下記コマンドを実行して

    3. アプリ名ディレクトリ/databases

  3. マイグレーション

    1. 先のコマンドにて作成されたアプリ名ディレクトリに移動する。
    2. 下記を実行してマイグレーションを行う.

      $ php artisan migrate 
      
  4. 確認

    1. アプリ名ディレクトリで下記コマンドを実行してローカルサーバを起動する。

      $ php artisan serve
      
    2. 下記にアクセスしてログインフォームが表示される事を確認する。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む