前提
conohaVPSサーバーで以下の構成になっています。
・CentOS Stream release 9
・Python 3.9.14
・sqlite3
・nginx version1.20.1
・uWSGI 2.0.21
実現したいこと
ローカル環境と同様にWebサーバー上でも、pythonファイルと同じディレクトリにデータベースを作成したい。
サーバーでのディレクトリ
サーバーのルート/ver/www/サイトのルートディレクトリ
/ver/www/サイトのディレクトリ/ここにデータベースファイルを作成したい
発生している問題
ローカル環境ではデータベースをmain.pyと同じディレクトリにデータベースが作成されます。しかし、同じファイルをVPSサーバーにアップロードし、実行すると、main.pyと同じディレクトリではなくサーバーのルートに.dbファイルが作られてしまいます。
サーバーのルート(ここに.dbファイルが作られてしまう)/ver/www/サイトのルートディレクトリ
該当のソースコード
main.py
def __init__(self, db_name): self.db = getattr(g, '_database', None) if self.db is None: self.db = g._database = sqlite3.connect( 'データベース名.db') self.cur = self.db.cursor()
試したこと
ローカル上のファイルとサーバー上のファイルは同じコードなので、違いはサーバーだと思い、nginxやuWSGIのルート設定を書き込んでみましたが、データベースのつくられる場所は、サーバーのルートに作られてしまいます。
初めて、ネットで検索をしながら、VPSでPython環境を作りました。
かなり調べましたが、デフォルトではmain.pyと同じディレクトリに.dbファイルが作られるようです。何か設定ファイルが存在して、そこをいじってしまっているのでしょうか?
現状でも、Webアプリの作成は問題ないのですが、出来ればローカル上の環境と同じようにしたいと思っています。また、現状のままでは複数のドメインを作った時に同じデータベース名の場合は上書きされてしまう恐れもあります。かなり調べましたが解決できません。どなたかご教授いただけないでしょうか?よろしくお願いいたします。
回答2件