502 Bad Gateway

502 Bad Gateway


nginx
    

avege
Apache 2.2 - локальный сервер на домашнем компьютере
Perl - (Practical Extraction and Report Language - Язык Практического Извлечения данных и составления Отчетов) - универсальный язык программирования, первоначально разработанный для работы с текстом и, в настоящее время, используемый для широкого диапазона задач, включая системное администрирование, программирование и развития сети, развития графического интерфейса пользователя. C развитием Интернета, Perl стал одним из средств для разработки CGI-сценариев, служащих для обработки данных из форм, создания интерактивных приложений, управления базами данных, отправкой почтовых сообщений, создания счетчиков посещений, гостевых книг, форумов и решения иных задач.

     Главная Perl
Разделы
ActivePerl-5.8.8.824
язык Perl
установка ActivePerl-5.8.9.826
установка ActivePerl (продолжен.)
скрипты на Perl — ошибки выполнения
Apache 2.2.14
сервер Apache 2.2.14
Apache — этапы установки
Apache 2.2.14 — установка
проверка работоспособности
конфигурирование httpd.conf
установки httpd-vhosts.conf
файлы httpd-userdir.conf и host
тестирование Apache 2.2.14
Apache — ответы на вопросы
PHP - 5.2.9
язык PHP
установка PHP 5.2.9 zip
установка PHP 5.2.9 installer
скрипты PHP
php ini - файл конфигурации
phpmyadmin
MySQL
установка MySQL
настройка MySQL
mysql php
Программы
'Вакансии'
'Справочный пункт'
'Платёжные документы'
'Зарплата'
'Налоги'

502 Bad Gateway

502 Bad Gateway


nginx


Информация
Браузеры
 Создав страницы сайта и проверив их в одном из обозревателей, например, в IE вы можете быть уверенными только в том, что они будут отображаться, как вами задумывалось, только в Internet Explorer . При просмотре этих страниц в другом браузере, можете обнаружить, что они выглядят не так, как вы ожидали, а порой и некорректно. Происходит это потому, что производители обозревателей придерживаются различных стандартов и вопрос о их совместимости был поднят только в последнее время. Постепенно различия между браузерами будут стираться, т. к. в настоящее время большинство из них бесплатны и борьба между разработчиками идет за привлечение пользователей удобством их использования. Поэтому проверку созданных вами страниц сайта, желательно проводить в наиболее популярных, в настоящее время, обозревателях. Это позволит, учитывая различия между браузерами, создавать универсальные документы, которые будут корректно в них отображаться.

Perl - универсальный язык программирования.

ActivePerl-5.8.9.826
php скачать можно нажав на ссылку php-PHP 5.2.4-Win32.zip
  ActivePerl-5.8.9.826 —  лучшая доступная версия !  
Perl - язык сценариев (скриптовый язык), широко используемый для системного администрирования и программирования веб-приложений. Perl скрипты (выполняются на сервере) и могут быть вызваны непосредственно или из файлов сайта.

Perl - (Practical Extraction and Report Language - Язык Практического Извлечения данных и составления Отчетов) - универсальный язык программирования, первоначально разработанный для работы с текстом и, в настоящее время, используемый для широкого диапазона задач, включая системное администрирование, программирование и развития сети, развития графического интерфейса пользователя, и выполнения многих других задач. Язык предназначен для эффективного практического применения. Его главные особенности - удобство использования, поддержка процедурного и объектно ориентированного программирования (ООП), мощная встроенная поддержка обработки текста, большой набор функций, операторов, возможность работы с ассоциативные массивами, преобразованием типов, поддержка операций с файлами и базами данных и одна из самых внушительных совокупностей сторонних модулей. Вся работа с базами данных производится через интерфейс DBI, позволяющий программам быть в значительной степени независимыми от основных механизмов работы с ними. Всё это предоставляет разработчикам большие возможности для создания лаконичного и эффективного программного кода. Отличительная особенность программ написанных на Perl - высокая переносимость.

С момента появления языка Perl - первая версия была написана в 1986 году Ларри Уоллом - создано и используется около 120 000 скриптов. Perl первоначально предназначался для создания и обработки конфигурационных файлов, применяемых для настройки операционных систем базирующихся на UNIX и автоматизации составления отчетов по использованию ресурсов OS. OS UNIX настраивается с помощью текстовых файлов содержащих команды интерпретатора командной строки - shell, одной из сервисных программ (утилит) UNIX. Это то-же самое, что и командные файлы операционной системы MS- DOS. Использование командных файлов вызвано тем, что для решения ряда задач, требуется определенная последовательность ввода команд. Можно вводить их вручную, но рациональнее, один раз написав пакетный файл, в дальнейшем выполнять их автоматически. В UNIX они получили название - скрипт (script) или сценарий. C развитием Интернета, Perl стал одним из средств для разработки CGI-сценариев, служащих для обработки данных из форм, создания интерактивных приложений, управления базами данных, отправкой почтовых сообщений, создания счетчиков посещений, гостевых книг, форумов и решения иных задач. То есть используется для написания CGI приложений для Веб- серверов, имеющих встроенные механизмы включения скриптов, например, таких как Apache и MS IIS.

Perl - является интерпретируемым языком. То есть скрипт написанный на языке Perl, не является исполняемой программой содержащей описания данных и алгоритмы решения задачи переведенные в инструкции на машинных кодах. Поэтому, для его выполнения требуется интерпретатор, переводящий инструкции Perl из текстового формата в двоичный и, затем, выполняющих их на стороне сервера.

Транслятор, компилятор, интерпретатор.

Коротко о классификации языков программирования.
Все языки программирования, за исключением машинного, в конечном итоге транслируют исходный код программы в машинные коды.


Трансляторы

Существуют два вида трансляторов: компиляторы и интерпретаторы (языки-компиляторы и языки-интерпретаторы).


Компилятор

Компилятор - язык-компилятор, например, BC++ 5.x  - переводит исходный код программы, содержащий описания данных и алгоритмы решения задач, в инструкции на машинных кодах (компилирует). Затем, при помощи редактора связей (Link), компонует проект, создавая загрузочный (исполняемый) файл. Загрузочный файл (обычно имеющий расширение - .exe.) - принято называть программой. Полученная программа (если был выбран режим компиляции - static) содержит все необходимое для своей автономной работы на определенной OS (операционной системе) и больше не нуждается в среде разработки, компиляторе, редакторе связей. Её можно перенести и выполнить на другом компьютере, на котором никогда не устанавливался программный комплекс, при помощи которого данное приложение создавалось. Если размер программы превышает 1 - 3 мегабайта - часть подпрограмм выносятся в файлы динамически связанных библиотек (DLL) - имеющие расширение - .dll, которые загружаются в память по мере необходимости и всего лишь один раз. Исполняемые программы, если в них имеются проверки и защиты от изменения части кода, размера или сжатые компрессором - дешифрировать практически невозможно. Встроенная проверка пароля - позволяет оградить от несанкционированного доступа. Для создания программ, например, в Borland C++ -компиляторе для Windows, используется интегрированная среда разработки (IDE - Integrated Davelopment Environment). Она предоставляет собой универсальный и удобный инструмент для разработки, анализа и отладки программ. Имея только этот программный комплекс, можно создавать профессиональные 32-разрядные приложения для всех версий Windows.


Интерпретатор

Интерпретатор - язык-интерпретатор - при обращении к нему программы написанной на этом языке, считывает её текст, переводит его в машинные коды, загружает в память и запускает на исполнение. После выхода из программы она так и остается в виде текстового файла с открытым исходным кодом. При каждом следующем обращении к программе, написанной на языке-интерпретаторе - весь процесс повторяется заново. То есть, для выполнения этой программы необходимо присутствие интерпретатора на компьютере. Программы, написанные на языках-интерпретаторах защитить невозможно. Поэтому они имеют ограниченное применение, так как, по неосторожности, можно легко разрушить код программы. А любой имеющий начальные познания в этих языках, может внести нужные ему изменения в алгоритмы вычисления. Работать с данными приложениями могут только подготовленные пользователи.

Основное отличие компиляторов и интерпретаторов.

Компилятор создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS).

Интерпретатор создает программу, время существования которой заканчивается по завершению выполнения или с выходом из неё. Для работы программы необходима программа-интерпретатор, в данном случае Perl, для выполнение в котором она создана.

Документация Perl.

Трудно найти описание, на русском языке, последних версий Perl в Интернете, поэтому лучше воспользоваться обширной документацией разработчиков - "ActivePer - Руководство пользователя" - входящей в пакет инсталляции    -    ActivePerl-5.8.8.824-MSWin32-x86-267479.msi. В котором лаконично, с множеством примеров, освещены практически все вопросы по установке, конфигурации, компонентам, модулям расширения и особенностям новой версии языка.
   Обратиться к документации, после установки Perl в каталог - c:\usr\ , можно будет, набрав в командной строке Total Commander'а - C:\usr\html\index.html или из меню - 'Скрипты на Perl - 'Документация Perl' - переписав и установив шаблон главного сайта сервера Apache 2.2.14

Описание Perl

Каталог установки Perl -  c:\usr\  - выбран потому, что первая строка Perl-скриптов -  #!/usr/bin/perl -  должна указывать на путь к интерпретатору Perl, на большинстве реальных серверов хостинг-провайдеров - это c:\usr\. Кроме этого она сообщает интерпретатору о том, что это скрипт, написанный на языке Perl.

Perl скрипты - что необходимо для их создания, отладки и включения в страницы сайта ?

Уже упоминалось, что Perl - язык сценариев (скриптовый язык), широко используемый для системного администрирования и программирования веб-приложений. Perl скрипты (выполняются на сервере) и могут быть вызваны непосредственно или из файлов сайта. Но как - бы они не были вызваны, пользователю результат их выполнения будет отправлен включенным в страницы HTML. Поэтому, для того чтобы четко представлять как это происходит на реальном сервере,  необходимо на домашний компьютер установить локальный сервер Apache 2.2.14

Установить сервер Apache.

После внесения изменений в файлы конфигурации сервера Apache, необходимо проверить правильность его установки. Сделать это можно переписав и установив на ваш компьютер шаблоны - главного сайта сервера Apache и сайтов виртуальных хостов.

Установить интерпретатор Perl

Чтобы иметь возможность проверки выполнения скриптов на Perl, из страниц сайта (например, главного сайта сервера Apache - ' perl скрипты'), нужно установить интерпретатор ActivePerl. Его можно бесплатно получить на сайте производителя ActiveState.com/ActivePerl. скачать perl можно нажав на ссылки ниже

Текущие версии: ActivePerl-5.8.9.826 - версия языка Perl 5.8, ActivePerl 5.6.1.638 - версия языка Perl 5.6. Если вы установите ActivePerl 5.6.1.638, то возникнут проблемы с использованием редактора - OptiPer(интегрированной среда разработки для создания, отладки и проверки выполнения perl сценариев, непосредственно или через связанные документы html.)

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

Следует напомнить, что ActivePerl-5.8.8.824 это совсем не тот Perl, примеры скриптов на котором, написанные до 2006 года, во множестве встречаются на сайтах Интернета. Неактуально сейчас звучат, в многочисленных материалах посвященных языку Perl, разъяснения, рекомендации и советы. Некоторые из них даже вредны, так как приводят к ошибкам и поддерживают миф о почти непреодолимых проблемах с которыми придется встретиться начинающим программировать на Perl (Например, ошибка 500).   Подробней см. ниже. Количество условий, несоблюдение которых, при создании и размещении скриптов на Perl, приводит к получению 500-й ошибки (Internal Server Error - внутренняя ошибка сервера), не более чем при разработке страниц сайта на языке разметки гипертекстовых документов — HTML (HyperText Markup Language).

Объединим проверку правильности установки и работоспособности интерпретатора Perl с современными приемами тестирования perl-скриптов.


Для проверки работоспособности интерпретатора Perl, создайте файлы с таким содержанием:

Командный файл, направляющий вывод из Perl скрипта в файл -

testcod.cmd

rem Командный файл, направляющий вывод из Perl скрипта в файл - testcod.htm

perl testcod.cgi > testcod.htm

Perl скрипт - testcod.cgi

Создадим два варианта -
вариант без ошибок
#!/usr/bin/perl - w
use CGI qw(:all);
print header;
print "<b> Вывод из скрипта - testcod.cgi";
print "</b>";
вариант с ошибкой - нет ' ; ' в четвертой строке.
#!/usr/bin/perl
use CGI qw(:all);
print header;
print "<b> Вывод из скрипта - testcod.cgi"
print "</b>";
Разместите их в любом каталоге и запустите командный файл - testcod.cmd
После выполнения будет создан файл - testcod.htm .
Запустив который вы увидите:
Content-Type: text/html; charset=ISO-8859-1
Вывод из скрипта - testcod.cgi
После выполнения будет создан пустой файл - testcod.htm .
Из - за синтаксической ошибки скрипт не будет выполнен.
Но и сообщения об ошибке и причинах её вызвавших
- вы не увидите.

В ранних версиях Perl-скрипты имели неприятную особенность - запись предупреждающих сообщений в файлы регистрации ошибок, без указания времени, места и полностью идентифицированной причины её вызвавшей. Нельзя исключать появление ошибок, даже в отлаженном и протестированном скрипте. Если у вас на сервере несколько скриптов, то поиски вызвавшего ошибку, могут занять значительное время.
В последних версиях Perl имеется несколько директив позволяющих избавиться от этой проблемы. А так как появление ошибок возможно по причинам, которые, без определенного опыта, не все могут учесть, то обязательно включайте в скрипты, для получения полной информации в файле регистрации ошибок, вместо обычной директивы - use Carp, директиву - use CGI::Carp.
Директива - use CGI::Carp 'fatalsToBrowser'  - позволяет перенаправить сообщение об ошибке в вывод скрипта, вместо log-файла web-сервера.

Пример Perl-скрипта для тестирования сервера Apache и ActivePerl-5.8.8.824 - firsttest.cgi

#!/usr/bin/perl - w
use CGI::Carp 'fatalsToBrowser';     # Необходимы
use warnings;                                      # для отладки
use strict;                                              # скриптов
use CGI;
my $q = new CGI;
print $q->header(-type => 'text/html', -charset => 'windows-1251' ), $q->start_html( "Тест Apache 2.2.14!" );
print "<table width=\"50%\" border=\"1\">
<tr>
<td align=\"center\"> ";
print $q->h3( "<br>Тест сервера Apache 2.2.14 <br>
и ActivePerl-5.8.8.824<br>
- прошел успешно!");
print "</td>
</tr>
</table> ";
print $q->end_html;

Командный файл, направляющий вывод из Perl скрипта в файл -

firsttest.cmd

с таким содержанием:

perl firsttest.cgi > firsttest.htm

Разместите эти два файла в любом каталоге и запустите командный файл - firsttest.cmd

После его выполнения будет создан файл - firsttest.htm . Запустив последний вы увидите:

Тест сервера Apache 2.2.14
и ActivePerl-5.8.8.824
- прошел успешно!

Если из скрипта  testcod.cgi ,  удалить точку с запятой в конце, приведенной ниже, предпоследней строки и записать его.
</table> "     ;
То после выполнения командного файла будет получено сообщение:

Software error:

syntax error at firsttest.cgi line 21, near "print"
(Might be a runaway multi-line " string starting on line 18")
Execution of firsttest.cgi aborted due to compilation errors.

Программная ошибка:

синтаксическая ошибка на firsttest.cgi строке 21, около "print"
(Могла бы быть многострочная " " строка 18)
Выполнение firsttest.cgi прерывалось из-за ошибок трансляции.

Критически относитесь к значительной части материалов посвященным языку Perl, опубликованным в Интернете. Складывается впечатление, что не все они писались авторами, знающими, о чем пишут. Рекомендации и советы в этих статьях не только вводят в заблуждение, но и могут привести к множеству ошибок, на их выявление придется потратить десятки часов и порой устранение, которых без посторонней помощи невозможно.

В Интернете, в материалах с описанием языка Perl, годами из статьи в статью, приводятся чьи - то противоречащие друг другу цитаты -

1. "Преимущество интерпретаторов - получение ответа после введения задачи и нажатия клавиши Enter ".

Приводится пример быстрого получения результата 'вычисления', такого как - print 10-5; = 5. Непонятно - кому нужно использовать компьютер для таких вычислений? Чтобы выполнить что-то “сложней”, например, print ((10-5 + 7)*2); и получить правильный результат, нужно изучить, по меньшей мере, приоритеты выполнения арифметических операций и правила написания формул. Ниже приведены результаты работы скрипта выполненного, при загрузке этой страницы

Исходный текст скрипта на Perl.

1    #!/usr/bin/perl -w
2    use CGI qw(:all);
3
4    print header;
5
6    print "<b> print (10-5+7)*2; &nbsp;&nbsp;&nbsp;= ";
7    print (10-5+7)*2;
8    print "<br>\n";
9    print " print ((10-5+7)*2); = ";
10  print ((10-5+7)*2);
11  print "</b>";


Первая строка, начинающаяся со знака комментария (#); понимается интерпретатором как программа на Perl. Она может содержать необязательные не обязательные аргументы. В данном примере - это ключ -w, указывающий интерпретатору о выдаче предупреждающих сообщений об опасных участках исходного кода.

Если вы использовали не специализированный редактор Perl для написания кода скрипта, то об ошибке в седьмой строке можно узнать только из содержания файла - error.log сервера Apache:
[Tue Mar 08 10:08:00 2007] [error] [client 127.0.0.4] print (...) interpreted as function at C:/www/docs/avege.ru/cgi-bin/intperl.cgi line 7.
[Tue Mar 08 10:08:00 2007] [error] [client 127.0.0.4] Useless use of multiplication (*) in void context at C:/www/docs/avege.ru/cgi-bin/intperl.cgi line 7.

Вывод результата выполнения.

502 Bad Gateway

502 Bad Gateway


nginx

Без определенных знаний, получить правильный результат невозможно ни при использовании языка-интерпретатора, ни языка-компилятора.

2. "Написание скриптов на Perl возможно в любых текстовых редакторах"

Если - бы предыдущий пример создавался в специализированном редакторе, например - OptiPerl, с автоматический проверкой на синтаксические ошибки, то трудно - бы было не заметить выделенную седьмую строку скрипта и предупреждение в строке состояния. При использовании ключа -w в первой строке скрипта и нажатии на пункт меню - Run in Browser , было - бы получено приведенное ниже сообщение.

print (...) interpreted as function at C:\www\docs\avege.ru\cgi-bin\intperl.cgi line 7.
Useless use of multiplication (*) in void context at C:\www\docs\avege.ru\cgi-bin\intperl.cgi line 7.
Бесполезное использование умножения (*) в контексте в C:\www\docs\avege.ru\cgi-bin\intperl.cgi строка 7.
Content-Type: text/html; charset=ISO-8859-1
print (10-5+7)*2; = 12
print ((10-5+7)*2); = 24

специализированный редактор - OptiPerl, с автоматический проверкой на синтаксические ошибки

Устранение ошибки в арифметическом выражении позволило - бы избежать вывода неправильного результата вычислений. Не говоря уже о проблеме символа конца строки Подробней см. Ошибки в скриптах на Perl.

Достаточно взгляда на фрагмент программы на Perl, чтобы понять, что без анализа и контроля корректности кода, возможно написание только таких программ как "Привет мир"

Если написать скрипт на Perl состоящий из 100 строк например, в программе 'Блокнот', без элементарной проверки синтаксиса, то исправление ошибок и его отладка могут занять многие часы. О других проблемах, связанных с написанием сценариев Perl в неспециализированных редакторах, см. Типичные ошибки в скриптах на Perl.

3. В некоторых изданиях подчеркивается как преимущество интерпретатора Perl, перед языками-компиляторами - возможность оперативного внесения изменений в исходный текст без последующей компиляции, необходимой в последних.

Это очень спорное заявление. Компиляция проекта из ста файлов, на современном компьютере, занимает от 2 до 10 секунд. Полученная программа загружается и начинает выполняться за доли секунды. Если написать, что - то подобное на языке интерпретаторе, то загружаться скрипт будет за значительно большее время. И этот процесс будет повторяться при каждом его вызове. Но, внесение изменений без проверки правильности результата - это не программирование, а какое - то иное занятие. Проверка изменений, на языке-интерпретаторе, займет значительное время, потому что каждый раз скрипт будет анализироваться и загружаться им. Изменения, внесенные в один или несколько файлов проекта (как правило, вся сотня файлов исходных кодов не изменяется в один раз) превращаются компилятором в исполняемый файл за доли секунды. А если учесть что, например, Borland C++ -компилятор, как и многие языки объектно-ориентированного программирования, имеют универсальные и удобные инструменты для разработки, анализа и тестирования программ в интегрированной среде разработки (одном программном комплексе), позволяющие создавать практически отлаженные программы для определенной OC. То в случае со скриптами на Perl вам придется использовать значительное количество программных средств для написания, выявления и устранения ошибок, тестирования на локальном сервере, размещения и тестирования на веб-сервере. Доступ к последнему, требует значительных финансовых и временных затрат, и все это, без гарантии получения нужного результата. Поэтому, нужно подходить к Perl, как инструменту, который вы вынуждены использовать для взаимодействия между пользовательской интерактивной HTML-страницей (среда браузера, клиент) с web-серверами (в основном на платформе Unix) через протокол CGI (Common Gateway Interface - общий интерфейс взаимодействия).

Чтобы получить полноценный http server apache, необходимо установить: apache, php, mysql, perl, apache, phpmyadmin, sendmail.

Apache, Perl, PHP, MySQL, SendMail - установить сервер за 30 минут вполне реально !
Для превращения компьютера в полноценный сервер, принято устанавливать следующие пакеты программного обеспечения:
httpserver.ru - главный сайт сервера apache

apache

perl

php

phpmyadmin

mysql

sendmail

  Apache_2.2.14-win32-x86-.msi - скачать apache
  PHP 5.2.9 zip package - скачать php
  phpMyAdmin 3.1.2 - скачать phpmyadmin
  MySQL 6.0 - скачать mysql
  SendMail 3.10 - скачать sendmail
если выполнить следующее:
Установить
Переписать архивы файлов конфигурации:
 конфигурации Apache 2.2.x
 файла - host
Переписать шаблоны:
 главного сайта сервера
 двух сайтов виртуальных хостов на основе имени и двух сайтов виртуальных хостов на основе IP адресов
И вы будете иметь самое современное серверное программное обеспечение.

На следующей странице описана установка Perl на локальный компьютер, для создания и отладки perl скриптов на сервере Apache.

502 Bad Gateway

502 Bad Gateway


nginx
опубликовано - август 2003 г.
обновлено - (none)
Valid CSS!