プロになるためのPHPプログラミング入門 10
以下書籍に付属するサンプルの実行環境を構築する。
「プロになるためのPHPプログラミング入門」(ISBN 978-4-7741-4972-1)
環境は以下記事のものを使用
「PHP:プロになるためのPHPプログラミング入門 サンプル環境構築」
PHP:8.3.30
MySQL:8.0.46
「プロになるためのPHPプログラミング入門」(ISBN 978-4-7741-4972-1)
環境は以下記事のものを使用
「PHP:プロになるためのPHPプログラミング入門 サンプル環境構築」
PHP:8.3.30
MySQL:8.0.46
リスト 3-1 郵便番号検索プログラム (/ppa/p32mysql.php) (P.121)
サンプルをそのまま実行(http://localhost:8080/prophp_sample/ppa/p32mysql.php)するとエラーが発生する。
対応
Fatal error: Uncaught Error: Class "mysqli" not found in /var/www/prophp_sample/www/ppa/p32mysql.php:4 Stack trace: #0 {main} thrown in /var/www/prophp_sample/www/ppa/p32mysql.php on line 4
対応
Dockerfileを追加、php:8.3-apacheイメージに mysqli を追加するようにする。
compose.yamlを修正、php:8.3-apacheの使用をやめ Dockerfileをビルドして使用するように修正。
以下の記事は上記を踏まえて修正
◆ PHP 学習:プロになるためのPHPプログラミング入門 サンプル環境構築
# 現在お使いのイメージをベースにします
FROM php:8.3-apache
# mysqli 拡張機能をインストールするコマンドを追加します
RUN docker-php-ext-install mysqli
compose.yamlを修正、php:8.3-apacheの使用をやめ Dockerfileをビルドして使用するように修正。
services:
php:
# image: php:8.3-apache
build: .
volumes:
- ./www/html:/var/www/html
- ./prophp_sample:/var/www/prophp_sample
- ./php.ini-debug:/usr/local/etc/php/php.ini
- ./prophp_sample.conf:/etc/apache2/conf-available/prophp_sample.conf
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "8080:80"
command: >
sh -c "a2enconf prophp_sample && apache2-foreground"
:
以下の記事は上記を踏まえて修正
◆ PHP 学習:プロになるためのPHPプログラミング入門 サンプル環境構築
エラー その2
上記対応後の実行結果:
Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /var/www/prophp_sample/www/ppa/p32mysql.php:4 Stack trace: #0 /var/www/prophp_sample/www/ppa/p32mysql.php(4): mysqli->__construct('localhost', 'ppguest', Object(SensitiveParameterValue), 'ppdb') #1 {main} thrown in /var/www/prophp_sample/www/ppa/p32mysql.php on line 4
0 件のコメント:
コメントを投稿