Как запустить CGI-скрипты в Apache2 в Debian 10

12 set 2022 2 min di lettura
Как запустить CGI-скрипты в Apache2 в Debian 10
Indice dei contenuti

Введение

Если вы намерены использовать сценарии Apache CGI на удаленном сервере, читайте дальше, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется пароль для аутентификации. Чтобы подключиться к серверу как root, введите эту команду:

ssh root@IP_DEL_SERVER

Далее вам будет предложено ввести пароль пользователя root. Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить первый параметр:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя. Теперь вы подключены к вашему серверу.

Предпосылки

Установка Апача 2.

Конфигурация апача 2

После установки Apache2 в Debian 10 первое, что нужно сделать, это включить модуль CGI для Apache2.

Из терминала:

sudo a2enmod cgi

Затем перезапускаем Apache2:

sudo service apache2 restart

Создадим папку cgi-bin:

sudo mkdir /var/www/cgi-bin

Заходим в папку:

cd /var/www/cgi-bin

Откроем файл apache2.conf:

sudo nano /etc/apache2/apache2.conf

Добавим в конец файла следующие строки кода:


ServerName localhost
 ScriptAlias /cgi-bin//var/www/cgi-bin/Options +ExecCGI
 AddHandler cgi-script.cgi.pl.py

Сохраните и закройте файл.

Теперь откройте файл serve.cgi.bin.conf:

sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf

Отредактируйте файл следующим образом:


<IfModule mod_alias.c>

 <IfModule mod_cgi.c>
 Define ENABLE_USR_LIB_CGI_BIN
 </IfModule>
 <IfModule mod_cgid.c>
 Define ENABLE_USR_LIB_CGI_BIN
 </IfModule>
 <IfDefine ENABLE_USR_LIB_CGI_BIN>
 #ScriptAlias /cgi-bin//usr/lib/cgi-bin/#<Directory "/usr/lib/cgi-bin">
 # AllowOverride None
 # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 # Require all granted
 #</Directory>
 ## cgi-bin config
 ScriptAlias /cgi-bin//var/www/cgi-bin/<Directory "/var/www/cgi-bin/">
 AllowOverride None
 Options +ExecCGI
 </Directory>
 </IfDefine>
 </IfModule>

Сохраните и закройте файл.

Перезапускаем Apache2:

sudo service apache2 restart

Давайте создадим пример сценария CGI для проверки нашей конфигурации: Заходим в папку:

cd /var/www/cgi-bin

Давайте создадим файл:

sudo touch hello.py

Давайте изменим разрешения для только что созданного файла:

sudo chmod o+x hello.py

Откроем файл:

sudo nano hello.py

Вставляем в файл следующие строки кода:


#!/usr/bin/env python
 import cgitb
 cgitb.enable()
 print("Content-Type: text/html;charset=utf-8")
 print "Content-type:text/html\r\n\r\n"
 print '<html>'
 print '<head>'
 print '<title> Hello Word </title>'
 print '</head>'
 print '<body>'
 print '<h2>Hello Word </h2>'
 print '</body>'
 print '</html>'

Сохраните и закройте файл.

Откроем браузер и подключимся к локальному серверу через доменное имя или IP-адрес:


http://TUO_INDIRIZZO_IP/cgi-bin/hello.py

Если скрипт не работает, проверьте error.log на наличие ошибок.


/var/log/apache2/error.log

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.