尝试使用Djang在Apache服务器上创建pdf文件时出现权限问题

2024-10-03 04:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我的web应用部署有问题

我正在apache2上使用Django 2.1.7

我为文件夹和文件设置了所有适当的权限(至少我是这么想的):

drwxr-s--- 10 bedirt www-data 4096 Mar  8 21:10 projectNal

在文件夹中:

-rwxr-x---  1 bedirt www-data  11357 Mar  2 20:37 LICENSE
-rwxr-x---  1 bedirt www-data     12 Mar  2 20:37 README.md
drwxr-x---  4 bedirt www-data   4096 Mar  2 20:42 addQuestion
-rwxrwx---  1 bedirt www-data 536576 Mar  2 21:51 db.sqlite3
-rwxr-x---  1 bedirt www-data    542 Mar  2 20:37 manage.py
drwxrwx---  2 bedirt www-data   4096 Mar  8 21:10 media
drwxr-x---  3 bedirt www-data   4096 Mar  8 21:53 projectNal
drwxr-x---  6 bedirt www-data   4096 Mar  8 22:49 qBank
-rwxr-x---  1 bedirt www-data    512 Mar  2 20:37 requirements.txt
drwxr-x--- 12 bedirt www-data   4096 Mar  2 20:37 static
drwxr-x---  5 bedirt www-data   4096 Mar  2 20:37 users
drwxr-x---  5 bedirt www-data   4096 Mar  2 20:37 venv

我正在使用pylatex创建一个latex文档,过程是-它运行latex编译并删除.tex文件,并上传媒体文件夹上的pdf

代码如下:

输出\u tex.py

def create_worksheet_pdf(data, title):

    # Document with `\maketitle` command activated
    doc = Document(default_filepath='../media/', documentclass='exam')
    # Title part

    doc.preamble.append(Command('headrule'))
    doc.preamble.append(Command('chead', '?'))
    doc.preamble.append(Command('lhead', '?'))
    doc.preamble.append(Command('rhead', '?'))

    # questions
    with doc.create(Section(title)):
        doc.append(Command('begin', 'questions'))
        for row in data:
            questionHead = r'\question (' + row.year + '-' + row.source + '-' + row.problemNumber + ')\\\\'
            doc.append(NoEscape(questionHead))
            doc.append(NoEscape(r"" + row.problemStatement))    
        doc.append(Command('end', 'questions'))
    # questions end

    # end
    doc.generate_pdf(filepath='media/'+title, clean_tex=True)

在这个文件中,filepath部分可能很重要,因此我无法使用MEDIA\u ROOT或MEDIA\u URL,因为我得到了一个错误。从我授予媒体和数据库的apache(www数据)写访问权限可以看出。我的媒体文件等在本地工作正常,但我刚刚上传到服务器,现在我不明白为什么它不工作

错误为:

PermissionError at /output/
[Errno 13] Permission denied: 'Momentum-Questions.tex'

我配置了MEDIA_ROOTMEDIA_URL,这里是:

设置.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
  • 一切都很好,直到我加入了克拉定pdf部分。所以我的conf文件和其他东西都很好,如果没有其他需要添加

Tags: 文件datadocpdfwwwmediamarcommand