下記のサンプルを作成しました。
sample.php(パーミッション777 所有者・グループは共にroot)
<?
$dsn = 'sqlite:/test.db.sqlite';
$pdo = new PDO($dsn);
?>
ブラウザから実行するとtest.db.sqliteは作成されませんが、コマンドラインから
/usr/bin/php /var/www/sample.php
と実行するとtest.db.sqliteが作成されます。
構文的には間違っていないと思うのですが、なぜブラウザからのアクセスでは作成されないのでしょうか?
$dsn = 'sqlite:/test.db.sqlite';
普通、ウェブサーバのプログラムの実行ユーザ(例えば、CentOS だと apache)はルートディレクトリへの書込み権を持っていないとと思いますが...
"/test.db.sqlite" はルートフォルダに作成されることになります。
ブラウザから実行する場合のPHPの権限(おそらくApacheユーザー権限)ではルートフォルダに書き込むことができないのではないでしょうか。
回答ありがとうございます。
確かにその通りでした。
修正することで正常に動くことを確認しました。
ありがとうございます。
回答ありがとうございます。
そう言えばそうでした。
作成場所を間違えてました。
修正して動くことを確認しました。
ありがとうございます。