Настройка Python CGI для одной директории
Создайте директорию /srv/http/cgi-bin/ - здесь будут располагаться скрипты Python:
sudo mkdir /srv/http/cgi-bin/
Откройте файл /etc/httpd/conf/httpd.conf — конфигурационный файл веб-сервера:
sudo gedit /etc/httpd/conf/httpd.conf
Найдите группу строк:
<Directory "/srv/http/cgi-bin"> AllowOverride None Options None Require all granted </Directory>
И замените её на:
<Directory "/srv/http/cgi-bin"> AllowOverride None Options ExecCGI Require all granted </Directory>
Примечание: если вы не видите разницу, то обратите внимание на директиву «Options» - добавлена опция «ExecCGI».
Найдите группу строк
<IfModule mpm_prefork_module> #LoadModule cgi_module modules/mod_cgi.so </IfModule>
И замените на
<IfModule mpm_prefork_module> LoadModule cgi_module modules/mod_cgi.so </IfModule>
То есть раскомментируйте строку.
Обратите внимание на строку
ScriptAlias /cgi-bin/ "/srv/http/cgi-bin/"
Менять её необязательно, но при желании вы можете вместо /srv/http/cgi-bin/ использовать любую другую папку, достаточно только создать новую папку и указать её с этой директивой вместо /srv/http/cgi-bin/.
Закройте файл.
Перезапустите веб-сервер, чтобы изменения вступили в силу:
sudo systemctl restart httpd.service
Создайте файл /srv/http/cgi-bin/test.py:
sudo gedit /srv/http/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 /srv/http/cgi-bin/test.py
Откройте в веб-браузере адрес http://localhost/cgi-bin/test.py
Если всё настроено правильно, то вы должны увидеть в веб-браузере строку
Hello.
Настройка Python CGI для всего веб-сервера
Откройте файл /etc/httpd/conf/httpd.conf — конфигурационный файл веб-сервера:
sudo gedit /etc/httpd/conf/httpd.conf
Найдите группу строк
<IfModule mpm_prefork_module> #LoadModule cgi_module modules/mod_cgi.so </IfModule>
И замените на
<IfModule mpm_prefork_module> LoadModule cgi_module modules/mod_cgi.so </IfModule>
То есть раскомментируйте строку.
Затем найдите строку
Options Indexes FollowSymLinks
и добавьте к ней ExecCGI. Должна получиться такая строка (ВНИМАНИЕ: набор опций у вас может быть другим):
Options Indexes FollowSymLinks ExecCGI
Теперь найдите строку:
#AddHandler cgi-script .cgi
Раскомментируйте её, то есть удалите символ # в начале строки и добавьте к концу строки .py. Новая строка будет выглядеть примерно так:
AddHandler cgi-script .cgi .py
Закройте файл.
Перезапустите веб-сервер, чтобы изменения вступили в силу:
sudo systemctl restart httpd.service
Создайте файл /srv/http/test.py:
sudo gedit /srv/http/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 /srv/http/cgi-bin/test.py
Откройте в веб-браузере адрес http://localhost/test.py
Если всё настроено правильно, то вы должны увидеть в веб-браузере строку
Hello.
Близкие статьи
- Как установить Varnish в Arch Linux — кэширование для Apache (100%)
- Настройка скрытого сервиса Tor в Arch Linux / BlackArch (76.5%)
- LEMP (Nginx, PHP, MariaDB/MySQL и phpMyAdmin) в Arch Linux: установка, создание виртуальных хостов, защита паролем папок, включение SSL (76.5%)
- Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP8 и phpMyAdmin) в Arch Linux / BlackArch (73.6%)
- Установка ownCloud в Arch Linux / BlackArch (73.6%)
- Как поменять язык системы и добавить раскладку клавиатуры в BlackArch (RANDOM - 50%)