Настройка Python CGI для одной директории
Выполните команду для включения модуля CGI:
sudo a2enmod cgi
Перезапустите веб-сервер, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Создайте файл /usr/lib/cgi-bin/test.py:
sudo gedit /usr/lib/cgi-bin/test.py
Скопируйте в этот файл следующее содержимое:
#!/usr/bin/python3 print ("Content-type: text/html") print ("") print ("") print ("<html><head>") print ("") print ("</head><body>") print ("Hello.") print ("</body></html>")
Сделайте этот файл исполнимым:
sudo chmod +x /usr/lib/cgi-bin/test.py
Откройте в веб-браузере адрес http://localhost/cgi-bin/test.py
Если всё настроено правильно, то вы должны увидеть в веб-браузере строку
Hello.
Примечание: Если вместо директории /usr/lib/cgi-bin/ вы хотите для CGI скриптов использовать другую папку, то укажите её в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.
Настройка Python CGI для всего веб-сервера
Выполните команду для включения модуля CGI:
sudo a2enmod cgi
Откройте файл /etc/httpd/conf/httpd.conf — конфигурационный файл веб-сервера:
sudo gedit /etc/httpd/conf/httpd.conf
Найдите там группу строк
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
и замените их на
<Directory /var/www/> Options Indexes FollowSymLinks ExecCGI AllowOverride None Require all granted </Directory>
ВНИМАНИЕ: набор опций у вас может быть другим.
В конец файла добавьте следующую строку:
AddHandler cgi-script .cgi .py
Закройте файл.
Перезапустите веб-сервер, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Создайте файл /var/www/html/test.py:
sudo gedit /var/www/html/test.py
Скопируйте в этот файл следующее содержимое:
#!/usr/bin/python3 print ("Content-type: text/html") print ("") print ("") print ("<html><head>") print ("") print ("</head><body>") print ("Hello.") print ("</body></html>")
Сделайте этот файл исполнимым:
sudo chmod +x /var/www/html/test.py
Откройте в веб-браузере адрес http://localhost/test.py
Если всё настроено правильно, то вы должны увидеть в веб-браузере строку
Hello.
Связанные статьи:
- Как установить Python как CGI модуль в Apache в Linux (78.4%)
- Как в скрипте Python получить данные от веб-страницы методами GET и POST (78.4%)
- Решение проблемы с ошибкой Symbolic link not allowed или link target not accessible (43.2%)
- Файлы настроек веб-сервера Apache в Ubuntu (36.1%)
- Ошибка «No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.1-fpm.sock (*:80) failed» (РЕШЕНО) (33.9%)
- Изучение MySQL / MariaDB для начинающих (RANDOM - 8.5%)