Я пытаюсь разместить приложение 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
Я не уверен, предоставил ли я все детали здесь, но, пожалуйста, дайте мне знать, если вам понадобятся какие-либо дополнительные сведения.
Я знаю, что здесь есть много решений, но я не могу следовать, поэтому снова публикую свою проблему.
Пожалуйста, помогите.