MinEMemO
【PHP】ディレクトリにあるファイルを削除する関数

2020-11-25

はじめに ファイルを削除する関数を書いたので載せておきます。 ファイル、ディレクトリを操作するメソッドはいろいろありますが、今回はis_Dot()がつかえる、DirectoryIteratorクラスを使っています。 引数で以下の設定ができます。 削除対象のフォルダパス 削除対象の拡張子 〇日前のファイルを削除対象とするか パスがファイルの場合に条件を満たせば削除し、パスがフォルダなら再帰処理を行い配下のフォルダまですべて処理を行います。 なお、 $pathに渡したフォルダのパスのファイルが削除対象 になります。 ご利用の際は動作確認を行ったうえで、自己責任でお願いします。 ファイルを消すものなので、テストして慎重に使ってください 。 DirectoryIterator クラス https://www.php.net/manual/ja/class.directoryiterator.php コード php <?php /** * $day日前より古い+$exの拡張子のファイルを対象に$pathフォルダから削除する * * @param {string} $path フォルダのパス * @param {array} $ex 配列に含まれる拡張子を削除対象とする * @param {int} $day $day日前より古いファイルを削除対象とする * * ※$path = 'folderPath'に削除したいファイルがあるフォルダを指定してください。*/ function fileDelete ( $path = 'folderPathを指定する' , $ex = array ( 'csv' ) , $day = 7 ) { //dirがある、$exが配列、$exの値がある、$dayが整数だったら処理開始 if ( is_dir ( $path ) && is_array ( $ex ) && count ( $ex ) !== 0 && is_int ( $day ) ) { $date = new DateTime ( ) ; $dayAgo = $day -> modify ( '-' . $day . 'days' ) -> getTimestamp ( ) ; //確認するときは ->format(Y-m-d H:i:s) すると日時でみれます $dir = new DirectoryIterator ( $path ) ; foreach ( $dir as $file ) { //. と .. は無視する if ( ! $file -> isDot ( ) ) { //ファイルの時の処理 if ( $file -> isFile ( ) ) { //$dayAgoより古い & 対象の拡張子のファイルを削除 if ( $file -> getMTime ( ) < $dayAgo && in_array ( $file -> getExtension ( ) , $ex , true ) ) { unlink ( $file -> getPathname ( ) ) ; } } //ディレクトリの時の処理 if ( $file -> isDir ( ) ) { fileDelete ( $file -> getPathname ( ) ) ; //ディレクトリなら再帰処理 } } } } }
【Laravel】データベースに繋がらない時の確認方法

2020-06-28

はじめに JavaScriptはVue.js、jQueryでの業務経験があるのですが、PHPはフレームワークを使ったことがなかったので、最近Laravelの勉強を始めています。 一旦たにぐちさんの動画で環境構築、軽くMVCを動かしてみるというところまでは詰まらずいけたのですが、その後自分で新たなに勉強していくなか、データベースに繋がらない時の確認方法が必要になったので、記事しておきます。 今回は以前使用した sqliteと今回使ったMySQLで確認 をしたときの方法です Laravel入門 データベースに繋がらない時の確認方法 まずLaravelで接続状態確認 以下の Laravelのコマンドで今の状況を確認できます。 php artisan migrate:status 何かしらのエラーがてて、繋がってなかったら以下「2」以降のいづれかを確認します。 個人的に順番はつけていますが、目星がついてる場合は怪しい個所から調べても おけまる です php.iniを確認する phpの設定ファイルを確認し使いたいデータベースがコメントアウトされていないか確認する。 php.iniにはたくさん記述があるので、Ctrl+Fで検索すると見つけやすいです。 php.ini extension=pdo_sqlite ※sqliteならこれを確認力 php.ini extension=mysqli ※MySQLならこれを確認 .env のデータベース設定がきちんとなっているか .envはLaravelの設定ファイルです。 TOPにあるので中身を確認します。 .envにもたくさん記述があるので、Ctrl+Fで検索すると見つけやすいです。 .env DB_CONNECTION=sqlite ※sqliteならこれだけ記載し他のはコメントアウトで非活性にしてOK .env DB_CONNECTION=mysqlDB_HOST=ホスト名DB_PORT=ポートDB_DATABASE=DB名DB_USERNAME=ユーザネームDB_PASSWORD=パスワード ※MySQLは適宜今の状況にあったものを記載します database.phpの対象のDB設定がきちんとなっているか Laravelの config/database.php は .env ファイルの設定を参照し、なければ第二引数の値が設定として参照されるファイルです。 なので、MySQLの場合は .env ファイルの設定がされているものは特に変更しなくても基本は動くと思います。 ただし、sqliteの場合は初期設定のDBのファイル名が「database.sqlite」なのでファイル名を変更した場合は適宜記載します。 php 'database' => env ( 'DB_DATABASE' , database_path ( 'DBのファイル名のみ記載' ) ) ※sqliteの場合 使ってるサーバーは起動してるか これ本当に凡ミスでした😅 当時XAMPPだったのですが、XAMPPを起動していなくてエラーになるということがありました笑 サーバーはちゃんと起動しましょう😅 設定ファイル変更後にキャッシュはのこってないか いろいろと設定ファイルを変更した場合に、前回の設定値がキャッシュで残ることがあるそうです。 見返しても間違いがない場合は以下のコマンドで設定ファイルのキャッシュをクリアしてみてください。 php artisan config:cache 以上です! いろいろと大変なこともありますが..お互い頑張りましょう!
【Git/GitHub】GitHubにファイルを上げないようにする方法

2020-06-09

はじめに Gitでバージョン管理をしている場合に、GitHubにあげたくないファイルがあると思います。 例えばパスワードなどが記載されていたりするファイルなどですね。 その時にGitのバージョン管理から外す=上げないようにするための方法を記載します。 Gitのバージョン管理から外す方法 .gitignoreという名前のファイルを作成する バージョン管理から除外したいファイルやフォルダがある階層に.gitignoreを置く .gitignoreに除外したいファイルのパスを記載する .gitignoreファイルの記載例 gitignore # #はコメントです。以下は一例なので、そのほかの記載はネットなど見てみてください。 # 指定したファイルを除外 #.gitignoreがおいてある階層のindex.htmlのみが除外される / index.html # 指定したファイルをすべて除外 #.gitignoreがおいてある階層配下でindex.htmlというファイル名を全部除外する index.html #指定したディレクトリをすべて除外 #.gitignoreがおいてある階層配下でdirというフォルダ配下を全部除外する dir / .gitignoreの特徴の一例 .gitignoreは複数のディレクトリに置くことができます 深いフォルダの.gitignoreが優先されます 個人的に上記を踏まえ、ディレクトリごとに簡単な記載で.gitignoreファイルを作成してもよいのかなと思っています。 慣れてきたら、まとめて無駄なく書きたい気持ちはありますが。 以下のサイトが参考になるので、もっと詳しい内容を知りたい場合はぜひ参考にしてみてください。 [Git] .gitignoreの仕様詳解 A collection of .gitignore templates ※公式の .gitignore のテンプレート集です。
【Git/GitHub】開発中の主な流れとコマンド

2020-06-07

はじめに 個人でGit、GitHubを使ったことはあるのですが、現職ではGitが採用されていないためチームでGitを使って開発するときにどういう風に使うかを具体的に知りたくて勉強しました。 今回は実際にGitを使いながら開発を行う際の流れと主に使うコマンドをまとめていきます。 今後自身で使っていく過程で、知識がアップデートされたら内容も更新していくかもしれません。 不備不足あればアドバイスいただけると、とてもうれしいです。 よろしくお願いします😀 開発中のGitコマンドの流れ すでに一度リモートリポジトリから git clone などをおこなっており、ローカルとリモートの同期がとれている前提です。 Gitでバージョン管理を始めるときに最初に行うコマンドについては以下を参照してください。 [【Git/GitHub】Gitでバージョン管理を始めるときに最初にするコマンド](../ 1. 現在の状態を確認し把握する 作業前に以下のコマンドを適宜用いて、状況を確認して作業に入ります。 git branch 今どんなブランチが存在するか確認するコマンドです。 ブランチ名の一覧が表示されたときに * がついている箇所が今いるブランチになります。 #ローカルブランチの一覧を表示git branch #ブランチを新規作成git branch ブランチ名 #ローカルとリモートの全てのブランチを表示git branch -a #リモートブランチの一覧を表示git branch -r ブランチとは 開発者ごとの作業フォルダのようなものです。 おおもとのmasterブランチから 「git branch ブランチ名」 を実行することで作業者専用のブランチを作成し、他の人に影響しない、かつ自分も影響を受けない状態で開発を進めることができます。 修正が完了した場合は、基本的にブランチをリモートリポジトリにpushして、プルリクエストを行い、コードをチェックしてもらった後に、masterブランチへ統合するような流れになります。 git status 変更されているファイルがないかを確認するコマンドです。 変更したけど git add されていない git add したけど git commit されていない gitも認識していない新規ファイルがある などを確認できます。 #現在の変更状況を確認git status #現在の変更状況を短い形式で表示できますgit status -s (見れたらかっこいいので個人的に使いたい笑) 特に何もなければ nothing to commit, working tree clean と表示されます。 ※コミットするものは何もない、作業ツリーはクリーンです。のような意味 git diff ファイルの変更差分を確認するコマンドです。 #git addする前の変更分を表示(ワークツリーとステージ)git diff#ファイル名の指定もできますgit diff ファイル名 #git add した後の確認(ステージとリポジトリ)git diff --staged ※ネットでは git diff –cached のほうがよく出てくるが出力結果は同じでした 用語について ワークツリー:作業中のPCフォルダのこと ステージ: git add した内容が保存される場所 リポジトリ:git commit した内容が保存される場所 git log 変更履歴(git commitしたもの)を表示する commit:コミットID Author:作成者 Date:日時 上記と git commit 時のコミットメッセージなどが表示されます。 上から順に新しいものになります。 #変更履歴を確認git log #1行表示 git log --oneline #ファイルの変更差分を表示git log -p ファイル名 #表示するコミット数を制限する(最近のを見たいときは数値をしぼったりする)git log -n コミット数 2. ブランチを作成し切り替える(作業ブランチに移動する) 作業用のブランチを作成し切り替えます。 1. git branch ブランチを確認するコマンドですが、ブランチを新規作成するときも使います。 #ブランチを新規作成git branch ブランチ名 2. git checkout git branchで今いるブランチが * で表示されます。 自身の作業するブランチにいない場合は切り替えます。 #ブランチ切り替えgit checkout ブランチ名 # 新規作成+切り替えを同時に行うこともできますgit checkout -b 新ブランチ名 git checkout はブランチ切り替え以外にファイルの変更の取り消しもできます。 以下のようなコマンドになります。 #ファイルへの変更を取り消すgit checkout -- ファイル名#ディレクトリへの変更を取り消すgit checkout -- ディレクトリ名#全変更取り消しgit checkout -- . ※- -はブランチ名とファイル名をGitが判別するために記載が必要です。 ※前回git addした内容に戻すというような処理が行われるそうです。 (前回のステージと同じ状態になる=更新前に戻る) 作業用のブランチへの切り替えが完了したら、いよいよローカルフォルダ(自身のPCフォルダ)で作成や編集です🧐 3. ファイルの編集が完了したらGitに記録 作業用のブランチでファイルを編集した後は、Gitに変更を記録します 1. git add ステージといわれる場所に記録したいインデックス(変更内容)を記録します。 ※git commit 前の準備を行うような場所 #全ファイルをステージに追加git add .#ファイル名、ディレクトリ名の指定もできますgit add ファイル名git add ディレクトリ名 なお git add の取り消しはこちらです。 #ステージ(add)を取り消したいgit reset HEAD ファイル名 インデックスの記録で行われることの概要 リポジトリに作業したファイルを暗号化+圧縮化した「ファイル1」が作成され、 ステージに今回の作業ファイルは「ファイル1」だと紐づけたものがインデックスとして保存されます。 2. git commit リモートリポジトリにあげる(git push)前に必要なコマンドです。 git addでステージ作成したインデックスをもとにツリーを作成し、コミットといわれる情報をリポジトリに保存します。 #リポジトリに変更を記録(ツリー、コミット作成)git commit -m "コミットメッセージ" ※コミットメッセージは更新内容を簡潔に短く書きましょう。 ※Windowsのコマンドプロンプトだと日本語が表示できなかったです。 # -m がない場合はテキストエディタかコマンドプロンプト上でメッセージを記載する必要があります。git commit#コミットメッセージを -m で改行したい場合は -m を改行したいポイントで追加します。git commit -m "1行目" -m "2行目" #ファイルの変更内容をcommit実行前に確認できますgit commit -v #直前のコミットを取り消したい、やり直したいgit commit --amend 直前のコミットを取り消し(amend)について Push済みのコミットは戻したらいけません。 Pushした後に誰かがクローンしたら、履歴が違うのでクローンした人があげれなくなるそうです。 そのためPushしたコミットは修正しないほうが良いそうです。 Push後の修正はgit commitでもう一回今の状況をコミットするが正解 です。 コミットに入っている情報 ツリー 作成者 日付 メッセージ add、commitまでしたときにリポジトリがもっているデータ 暗号化+圧縮化されたblobファイルのハッシュID ツリー コミット この三つを「Gitオブジェクト」と言うそうです。 ※確認するコマンドもあります git cat-file -p <オブジェクト名> ハッシュIDとは ヘッダー(ファイル内容の文字数など、ファイルのメタ情報)とファイル内容を、SHA-1というハッシュ関数で40文字の英数字に変換したもの。 ハッシュIDのうち、先頭2文字をディレクトリ名に、残り38文字をファイル名にして保存されています。保存先はローカルの .git/objects という場所です。 4. Gitへの記録が完了したら、リモートリポジトリにアップする いよいよリモートリポジトリにアップします。 ※git push する前も「1. 現在の状態を確認し把握する」で紹介しているコマンドを利用して、状況の確認はしておきましょう。 git push ローカルリポジトリで行った編集内容をリモートリポジトリにアップします。 git add、git commit を行ったものがアップされます。 git push リモート名 ブランチ名 というコマンドになります。 #ブランチ名は自分が作成したブランチ名が主になると思います。git push origin ブランチ名 よく見るpushコマンド「git push origin master」は「originというリモート名のmasterというブランチにpushする。」という意味になります。 チーム開発ではプルリクエストを行い、masterへ統合される流れがおおいので、masterを指定することはあまりないと思います。 リモート名のoriginとは リモート名とは「アクセス先のリモートリポジトリのデフォルトの名前」です。 以下のページのように初回に 「git remote add origin リモートリポジトリのURL​」 でリモートリポジトリのURLをoriginというリモート名で紐づけるのですが、originはGitのデフォルト値のようで一般的にoriginになっていることが多いようです。 【Git/GitHub】Gitでバージョン管理を始めるときに最初にするコマンド なお、リモート名の確認は 「git remote」で確認できます。 これでローカルリポジトリの内容が、リモートリポジトリにアップされました。 GitHubにログインしてWEB上でリモートリポジトリを確認すると、反映されているはずです。 プルリクエストはGitHubにログインしてWEB上で行います。 サクッと手順記載するので、参考になれば幸いです。 プルリクエスト(Pull requests)をする場合 プルリクエストの仕方 GitHubへ移動 Pull requestsをクリック New Pull Requestをクリック compareには自身が作成したブランチを選択する※compareがbaseにとりこまれます。 baseが統合先のブランチでcompareには自身が作成したブランチを選択するケースが多いと思います。 適宜コメント入力+Reviewersで誰にレビュー依頼するかを選択する Create Pull requestをクリック ここまでが、開発中によく使うコマンドや流れになります! 他に作業前の同期や調整時に使うコマンド(git fetchとかpullとか)もありますが、また後日記載していきます
【PHP】データの連番確認と、抜け番またはMAX+1を生成する関数

2020-06-04

はじめに データベースから持ってきた数字のデータをチェックし、「抜け番」または「MAX+1」を生成する関数を作成しました。 作成環境のPHPが5.3系だったので、コードは5.3系で動くものになっています。 何か不整合があれば教えてください。 またご利用の際は、ご自身でしっかりチェックを行い、自己責任でご利用をお願いいたします。 コード PHP /** サンプルデータ* DBなどから取得したりする流れになると思いますが、処理中に最後の番号を参照するので、昇順できちんとソートしましょう。*/ $numData = array ( 1 , 2 , 4 , 5 ) ; /*** 新規番号を抜け番 or MAX+1で発行する* @param {array} $numData DBや何かしら持ってきたNoのデータ配列* @return {number} 抜け番 or MAX+1*/ function issueNo ( $numData ) { $maxIdx = count ( $numData ) - 1 ; $range = range ( 1 , $numData [ $maxIdx ] ) ; //1~データの最後のNoで連番の配列を作成 foreach ( $range as $idx => $rangeNo ) { if ( $rangeNo !== $numData [ $idx ] ) return $rangeNo ; //抜け番を返して終了 } //MAX+1を返して終了 return $numData [ $maxIdx ] + 1 ; } 処理結果 抜け番があるデータを処理した場合 例えば array(1,2,4,5); をこの関数に渡し処理した場合は 抜け番の「3」がリターン されます。 抜け番がないデータを処理した場合 例えば array(1,2,3,4,5); のようなデータを処理すると MAX+1の「6」がリターン されます。 解説 ポイントはrangeです。 PHP $range = range ( 1 , $numData [ $maxIdx ] ) ; rangeで今回作成される配列は 1~取得データのMAX値の連番の配列 になります。 rangeで作成した連番の配列と取得したデータの数字の配列を比較する ことで、連番かどうかを確認しています。 以上です。 慣れないうちは頭で処理を想像するのが大変かもしれませんが、作っていれば慣れていくので大丈夫です
【Git/GitHub】Gitでバージョン管理を始めるときに最初にするコマンド

2020-06-01

はじめに 個人でGit、GitHubを使ったことはあるのですが、現職ではGitが採用されていないためチームでGitを使って開発するときにどういう風に使うかを具体的に知りたくて勉強しました。 今回はGitでバージョン管理を始めるときに最初にするコマンドをまとめておこうと思います。 ※前提としてGitがインストール済でGitHubアカウントは既に持っている状態 ※200606にolの番号リストで表示していた部分をh3に置き換えました。 それでも微妙だけど、単純に使っていくため致し方なし😐 GitとGitHubとは ざっくりですが、簡単にいうと以下のようなものです。 Git ファイルをバージョン管理する仕組み GitHub Web上でファイルの保管、共有する機能 既存のプロジェクトから作業を始める場合 PCの作業フォルダにコマンドで移動 cd ディレクトリ名 ※Gitコマンドではありません。 Windows/Macの共通のコマンドでフォルダ移動するためのコマンドです​ ローカルリポジトリにリモートリポジトリの内容をコピー(CLONE) git clone リポジトリ名​ ※リポジトリ名はリポジトリのhttps~~.gitのURLでOK リポジトリとは バージョン管理においてファイルやディレクトリを保存する場所のことをリポジトリといいます。 ローカルリポジトリ:作業者のPC内のリポジトリ リモートリポジトリ:Web上のGitHubのリポジトリ 新規プロジェクトから作業を始める場合 PCの作業フォルダにコマンドで移動 cd ディレクトリ名 ※Gitコマンドではありません。 Windows/Macの共通のコマンドでフォルダ移動するためのコマンドです 移動先のフォルダでローカルリポジトリを作成 git init​​ GitHubでリモートリポジトリを新規作成 リモートリポジトリがない場合はWebでGitHubにログインし、リポジトリのページへアクセスし 「New」 をクリックすると作成できます。 リポジトリ新規作成時にReadmeファイルを同時に作成するチェックボックスがあります。 チェックせずに進むとローカルリポジトリに紐づけるために、以降必要なコマンドを表示してくれるので参考にしてみてください。 以降の git remote や git push の流れなどが書いてあります。 originという名前にリモートリポジトリのURLを紐づける git remote add origin リモートリポジトリのURL​ git remote をしなかった場合は、毎回リモートリポジトリのURLを打たないといけなくなります。 またoriginとはGitの慣用句みたいなもので、アクセス先のリモートリポジトリのデフォルトの名前(リモート名)です。 例えば git push origin master というコマンドなら、リモートリポジトリのmasterブランチへpushするという意味になります。 ローカルリポジトリにファイルを作成し、リモートに初回プッシュをしておく git push -u origin master -uについて 今後pushするときに origin master を以後省略できるようにするためのpushコマンドのoptionです。 git pushのデフォルトが origin master なので省略できます。 -uは 初回のみ 使います。 これでGitでバージョン管理を行う準備ができました。 このあとは add commit push など様々なGitコマンドを利用しバージョン管理を行いながら開発をすすめます 今回参考にさせていただいた教材について 教材はUdemyの有料の動画教材です。 Git: もう怖くないGit!チーム開発で必要なGitを完全マスター メンターのPCがMac、テキストエディターがAtomなので環境が違うと少し詰まりますが、個人的には学習を進める上では大きな障害にはなりませんでした。 ※Windowsの場合はファイル操作などの簡単なコマンドを調べる必要はあります。 ※Git利用時にAtomを紐づけてるのですが、私はVS CODEを使っており紐づけがうまくいきませんでした。 ※テキストエディターがなくてもGitコマンドの -m というオプションを使えば問題なく進めます。 内容自体はとてもわかりやすいので、本などから入るよりおすすめ です。 操作しながら学べて、メンターの経験からこうしてるという話もあるので理解がしやすいです。 メンターの山浦清透さんにはとても感謝しております。 ありがとうございます。
【MySQL(MariaDB)】intの桁設定について

2020-05-19

はじめに 先日ひさしぶりにデータベースのテーブル作成をしたときに INT の桁数ってどういう意味だったけ?となったので調べました。 先に答えをいうと  ZEROFILLを設定した場合に有効な表示桁数  ということになります。 INT型には、TINYINT、SMALLINT、MEDIUMINT、BIGINT等いくつかありますが、本記事はよく使うINTのみ記載しています。 上記とINTの違いは保存できる数値の大きさになります。 INT型の桁数について まずサンプルで以下のような設定でテーブルを作成しました。 table_kouzou 今回気になったのは (3) の部分。 調べてすぐ出てくるのは 桁数という回答。 実際に3桁になるのか登録して確認。 table_data01 うん。4桁入ってしまっている。 こうなると(3)の桁数の意味がわからない。 実際何なのかしらべたら、(3)は 表示桁数 とのこと。 表示桁数っていっても実際は4桁はいってる!ってなりますが、この桁数の設定は ZEROFILLという0埋めを設定 したときに始めて意味があるものらしいです。 なるほど..さっそく試してみよう! 構造>>変更 から 属性を「UNSIGNED ZEROFILL」  に変えます。 table_data02 すると3桁もないデータ「1」は以下のように3桁で0埋めになります。 table_data03 上記画像のとおり、(3)は 「UNSIGNED ZEROFILL」を適用したときの桁数 ということだったんですね。 じゃあINTはどこまでの数値が入るの? という疑問ですが、初期設定では 4バイトの「-2,147,483,648 ~ 2,147,483,647」の範囲 が入ります。 2,147,483,647を超えた場合は2,147,483,647 で登録されます。 試しに2147483647+1の2147483648をINSERTしてみます。 SQL INSERT INTO ` int_test ` ( ` test ` ) VALUES ( 2147483648 ) 結果は 2147483648 は 2147483647 で登録されています。 table_data04 これで(3)の桁数の意味がわかってすっきりしました。 なお桁数を設定しなかった場合は(11)で設定されます。 (11)はデフォルトらしいのですが、個人的には正直ZEROFILLを使うことは少なそうなので(11)でいいか。という結論になりました。 またZEROFILLを設定した場合はかならずUNSIGNED になります。 以下参考までに。 UNSIGNEDとは INTの初期設定では4バイトの「-2,147,483,648 ~ 2,147,483,647」の範囲で数値の登録が可能です。 UNSIGNEDを設定した場合は  「0 ~ 4,294,967,295」の範囲  で登録が可能になります。 データーベース系は意外とネット上に情報が少ないので、難しいです! 日々精進!!
Wi-Fi設定とIPv6

2020-05-01

はじめに Y!mobile + SoftBank 光 でおうち割の割引を受けていたのですが、Y!mobileを解約。 おうち割が外れること でWi-Fiを使うためだけに、 毎月約1500円の支払い が発生するのはかなり クレイジ~ だと感じたので(既知の事実)、 SoftBank 光のWi-Fiマルチパックを解約 しました。 ※Wi-Fiマルチパック(467円税抜)+光BBユニット(990円税抜) 解約にあたり、Wi-Fiルータを購入し環境を構築していたのですが、**Wi-Fiマルチパックがないと光BBユニットで Wi-Fiが使えなくなる **という問題や 、 IPv6などでひっかかりうまくつながらなくなった ので、 解決方法 などをブログにしておこうと思います。 ちなみにAmazonで購入したWi-Fiルータはこちら 繋がらなくなったときの事象 YouTubeの利用とGoogle検索の結果までしかアクセスできない 検索結果の先のページや他のWEBサイトにアクセスできない Twitterで表示はできるが投稿・更新ができない 繋がらなくなった原因 いろいろ調べてるうちにわかったのですが、今回購入したルータで初期設定を行った際に IPv6で通信を行う設定 になっており、 大多数のサイトが****IPv4にしか対応していないため繋がらなくなった ということが原因でした。 YouTube含むGoogleのサイトはIPv6に対応している数少ないサイトだったので繋がっていたということですね。 ただ光BBユニットでWi-Fiを利用しているときはIPv6でも問題なく利用できていた+IPv6でのメリット があるので、個人的には引き続きIPv6を利用したいと考えました。 IPv6とは IP(インターネットプロトコル)という通信に関する規約を定めたものでv6はその種類の一つ。 従来の形式が IPv4 で新しい形式が IPv6 になります。 インターネットはIPアドレスという被らない数値をコンピュータごとに発行し通信がされているのですが、その数値パターンがv4では足りなくなってきているのでv6が登場しました。 参考元 https://ja.wikipedia.org/wiki/IPv6 IPv6のメリット あまり詳しくないので詳細は参考元を見ていただきたいのですが、ざっと以下の点を メリット と考えています。 IPv4は枯渇していくのがわかっており、IPv6が普及すると思うのでIPv6を継続利用したい 従来の接続方式のPPPoEではなく、IPoEという接続方式なので速度があがる 機器の初期設定でPPPoEの場合に必要だったID、パスワードが不要になる ※SoftBank 光なら ご利用開始のご案内 や MySoftBank で確認できる S-IDとパスワード がPPPoE設定に必要なID、パスワードになります。 ※パスワードは確認ができないので、自身でしっかり記録しておく必要があります( やっかい ) IPv6のメリットとデメリットについて。通信速度が速くなる条件とは? 事象を解消した方法 結論ですが、光BBユニットに購入したWi-Fiルータを接続してWi-Fiを使う ということでした。 IPv6を使いながら、数多くあるIPv4のサイトに対応するためには 「IPv6 IPoE + IPv4」 という通信の仕組み(v4とv6両方つなげるようにする)を利用しないと駄目だったんです。 SoftBank 光でIPv6 IPoE + IPv4を使うためには、 光BBユニットが必須 ということを思い出し以下のように接続をしなおしたらうまくいきました… simple-connect 最後に 正直数年に一回確認するかしないかなので、こんな難しい仕組み覚えていられません🙄 多くの人がはまってしまうポイントだと思うので、 光BBユニットが必須はやめて ほしいですね。 「IPv6 IPoE + IPv4」の利用条件はインターネットの提供元で異なり、提供元の会社次第のようなので、ただ通信があれば利用できる状態であればこんなことにはならなかったんです。 ※IPv6 IPoE + IPv4 は 「IPoE/IPv4 over IPv6」 ともいわれるみたいです。 IPv6とは? 利用できない原因はルータ?プロバイダ? どこのなにを設定? 接続方法は? とか確認するのにすごく時間がかかりました。 こんなことわからずに挫折する人はかなりいると思います(#^ω^) 同じような事象で接続できない!という方の助けになれば幸いです。 お疲れさまでした! おまけ SoftBankのおうち割が解除されるとどのくらい値段があがるのか。 今回のパターンではありますがざっと記載しておきます。 参考になれば幸いです。 Y!mobile + SoftBank 光 のおうち割の割引額 今回の契約していたプラン Ymのスマホプラン:スマホプランM/R SB固定回線:SoftBank 光 おうち割加入に必要な固定回線の指定オプション ※光BBユニットレンタル + Wi-Fiマルチパック + BBフォン 受けれた割引額 -200円/月 です。 ※おうち割の-700円+固定回線の指定オプション500円 = 200円割引 おうち割とは Y!mobileの対象のプラン + 固定通信サービス*1 + 固定通信サービスの契約者で指定オプション*2のに加入することで適用される割引 *1 SoftBank 光やSontBank Air *2 指定オプションとは 以下3つのオプションを合わせて、本来であれば1500円程度かかるものが500円で契約できるものです。 光BBユニットレンタル(467円税抜/月) Wi-Fiマルチパック(990円税抜/月)/Wi-Fi地デジパックのいずれか ホワイト光電話/BBフォン/光電話(N)およびBBフォン(0円/月)のいずれか ※この情報は 20/05/01 時点です。 詳細は公式を見てみてください。 おうち割 光セット(A)/ 光BBユニットレンタルの料金 Wi-Fiマルチパックの料金 地デジチューナープラス/Wi-Fi地デジパックの料金 BBフォンの料金 おうち割が外れた時に発生する金額 固定回線の指定オプション500円が おうち割解除 により 1457円/月(税抜) で請求されます。 ※ 光BBユニットレンタル(467円/月)+Wi-Fiマルチパック(990円/月)+BBフォン(0円/月) = 1457円/月(税抜)(今回の私の場合) -200円/月しか割引 を受けれてなかったのに、**外した瞬間に毎月1457円/月(税抜)**の請求がくるなんて恐ろしいですね。 なので、今回はWi-Fiマルチパック(990円/月)を外して、Wi-Fiルータを買って、IPv6のWi-Fiを整えたというわけです。 ソフトバンクでの解約について ソフトバンクの解約は大変です。 電話がつながらないので、解約したい日が決まってる場合は 日にち単位で余裕 を持ったほうが良いです。 月跨ぎでの料金には注意 しましょう。 個人的には チャットがおすすめ です。 WEBに関しては導線が複雑すぎてほぼうまくいきません。 WEBでオプションを停止しようとしたら、以下三つのログインが必要でした。 生年月日+郵便番号+電話番号 SID Yahoo Japan ID Yahoo Japan IDに関しては 書類に書いてない +YmobileのYahoo Japan IDでもログイン不可だったので、もうお手上げでした。 ※今はコロナ情勢の縮小で電話は切れるし、チャットは閉まってるので連絡手段がほぼなく解約がほんと難しすぎました。 IPv6のことといい、ややこしくて数日かかる原因はすべてソフトバンクの仕組みのせいでした。 調べるだけでもかなりの疲労感なのに、連絡取れないことが多々あるので、皆様も気を付けてください。
profile_icon
taka
プログラマー
いつでも転職希望の業務経験6年目(2022時点)のエンジニアです。 仕事の合間にすこしずつ転職活動はしていますが、条件が合う場合ぜひTwitterなどでご連絡頂けると嬉しいです。 希望条件は現在の年収を下回らない(手取り31万以上)、基本残業なし、ある程度保守運用が管理されていて、その経験ができる職場で働きたいです。 (管理がされてない案件が多く、心的安全が少ない仕事が多いので、ある程度安心して働きたいと感じています。) 経験言語はHTML、CSS、javascript、PHP、MySQL、Docker、Vuejs、Laravel このブログは完全に自作で静的ジェネレータで作りました。 この範囲で言えば React.js Gatsby.js GraphQLも経験があります。