Прежде всего, сценарии CGI должны быть помещены в каталог, который веб-сервер распознает как каталог программ, и им должны даваться имена, которые сервер распознает как имена сценариев CGI. Для использования с локальным веб-сервером, задействованным в этой главе, сценарии должны помещаться в специальный подкаталог cgi-bin и иметь расширение .py. На сервере, использовавшемся для опробования примеров во втором издании книги, напротив, CGI-сценарии должны были помещаться в каталог public_html, как обычные файлы HTML, а имена файлов сценариев должны были оканчиваться расширением .cgi, а не .py. Некоторые серверы допускают расширения .py имен файлов и могут распознавать другие каталоги программ, но в этом они могут существенно отличаться друг от друга, иногда в зависимости от настроек, установленных для сервера или для пользователя.
Соглашения по выполнению
Поскольку сценарии CGI должны выполняться веб-сервером от имени произвольных пользователей в Сети, их файлам также требуется дать право на выполнение, чтобы пометить их как программы, и разрешение на выполнение должно быть дано остальным пользователям. На большинстве серверов это можно сделать командой оболочки chmod 0755 filename.
На некоторых серверах сценарии CGI также должны начинаться со строки #! , определяющей интерпретатор Python, который будет выполнять программный код в файле. Текст после #! в первой строке просто указывает путь к выполняемому файлу Python на сервере. Подробнее об этой специальной первой строке читайте в главе 3 и обязательно ознакомьтесь с соглашениями, действующими на вашем сервере, если он работает не под управлением Unix.
Некоторые серверы могут требовать наличие этой строк, даже если они работают не под управлением Unix. Большинство сценариев CGI в этой книге содержат строку #! на тот случай, если когда-нибудь они будут выполняться в Unix-подобных системах, — наш локальный веб-сервер при выполнении в Windows просто игнорирует первую строку, интерпретируя ее как комментарий Python.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011