Приложение Python на сервере Apache - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь разместить приложение Python на сервере Apache HTTPD, но последние две недели боролся. Должно быть, я следовал всем инструкциям в Google и здесь, в Stackoverflow, но я не могу решить эту проблему. У меня проблема с отказом в доступе.

[cgi:error][pid 402] [client xx.xx.xx.xx:64064] AH01215:
(13)Permission denied: exec of '/var/www/html/RWorkflow/main.py failed

[cgi:error][pid 402] [client xx.xx.xx.xx:64064] End of script output before headers: main.py

Я стараюсь изо всех сил следовать инструкциям, приведенным здесь, но безрезультатно. Прошу прощения, если я что-то упустил из всех решений здесь, но любой совет специалиста по моей ситуации очень поможет.

Пожалуйста, найдите мои данные ниже.

Данные сервера

Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
Architecture:   64-bit
Server MPM:     prefork
threaded:     no
forked:     yes (variable process count)

Политика и MOD_WSGI

[pid 401] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[pid 401] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[pid 401] AH00163: Apache/2.4.6 (Red Hat Enterprise Linux) mod_wsgi/3.4 Python/2.7.5 configured -- resuming normal operations

Мой файл HTTPD.conf

ServerRoot "/etc/httpd"

Listen 80

Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost

<Directory />
    AllowOverride none
    Require all denied
</Directory>


DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">

    AddHandler cgi-script .cgi .py
    Options Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews Indexes
    AllowOverride None
    Require all granted

</Directory>


<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>


<Files ".ht*">
    Require all denied
</Files>


ErrorLog "logs/error_log"
LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>

    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>


AddDefaultCharset UTF-8

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on
IncludeOptional conf.d/*.conf

Файл Rworkflow.conf в /etc/httpd/conf.d/

<VirtualHost *:80>
     # Add machine's IP address (use ifconfig command)
     ServerName myserveraddress
     # Give an alias to to start your website url with
     WSGIScriptAlias /rworkflow /var/www/html/RWorkflow/main.py

     <Directory /var/www/html/RWorkflow/>
        # set permissions as per apache2.conf file
        Options FollowSymLinks
        Options +ExecCGI

        AddHandler cgi-script .py
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

main.py

    #!/opt/anaconda3/python3.6/bin/python3.6
    print ("Content-type: text/html")
    print ("")
    print ("<html><head>")
    print ("")
    print ("</head><body>")
    print ("Hello.")
    print ("</body></html>")

для этого владельца main.py - apache, а разрешение - 755 Права: rwxr-xr-x

Я не уверен, предоставил ли я все детали здесь, но, пожалуйста, дайте мне знать, если вам понадобятся какие-либо дополнительные сведения.

Я знаю, что здесь есть много решений, но я не могу следовать, поэтому снова публикую свою проблему.

Пожалуйста, помогите.

...