php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

今更ながらLaravelを試してみる④

最近awsのcopilotを試しているんですが、たまたまバックエンドにLaravelを使ってみたので、1年半前にLaravelに触れてみようと思ったのを思い出しまた試行錯誤をしてみたいと思い立ちました。

以前に試した時はLaravel8だったんですが、Laravel9になっているんですね。。
Laravelのインストールは同じだったので前回途中だったログイン認証あたりから始めてみようかなと思います。

Laravel9の認証のページを参照すると

Laravelアプリケーションスターターキットをインストールしてくださいとあります。
そしてデータベースをマイグレーションした後に…とあるのでDBも準備する必要があるのかな?
こちらの件の作業はローカルでdockerコンテナを使うのでphp8/mysql8で環境を準備してみたいと思います。
※ちなみにどちらも使ったことがありません。。。特に理由はないですがせっかくなんでmysql8は新しい方をって理由くらいです。

Laravelアプリケーションスターターキットのページを見るとどうやら新規Laravelアプリケーションの作成(済)、データベースの設定(未完)、データベースマイグレーション(未完)を実行してください。ってあるのでDBコンテナから準備します。

試しに使ってみるのでDockerfileで手を加えず公式イメージをdocker runします。
M1チップなのでarm64のイメージを使います。

docker run --name {container name} -e MYSQL_ROOT_PASSWORD={root password} -d arm64v8/mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

あとはコンテナにログインしてmysqlにログイン

CREATE DATABASE laravel;
CREATE USER 'laravel'@'%' IDENTIFIED BY 'laravel';
GRANT ALL ON laravel.* TO 'laravel';

データベースとユーザーを作ってみました。
データベースができたらLaravelのコンテナを作成し新規アプリケーションとそれにDB情報を設定します。
arm64v8/php:latestの公式イメージにcomposerとパスを通す、apt updateをしてlaravelの解答ができるようなどでunzip wget vimあたりをインストールしたコンテナを作成。


.envファイルに以下で


DB_CONNECTION=mysql(デフォ)
DB_HOST=172.17.0.3(ドッカーのコンテナIP)
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel


次にLaravelのドキュメント通りmigrationをしていきます。

ドキュメントに

php artisan make:migration create_flights_table

ってあったから実行したけどこれ新規テーブル作成の時のサンプルかな?
新しくファイルができました。。

おそらくすでにあるusersなどのテーブルを認証で使うのでmigrationでDBに作成したいはず。
私がやりたいのはマイグレーションの実行のセクションです。

php artisan migrate

実行したら以下のエラーが出ました。。


   Illuminate\Database\QueryException

  could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:759
    755▕         // If an exception occurs when attempting to run a query, we'll format the error
    756▕         // message to include the bindings with SQL, which will make this exception a
    757▕         // lot more helpful to the developer instead of just the database's errors.
    758▕         catch (Exception $e) {
  ➜ 759▕             throw new QueryException(
    760▕                 $query, $this->prepareBindings($bindings), $e
    761▕             );
    762▕         }
    763▕     }

      +32 vendor frames
  33  artisan:37
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

ちょっと初めてのものに触って疲れたので本日はここまでにして次回調べることにします。

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする