現在phpをec2に入れて本番環境を構築したのですが
Notice: Undefined index: とのエラーが出ております。
config.phpにはデータベースへ接続するための情報を置いており、そこで
var_dumpをし環境変数を確認しましたら0件で取得ができていないようでした。
環境変数をec2の中の.bash_profileに記述しておりecho $DSN 等をし存在を確認できるのですがなぜかうまくいかない状態です。
ちなみに最初デプロイをしたときはec2再起動で一旦画面の表示がされていたんですが、ローカル上で修正をし、再度デプロイした時にはエラーがでているという状態です。
最初のデプロイの時には表示されていたのに2度目でダメになる理由が分からないです。
何かこれじゃない的なことが分かったら助かりますです。。
よろしくお願いします。
エラーメッセージ
Notice: Undefined index: DSN in /var/www/html/config/config.php on line 9
### 該当のソースコード <?php ini_set("display_errors", 1); if ($_SERVER["SERVER_NAME"] === "localhost"){ define("PDO_DSN", "mysql:dbname=cooking_app;host=localhost;charset=utf8;unix_socket=/tmp/mysql.sock"); define("DB_USERNAME", "cooking_user"); define("DB_PASSWORD", "gonta1026"); } else { define("PDO_DSN", $_ENV["DSN"]); define("DB_USERNAME", $_ENV["DB_USER"]); define("DB_PASSWORD", $_ENV["DB_PASSWORD"]); } define("SITE_URL", "http://" . $_SERVER["HTTP_HOST"]); $dbh = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); require_once(__DIR__ . "/../lib/functions.php"); ?> 下記.bash_profileの内容です。個人情報は******で隠しています。 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH export DSN="mysql:dbname=cooking_app;host=**********************************;charset=utf8;unix_socket=/tmp/mysql.sock" export DB_USER="**********" export DB_PASSWORD="********" ~ ソースコード
試したこと
色々と調べてみるとec2の再起動をすることで環境変数を読み込めるという記事があったこちらはやりましたがダメでした。
.htaccessやhttpd.confで環境変数を設定できるとあったのですがこちらは調べてるんですがまだ理解できておらずできておりません。
補足情報(FW/ツールのバージョンなど)
webサーバーはApache
dbサーバーはmysql8.0
php7.2.21
回答2件
あなたの回答
tips
プレビュー