Я использую сервер Ubuntu 16.04, Python 2.7.12 и Apache 2.4.18 в дроплете DigitalOcean.
Я загрузил index.py
в корневой веб-каталог.Содержимое сценария выглядит следующим образом:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Turn on debug mode.
import cgitb
import platform
cgitb.enable()
# Print necessary headers.
print "Content-Type: text/html\n"
print "<html><body>Python Version: %s</body></html>" % (platform.python_version())
Если я установлю index.py
на 644 (без прав выполнения), сценарий вернет 500 Internal Server Error.В журнале сказано:
[пт 28 декабря 04: 05: 18.035946 2018] [cgi: ошибка] [pid 29045] [клиент 202.75.86.173:54912] Конец вывода сценария перед заголовками: индекс.py
Из другого ответа предлагается добавить права доступа через chmod +x index.py
:
-rwxr-xr-x 1 root www-data 254 Dec 28 04:05 index.py
После добавления прав выполнения скрипт Python можно запустить безпроблема.
- Я правильно делаю?
- Приведет ли это к проблеме безопасности ?
Вот конфигурация сайта Apache:
<VirtualHost *:80>
ServerName abc.example.com
DocumentRoot /var/www/vhosts/abc.example.com
<Directory /var/www/vhosts/abc.example.com/>
Options -Indexes
Options +ExecCGI
DirectoryIndex index.py
AllowOverride All
Order allow,deny
allow from all
</Directory>
AddHandler cgi-script .py
ErrorLog ${APACHE_LOG_DIR}/abc-apache2.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access-logfile.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =abc.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
ОБНОВЛЕНИЕ :
Этот вопрос не об ошибке, с которой я столкнулся, как я уже упоминал в вопросе, мой скрипт уже работает.Я просто беспокоюсь о безопасности .Короче, не дубликат.