2016-12-11 5 views
0

私は現在、電子メールをデータベースに格納するための簡単なWebページを作成しようとしています。私は私のものではない(ただしApacheを実行する)サーバー上にあるので、私はrootアクセス権がないので、SQLite3を使用することにしました。目的はPHPをデータベースに挿入することですが、私が所有しているデータベースと、 "読み取り専用"エラーを引き起こすユーザー "apache"を使用してアクセスしようとしているPHPの問題で引き続き問題が発生します。私はrootではないので、データベースファイルをchownすることはできず、chmod 777を実行しても、何の効果もありません。結論は私が来たのは、PHPスクリプトが(ユーザーのApacheの下で)データベース自体を作成することでしたが、今はファイルへの書き込みアクセス権がありません。私は、Apacheをデータベースの所有者として許可してもいいですか、これを行うにはもっと良い方法がありますか?ユーザ "apache"が自分のSQLiteデータベースを所有していますか?

+0

ポーズをとる前に、あなたの質問をよりよく研究する必要があります。投稿することを決定したら、可能な限り多くの詳細を含めるようにしてください。結局のところ、あなたは答えられている質問に興味がある人です。 1.どのようなサーバーを使用していますか? 2.誰がサーバーを制御していますか? 3.なぜMySQL、MariaSQL、または他の実装の代わりにSQLiteを使うことにしたのですか? –

+0

私は既にかなりの研究を行っています: 1. Red Hat Linux。 2.サーバー管理者は、私が出席する大学の教授です。 3. SQLiteは、ルートのないMySQLサーバーをホストできないためです。 –

答えて

1

SQLiteはライブラリです。つまり、Webサーバープロセス内で実行される単なるコードです。つまり、データベースファイルへのアクセスは、Apacheからの他のファイルアクセスと同様に動作します。

Webサーバープロセスは、ファイル自体にアクセスし、同じディレクトリにジャーナルロールバックファイルを作成できる必要があります。

chmod 777は、そのマシンのすべてのユーザーがデータベースに何かできるので悪いです。データベースファイルとディレクトリをあなたとapacheをメンバーとするグループに所属させることをお勧めします。

サーバーの管理者がそのようなグループを作成しない場合は、所有者としてapacheを持ち、十分に保護されたバックドアをWebアプリケーションに追加して、データベースに新しいファイルを上書きすることができます。

+0

確かに、それは理にかなっています。私はあなたが言及したように、所有者としてのApacheを維持し、バックドアを作成します。私は管理者と話し、彼らも同様に動作するかもしれないいくつかのアクセス許可の提案をしました。 –

関連する問題