Как установить и настроить сценарии CGI Apache2 в Ubuntu 18.04

12 set 2022 2 min di lettura
Как установить и настроить сценарии CGI Apache2 в Ubuntu 18.04
Indice dei contenuti

Введение

В этом руководстве мы увидим, как установить сценарии CGI в Apache2 на Ubuntu 18.04 LTS.

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

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

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

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

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

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Предпосылки

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

Установка Python 3

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

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

sudo nano /var/log/apache2/error.log
Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.