IT関連

AS400/IBMi VirtualBoxとVagrantでMac開発環境を構築する2

投稿日:2021年2月10日 更新日:

前回の続きです。

前回はIBMiのデータベースからデータを引っ張れることを確認しただけ。

続いてGitリポジトリにあるLaravelのソースコードを取得して動くところまで。

実質環境構築はこれで完成する。

 

前回の記事はこちら。

AS400/IBMi VirtualBoxとVagrantでMac開発環境を構築する

 

Gitをインストールする

Gitが入ってないので入れる必要がある。

ただし、CentOSでは標準リポジトリからはgitの古いバージョンしかyumインストールできないみたい。

gitの本家本元のサイト、git.scmによると、CentOSの場合はサードパーティのiusから取得するように書いてある。

iusのサイトを見ると、iusのsetup方法が書いてあったのでそれを行う。

これでGitの2.24.3がインストールされる。

この2.24.3という指定はyum searchで調べた。

とするとインストールできるパッケージでgitという文字が含まれるものが表示された。

その中には

  • git.x86_64
  • git222.x86_64
  • git224.x86_64

の3つがあった。

 

ソースコードの置き場を作る

ソースコードがローカル側(Mac)に無いとVSCodeなどのエディタで触れないので不便。

それゆえ前回iAccessを導入した時のごとく、マウントされる/vagrantにソースコードを置くようにする。

 

Gitリポジトリからソースを取得する

今さらながらリモートリポジトリは存在する体の話なので登録する。

もし一から作るのなら別記事にしてあるのでそちらをご覧ください。

リモート先のパスは私の環境なのでご自身のを入れてください。

これでソースコードがhtdocsの中に流れてくる。

途中でyes/noやリモート先のパスワードを聞かれるので正しいものを入力する。

 

シンボリックリンクを貼る

やり方としてはドキュメントルートを/vagrant直下に変更するのではなくシンボリックリンクを貼ることで対応します。

最初に/var/www/htmlの中身をクリアして、リンクを貼る。

 

ドキュメントルートを編集する

Laravelのindexはpublic直下にあるのでそこを見るようにhttp.confを設定する。

変更箇所はコピーの上、コメントアウトで残しておく方がベター

 

オリジナルのdatabase.phpを持ってくる

database.phpはGit管理していないはずなのでリモートリポジトリから取得したソースコードから抜け落ちているはず。

なのでオリジナルのdatabase.phpをhtdocs/config内に入れて上げる。

これはFinder操作でできるはず。

これも以前LAMPで作った環境の続きゆえ、不明な場合はそちらの記事をご参照ください。

 

ドキュメントルートのAllowOverrideをAllにする

後はhttpd.confの設定を定着させるためにサーバを再起動すればいいが、これだけの設定だとトップページ(http://192.168.33.10)は表示できても、パスのあるルートにアクセスできない。

こんなエラーが出ます。

Not Found
The requested URL /パス名 was not found on this server.

これはpublicディレクトリにある.htaccessが効いていないため。

なぜ効かないかは、http.confの設定でAllowOverrideを設定していないから。

デフォルトでは、/var/wwwもNoneで、/var/www/htmlもNoneなので、それをAllにしてあげるか、新たにpublicに対して指定する必要がある。

 

httpdを再起動する

httpd.confを編集したので、設定を適用させるためにhttpdサーバを再起動する。

 

ブラウザで接続する

これでLaravelで作ったアプリの画面が表示されるはず。

 

念のためGitの動作確認だけしておく

複数でのGit操作は慣れていないので一応Pushの操作までしておく。

これでOKのはず。

 

作った環境をパッケージにしておく

Dockerに移行することも見据えて勉強のために、作った環境をパッケージにして、それを元にBOXに追加する。

 

ボックスを元に環境を作る

別PCに移植したとして一度作った環境を使いまわせるかを試してみる。

 

結果

ブラウザでアクセスしたところちゃんと表示された。

思ったよりうまくいった感じで安心。

 

まとめると、

  • 全ての仮想サーバの設定はちゃんと引き継がれている
  • Vagrantfileの設定は初期状態だった
  • ソースコードを移動する前にvagrant upをするとpublicディレクトリが見つからずhttpdの起動に失敗

package.boxは仮想サーバのイメージとして保存しておいた方がいいかもですね。

httpdやphpやiAccess等のドライバもなども含まれるので引っ越しや別社員に環境を作ってあげるのに便利。

 

おまけ

権限関係でエラーが起こることがあるので備忘録。

ログ系のファイルにアクセルできなかったり、キャッシュが云々でうまくいかなかったり。

  • storage/logs/laravel.logというファイルにアクセスできない
  • storage/framework/sessions直下に作られるセッション情報にアクセスできない
  • キャッシュが悪さしている節がある

など。により色々やってみた。

 

セッション情報のアクセス拒否 storage/framework/sessions/セッション情報 Permission denied

 

laravel.log系のエラー

 

キャッシュ系エラー? bootstrap/cache directory must be present and writable.

 

1つめのsessionsのPermission deniedはWindowsで環境を作ったときはchmodを一発行えばよかったが、Macの場合はその後何度もエラーが起きた。

原因は不明だが、sessions直下に作られるセッションファイルが所有権vagrantの644で作られることが原因のよう。

Apacheはapacheユーザーでセッションファイルにもアクセスしにいくので、644だと書き込みができずにエラーになるということみたい。

しかもセッションファイルは新しく生成されるたびに644で作られるので、chmodで777に変更したところで、同じ現象がなんども起きてしまう。

解決方法ははっきりとは言えないが、Apacheをvagrantユーザーで動かすようにすれば起きなくなった。

すなわち、

にするということ。Apacheの再起動、サーバーの再起動をしても同じ現象は起きず、他の機能も問題なく動いた。

これでいいのか・・・?

 

スポンサーリンク




スポンサーリンク




-IT関連
-, ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

AS400/IBMi 無料で Web化 GUI化 オープン化 フラットなPHP編

注意 これは私の環境下における私の備忘録です。お使いの環境によっては内容が異なる場合があります。私は何も責任を負いませんのでご了承のうえご覧ください。   内容 AS400のいいところはたく …

AS400/IBMi ACS RunSQLScriptsでラベルをCOLHDGにする

COLHDG(カラムヘディング)というのは、聞いた話ではAS400にのみある概念らしいですね。 AS400から入った私にとってはそれが普通だと思っていました。   通常SQLではASで別名を …

AS400/IBMi Laravel-ExcelでERR_INVALID_RESPONSE

このたびXAMPPではなくVagrant+VirtualBoxで開発環境を作ってみました。 一通り動かしてみたら、Laravel-Excelを使ったプログラムが真っ白に。   エラーメッセー …

AS400/IBMi MacにACSを入れると固まったので対処法

MacにACSを入れて5250セッションを立ち上げてIBM iに接続したら、 意味不明な固まり方をしたので対処法を載せておきます。   固まった症状 エミュレータは立ち上がります。画面やフォ …

Windows WAN上LAN外の共有フォルダにアクセス

WAN内、ようするに拠点外のPCにアクセスしようと思ったことはないだろうか。 私はあります。   私は情報システム部の人間なので、他の拠点のPCを設定すべくリモートデスクトップをすることがあ …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に