人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでのSQLiteでの質問です。
下記のサンプルを作成しました。
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が作成されます。
構文的には間違っていないと思うのですが、なぜブラウザからのアクセスでは作成されないのでしょうか?


●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:.DB 777 DSN PHP root
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● JULY
●35ポイント

$dsn = 'sqlite:/test.db.sqlite';

普通、ウェブサーバのプログラムの実行ユーザ(例えば、CentOS だと apache)はルートディレクトリへの書込み権を持っていないとと思いますが...

PHP: SQLite (PDO) - Manual

◎質問者からの返答

回答ありがとうございます。

そう言えばそうでした。

作成場所を間違えてました。

修正して動くことを確認しました。

ありがとうございます。


2 ● Galapagos
●35ポイント

"/test.db.sqlite" はルートフォルダに作成されることになります。

ブラウザから実行する場合のPHPの権限(おそらくApacheユーザー権限)ではルートフォルダに書き込むことができないのではないでしょうか。


参考「Linuxのパーミッションを理解しよう

◎質問者からの返答

回答ありがとうございます。

確かにその通りでした。

修正することで正常に動くことを確認しました。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ