Запуск сценария Python, который сохраняет файлы на сервер с помощью cgi и apache2 версии 2.4

У меня есть скрипт python (python.py), расположенный в / Папка var / www / html / Python.

Скрипт сохраняет некоторые изображения в другой каталог (/ var / www / html / Data)

У меня есть разрешение файла -x для скрипта python.py и разрешение -rw для всех файлов, в которых сохраняется вывод.

Я использую apache2 версии 2.4

Вот как выглядит мой файл apache2.conf:

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

HostnameLookups Off
LogLevel warn

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Include ports.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

</Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FileMatch>

IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

Поскольку я использую версию 2.4, мой cgi conf находится по адресу: / ect / apache2 / conf-available / serve-cgi -bin.conf

Это выглядит так:

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    ScriptAlias /cgi-bin/ /var/www/html/Python
    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfDefine>

    <Directory "var/www/html/Python">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AddHandler cgi-script .py
        AddHandler default-handler .html.htm
    </Directory>
</IfModule>

Я включил модуль cgi, выполнив команду

sudo a2enmod cgi

, и перезапустил сервер, используя

service apache2 restart

Однако, несмотря на все это, мой скрипт Python все еще не выполняется и отображается как текстовый файл.

Кто-нибудь может мне помочь? Я не могу понять, что делаю не так.

1
задан 17 April 2016 в 20:41
2 ответа

Глупый вопрос: есть ли у вас жесткая ссылка на /etc/apache2/conf-available/serve-cgi-bin.conf в каталоге / etc / apache2 / conf-enabled ?

Редактировать: чтобы создать ссылку, вам нужно в командной строке перейти в каталог / etc / apache2 / conf-enabled и введите

ln /etc/apache2/conf-available/serve-cgi-bin.conf serve-cgi-bin.conf

Возможно, вам придется выполнить sudo эту команду, если у вас нет прав на создание файлов в этот каталог. Конечно, после создания этой ссылки вам придется перезапустить apache.

0
ответ дан 4 December 2019 в 06:25

Если это проблема с разрешениями, возможно, разрешения слишком мягкие. Я знаю, что Sendmail откажется принимать определенные файлы конфигурации, если они доступны для записи; Я не удивлюсь, обнаружив, что то же самое можно сказать и об Apache. Убедитесь, что у пользователя Apache нет разрешения на запись файла .conf.

0
ответ дан 4 December 2019 в 06:25

Теги

Похожие вопросы