2011-09-15 3 views
0

SQL 쿼리를 실행하는 python 스크립트가 있습니다. &은 SQLite3 데이터베이스 파일에서 정보를 가져옵니다. SQLite3 데이터베이스 파일은 실행중인 스크립트와 다른 디렉토리에 있습니다. 이 모든 것은 cgi-bin 디렉토리 내 웹 호스트 (Unix 서버 cpanel)에서 발생합니다.Linux/Unix Server : 스크립트 실행과 다른 디렉토리에있는 SQL 데이터베이스에 액세스하십시오.

내 질문/문제 : python 스크립트를 다른 디렉토리에있는 SQLite3 데이터베이스에 액세스하거나 연결할 수 있습니까? 바로 지금 내 웹 호스트에서 스크립트를 실행할 때 SQLite3 데이터베이스에 연결하지 못합니다.

내 python 파일이 webhost의 public_HTML/cgi-bin/dataMiner/디렉토리에 있습니다. SQLite3 데이터베이스 파일은 public_HTML/cgi-bin/디렉토리에 있습니다.

파이썬 스크립트에 내 코드가

: 내가 사용하는 데이터베이스 (파이어 버드)는

따라서 서버의 루트에서 데이터베이스에 대한 전체 경로를 지정해야합니다 "와

import DataMiner 

def connect_ex(f_name): 
    """ Post: """ 

    try: 
     # When the script runs the file is never found but it actually does exist 
     if not os.path.isfile(f_name): 
      raise Exception("") 

     conn = sqlite3.connect(f_name) 

     return conn 

    except IOError, msg: 
     #print str(msg) 
     return None 

    except OSError, msg: 
     #print str(msg) 
     return None 

    except sqlite3.OperationalError, msg: 
     #print str(msg) 
     return None 

    except Exception, e: 
     return None 


conn = connect_ex("../competitionDB.db") 
res = DataMiner.execute_query(conn, "SELECT * FROM MyTable;") 
print res 
conn.close() 
+0

'상대 경로'대신 '절대 경로'를 넣으려고 했습니까? – mwan

+0

다음과 같은 의미입니다. http : //mywebsite/cgi-bin/compDb.db? 그렇다면 예 & 같은 문제가 발생합니다 – Mitch

+0

어떤 오류 메시지가 생깁니 까? 사용 권한 문제 일 수 있습니까? IE는 웹 서버 사용자 (많은 호스트의 사용자 이름과 다른 사용자)가 DB 및 해당 디렉토리에 액세스 할 수 있습니까? – intuited

답변

0

/var/folder/wwww/db/dbfile.db "예를 들어,/var가 거친 루트 폴더에 있습니다.

"db/dbfile.db "웹 사이트에서 말하는 위치는 최소)

이렇게하면 보안 목적으로 데이터베이스 파일을 웹 사이트에 있지 않은 폴더에 저장할 수도 있습니다.

관련 문제