python
  • apache
  • 2017-05-10 38 views 0 likes 
    0

    我一直在嘗試使用將由apache執行的python腳本寫入文件。這是我的腳本:用apache運行python腳本給出權限錯誤

    #!/usr/bin/env python 
    print "Content-Type: text/plain" 
    print "Cache-Control: no-store" 
    print "Pragma: no-cache" 
    print "Expires: 0" 
    print 
    
    file_name = '/my/path/file.ext' 
    try: 
        open(file_name, 'w').write('hello') 
        print "Good" 
    except IOError as e: 
        print "I/O error({0}): {1}".format(e.errno, e.strerror) 
    except Exception, e: 
        print str(e) 
    

    當我通過命令行運行腳本,結果是:Good,但是當Apache運行腳本,我得到I/O error(13): Permission denied

    一對夫婦的筆記:

    • 它試圖寫該目錄是可寫的(+ W)
    • 該文件是一個可執行目錄(+ x)​​和所有的父目錄ectories也是可執行的
    • 我一直在通過命令行使用與apache相同的用戶(它正在工作)運行腳本。
    +0

    不要打擾CGI。如果你有一個數據庫使用django。如果你不使用Flask。 – e4c5

    +0

    @ e4c5這是一個更大項目的一部分,切換到flask(或django)是不可能的。 – Rodolfo

    +1

    好的,但是像CGI一樣抓住CGI讓我想起我們20年前做過的事情 – e4c5

    回答

    0

    這個特殊情況下的問題是SELinux阻止了操作。我暫時禁用SELinux,但更好的答案是爲此操作添加安全策略。

    相關問題