+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Записи автора Рудюк Сергей

Создание скринсервера из Flash-ролика

В этом разделе выкладываются ссылки на программы создания скринсервера из Flash.

screenweaver

Есть ещё:

multidmedia Zinc v2

Flash ScreenSaver Builder version 4.0

SWFStudio, SWF Kit

Прекрасная бесплатная программа для создания скринсерверов из SWF-файлов:

http://www.instantstorm.com/download/

21.12.07, 19:53

Какую ERP-систему выбрать

Вот наткнулся на бурное обсуждение ERP-систем: http://sql.ru/forum/actualthread.aspx?tid=424046

Скажу честно, неудачи есть во всех системах. Так же во всех системах есть преимущества и недостатки.

Как я думаю, результат любой учётной или ERP-системы будет при активной работе заказчика и исполнителя. Другого пути нет.

Тогда будет решение сделано "под заказчика" и оно сможет работать... (Хотя, не все хотят делать системы "под заказчика", т.к. это и вправду дорого... :) )

Конечно, не малое значение играют технологии. Но, при активной работе, даже из умудряются делать решение для крупных предприятий. :)

21.12.07, 19:55

Бесплатный движек для интернет-магазина

В данном разделе предлагаю выкладывать информацию по поводу бесплатных движков для интернет магазинов.

Итак, всем известный: osCommerce

Данный проект не развивается, хотя был довольно не слабый продукт. На основании его развились другие движки.

zen-cart - бесплатный клон osCommerce. Поддерживается и развивается на данный момент. Доступен со всеми исходными текстами.

21.12.07, 19:44

Выбор форума

Долгое время я работал на форуме phpBB. Но, скажу честно, его несколько раз валили хакеры, и в результате он стал у меня почти не работающим.

И вот, я решил переделать форум. Альтернатив среди всего многообразия форумов на самом деле было не так много. Наиболее часто используемые форумы: phpBB и Invision.

Засучив рукава, я закачал новые версии данных форумов и их проинсталлировал.

На тот момент, когда закачивал, было две версии форума phpBB: phpBB 2.* и phpBB 3.*

И 1 версия форума Invision: 2.*

Нужно отметить, что phpBB 2.* - такой форум, как у меня был. И с теми же интерфейсом и возможностями. Словом, он меня не удивил...

Посмотрел phpBB 3 - не плохой продукт, только не стабильный, да и интерфейс такой-же, как phpBB 2. Но, чуствуются новые технологии... Часто применяется технология Ajax. Только вот что-то он какой-то не достаточно стабильный...

Тогда я попробывал форум Invision. Скажу честно, он меня удивил. Возможностей - моря. При этом часто используется Ajax. В результате, при минимальном интерфейсе получается максимум возможностей. Индексируются данные форумы тоже хорошо - внизу есть текстовая часть, которая выводит форум в виде псевдо-статической страницы. Так же удобно в таком виде просматривать на слабых устройствах: смартфонах, КПК.

Словом, теперь уплатил денюжку и пользуюсь форумом Invision :)

21.12.07, 19:39

Отправка электронной почты а PHP

С отправкой электронной почты рано или поздно сталкивается каждый PHP-программист. И как оказывается, тут есть целый ряд нюансов. В своё время, я нашел интересную статью об этом, поэтому, привожу её тут. Заодно и сам буду вспоминать, как это делается :)

Trustmaster: Если у Вас возникли какие-либо вопросы по данному FAQ'у, замечания можно оставить в следующей теме: Обсуждение FAQ-ов

Отправка e-mail сообщений в PHP.

Здесь я попытаюсь кратко изложить основные возможности отправки электронной почты в PHP.

1. Функция mail().

Действия функции mail() зависят от операционной системы. В UNIX она попытается использовать процесс программы SendMail для отправки сообщения. В Windows она пытается использовать SMTP или же внутреннюю эмуляцию процесса SendMail.

Прототип функции выглядит так:

bool mail(string to, string subject, string message

[, string additional_headers [, string additional_parameters]]);

to содержит адрес получателя, subject - тему письма, message - содержимое (текст). В additional_headers можно поместить дополнительные HTTP заголовки, а additional_parameters - параметры вызова процесса sendmail.

К примеру, мы хотим отправить письмо некоему john@doe.com, причем указать обратный адрес admin@microsoft.com и почтовую программу "E-mail Terminator v.1000":

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

Подведем итоги.

Плюсы: простота и легкость в использовании.

Минусы: невозможность отправки писем с других серверов (кроме localhost), отсутствие поддержки SMTP аутентификации (для некоторых серверов), невозможность присоединения файлов, возможные проблемы при использовании почтовых служб, отличных от SendMail, в UNIX.

2. Сокеты.

Этот способ всех "ближе к телу". Здесь нам самим придется вникнуть в особенности протокола SMTP.

Итак, нам придется соединиться с почтовым сервером, создав сокет, "пообщаться" c сервером, отправить заголовки и текст письма, после чего закрыть соединение.

Для этого напишем свою простую функцию sock_mail():

function sock_mail($host, $to, $from, $subj, $message, $type)

{

if($type=="") $type="text/plain"; // Определям тип по умолчанию

// Соединение

$fp = fsockopen($host, 25); // Подключаемся на 25 порт сервера $host

// Приветствие

$log .= fgets($fp); // Читаем приветствие сервера

fputs($fp, "HELO: $host"); // Привет, сервер smile.gif

$log .= fgets($fp); // Читаем ответ

fputs($fp, "MAIL FROM:<$from>"); // Определяем пользователя

$log .= fgets($fp); // Читаем ответ

fputs($fp,"RCPT TO:<$to>"); // Определяем получателя

$log .= fgets($fp); // Читаем ответ

fputs($fp, "DATA"); // Приветствие окончено, теперь приступим к делу

$log .= fgets($fp); // Читаем ответ

// Заголовки

fputs($fp, "X-Mailer: Sock_Mail v.1.0"); // Название клиента (необязательно)

fputs($fp, "Reply-To: $from"); // Адрес, на который идут ответы (необязательно)

fputs($fp, "From: $from"); // Отправитель

fputs($fp, "Subject: $subj"); // Тема

fputs($fp, "MIME-Version: 1.0"); // Версия MIME (необязательно)

fputs($fp, "Content-Type: $type"); // Тип содержимого

fputs($fp,""); // Пустая строка

// Содержимое

fputs($fp, $message);

// Конец диалога

fputs($fp, ".");

$log .= fgets($fp); // Читаем ответ

fputs($fp, "QUIT"); // Сообщаем о выходе

$log .= fgets($fp); // Читаем ответ

// Завершение соединения

fclose($fp); // Закрываем сокет

return $log; // Возвращаем ответы сервера.

}

В принципе, эта та же функция mail(), только работает с любым сервером через соединение на 25-й порт. Чуть позже мы рассмотрим улучшенный вариант использования сокетов.

Исходник функции также можно найти в аттаче (файл sock_mail.php).

Подведем итоги.

Плюсы: соединение с любым почтовым сервером, неограниченные возможности по улучшению.

Минусы: все приходится писать самостоятельно.

Добавлено 16/08/2007 by Рысь:

Небольшое добавление про перенос строк :

Отправка почты (сообщение #1665050)

3. Библиотеки.

Существует огромное количество библиотек для работы с почтой. Большинство из них является лишь объектно-ориентированной надстройкой над стандартной mail(). Я не буду их сдесь рассматривать, так как у меня есть идея получше (см. ниже).

Подведем итоги.

Плюсы: объектно-ориентированный интерфейс, возможность прикрепления файлов.

Минусы: большинство таких библиотек наследуют недостатки функции mail().

4. Эксклюзив.

Специально для вас я модифицировал один из популярных классов Mail и интегрировал в него некоторые новые возможности так, чтобы он принимал во внимание особенности и недостатки всех описанных здесь методов.

Исходник класса можно найти в аттаче (файл mail.php), а здесь мы рассмотрим работу с этим классом.

4.0 Создание объекта:

$m = new Mail(); // Теперь $m - объект класса Mail

4.1 Метод Host(). Этот метод определяет имя сервера, который будет использован для отправки сообщения. По умолчанию будет использован localhost. Если вы хотите использовать другой сервер, нужно сделать это так:

$m->Host("mail.myhost.com"); // Будем отправлять писмо с mail.myhost.com

4.2 Метод Username() и Password(). Устанавливают имя пользователя и пароль для SMTP аутентификации. ВНИМАНИЕ: используйте только если сервер требует аутентификации для SMTP!

$m->Username("admin"); // Используем пользователя admin

$m->Password("sWordFiSH"); // Пароль - sWordFiSH

4.3 Метод Content_type(). Устанавливает тип содержимого письма.

$m->Content_type("text/html"); // Письмо в виде HTML

4.4 Метод autoCheck(). Проверять правильность адресов e-mail или нет? По умолчанию - false.

$m->autoCheck(true); // Будем проверять адреса

4.5 Метод Subject(). Устанавливает тему сообщения. Пример:

$m->Subject("How to make million dollars per day."); // Без комментариев

4.6 Метод From(). Устанавливает адрес отправителя. По умолчанию - nobody@localhost.

$m->From("user@host.com"); // Отправляем с адреса user@host.com

4.7 Метод ReplyTo(). Адрес, на который будут приходить ответы.

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

000

4.8 Метод To(). Добавляет нового адресата в список "To:". После вызова Send писмьмо будет отправлено по всем адресам из списка. Пример:

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

111

4.9 Метод Cc(). То же, что и метод To(), но для поля "CC:".

4.10 Метод Bcc(). То же, что и To(), но для "BCC" ("Blank Carbon Copy").

4.11 Метод Body(). Устанавливает текст сообщения, принимая его в качестве первого аргумента. В качестве второго аргумента можно (но необязательно) указать кодировку письма.

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

222

4.12 Метод Organization(). Устанавливает вашу организацию. Пример:

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

333

4.13 Метод Priority(). Устанавливает приоритет письма (1 - самый высокий, 2 - высокий, 3 - нормальный, 4 - низкий, 5 - самый низкий).

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

444

4.14 Метод Attach(). Прикрепляет файл к письму (можно прикреплять несколько файлов). Первый аргумент - путь к файлу, второй (необязательно) - его MIME тип, третий (необязательно) - его dispostion (inline - клиенту можно его отобразить, attachment - обязательно сохранить на диске), по умолчанию inline.

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

555

4.15 Метод Send(). Производит отправку письма:

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

666

4.16 Метод Get(). Выводит письмо таким, каким его получит клиент.

mail("john@doe.com", "PHP mail() Test", "Это письмо отправлено функцией mail() из PHP скрипта",

"From: admin@microsoft.comrnX-Mailer: E-mail Terminator v.1000") or die("Ошибка: не получилось отправить письмо!");

777

Подведем итоги.

Плюсы: универсальность и сочетание всех необходимых возможностей.

Минусы: надеюсь, что их нет...

21.12.07, 19:36

Morfik - средство программирования для Веб-2

Интересное средство программирования есть: http://www.morfik.com

В данном средстве программирования используется несколько видов языков программирования (хотя, основным всё таки остаётся Pascal). Данное средство разработано с использованием Delphi и FreePascal.

В качестве базы данных используется Firebird 2.

К сожалению, недавно данный продукт стал платным...

21.12.07, 19:28

Отзыв о книге: Планета Web-денег. А.С.Генкин

Очень интересная книга, хоть и очень дорогая rolleyes.gif . Нужно читать вдумываясь, т.к. это не просто книга о Веб-мани, но вообще о денежных системах (в том числе и деньгах), а в результате - о экономике!

Прочитав эту книгу, Вы получите ответы на такие вопросы:

- Для чего нужны денежные системы и какие их преимущества.

- Какие вообще денежные системы бывают.

- Насколько стабильны денежные системы и от чего зависит их стабильность.

- Что такое доллар и какова его судьба.

- План Маршала, его результаты или как избежала кризиса в своё время США.

и много другого.

Книгу читаешь "на одном дыхании". Очень интересно написано и полезно прочитать.

Такие книги становятся настольными книгами руководителей, аналитиков, людей связанных с финансами.

В данной книге Вы найдете ответ на то, почему доминировал доллар на рынке. И почему сейчас происходит падение доллара и увеличение курса евро (кстати, это я прогнозировал давно).

21.12.07, 19:24

Microsoft идет навстречу open-source: 4 новых проекта

Из нашего форума http://forum.nerusoft.com:

Взято с http://internet.cnews.ru/news/line/index.s...07/05/25/252014

Microsoft идет навстречу open-source: 4 новых проекта

25.05.07, Пт, 18:25, Мск

Microsoft открыла 4 проекта с открытым кодом по обеспечению интероперабельности систем управления реквизитами доступа и свободного создания таких систем сторонними разработчиками. Компания также разработает модуль сопряжения Microsoft Indentity Lifecycle Manager 2007 с директориями на базе открытой спецификации OpenLDAP.

В рамках проектов будет создано ПО для приёма сайтами информационных карт - защищённых электронных хранилищ реквизитов - с использованием Java для Sun Java System Web Server, Apache Tomcat или IBM WebSphere Application Server, работающих под Linux, структуры веб-приложений Ruby on Rails и PHP для Apache Web Server. Один из проектов будет сосредоточен вокруг создания общей библиотеки на языке Си. Все проекты повторяют поддержку инфокарт, уже встроенную в среду разработки Visual Studio.

Для разработки модуля сопряжения для Indentity Lifecycle Manager 2007 компания вступила в партнёрские отношения с Kernel Works и Oxford Computer Group. Модуль позволит проводить двунаправленную синхронизацию между ILM и OpenLDAP.

Напомним, что в марте Novell объявил о выпуске реализации CardSpace с открытым кодом, основанной на проекте Bandit Project и названной InfoCard Selector.

IBM, Novell и группа академиков работают над проектом Higgins с открытым кодом. Проект позволит объединить приложения и системы управления реквизитами. Разработчик Чак Мортимер (Chuck Mortimer) создал систему доступа к электронным картам с реквизитами на языке Java, работающую в браузере, а Кевин Миллер (Kevin Miller) создал дополнение работы с CardSpace для Firefox.

На прошлой неделе Microsoft вместе с Novell, Liberty Alliance и рядом других компаний и организаций провели тестирование интероперабельности пяти интерфейсов доступа к картам на конференции <Мастерская интернет-реквизитов>, спонсируемой Open Source Identity System.

Недавно Microsoft открыла свою платформу реквизитов, включающую ISIP - профиль интероперабельности селектора реквизитов - для тех, кто намерен создавать свои собственные цифровые бумажники.

Согласно <Обещанию открытых спецификаций> (OSP), Microsoft предлагает доступ к спецификации, представленной в конце 2006 года. OSP, покрывающее 38 протоколов веб-сервисов, разработанных Microsoft и партнёрами, позволяет разработчикам использовать ISIP в своих продуктах без лицензионных отчислений и юридических претензий.

ISIP 1.0 включает в себя механизмы, являющиеся частью WS-Trust, WS-SecurityPolicy и WS-MetadataExchange - протоколов, покрываемых OSP и используемых Microsoft в своей платформе управления реквизитами Identity MetaSystem.

>>> Ну что поделаешь. Майкрософт начинал с Xenix - это Unix-система. И теперь Майкрософт уже давно понял, что нужно перестраиваться иначе, прогорят. Сейчас они воруют сотнями идеи из Unix-систем. И теперь не Unix сопоставляется с Виндовс, а Виндовс с Юникс. Кроме того, Майкрософт, конечно хочет приложить свою лапу к ПО с открытым кодом. Хочет ухищриться купить права на базисные идеи самого Linux. Но, не так то всё и просто. Они подключились к работе Novell, хотели прибрать - не получилось. Однако, если они не будут двигаться в данном направлении, всем понятно - завтра Майкрософт просто не станет. Он будет историей. И все его клиенты должны будут выкинуть их продукты в мусорку, т.к. данные продукты никому не нужны будут!

21.12.07, 22:45

Настройка веб-серверов (Apache, Unix, MySQL) для работы с большим количеством посетителей

Я много раз сталкивался с тем, что от настройки веб-сервера Apache, а так же сервера базы данных MySQL очень сильно зависит пропускная способность сервера. Настроить ПО можно таким образом, что и мощные сервера не смогут с большим объёмом трафика, а можно настроить так, что сравнительно не сильные сервера будут способны обрабатывать большое количество пользователей.

Предлагаю, в данной теме выкладывать практические советы по настройке серверного программного обеспечения.

Можно так же выкладывать примеры конфигурационных файлов.

Итак, расскажу у настройках нашего сервера на Воле.

Конфигурация сервера: Athlon64-3500+/RAM 512MB/HDD 250Gb

Трафик - 200-250 Гб/мес.

При этом, очень сильно используется база данных MySQL, т.к. движек для портальной системы - phpNuke, а так же много данных находится в большой базе, размер которой более 1,2 Гб.

В день, получается с сервера до 150-160 тыс. страниц.

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

Естественно, без оптимальной настройки сервера при такой нагрузке он бы просто "валился", что в прочем было при настройках провайдера rolleyes.gif .

Операционная система на сервере - Debian 3.

Сервер базы данных - MySQL 4.0

Админка настройка хостинга - VHCS.

Оптимизация VHCS

Так как на сервере много доменов, для удобства работы на нем была настроена панель управления хостингом VHCS. Данная панель, по умолчанию через некоторое время начинает бекапить (делать архивные копии) всех доменов. Что сильно загружает процессор, а так же дисковое пространство. Так как у меня около 100 доменов и каждый является зеркалом одного огромного на много гигабайт, то VHCS делало копии одного и того же забивая весь винчестер не нужными архивами, что меня, естественно не устраивало.

Я пытался убрать данную настройку, но к сожалению нигде в конфигах или в панели управления она не настраивается. Более того, т.к. в Debian не стандартизован запуск автоматических процессов и раскидан по большому количеству файлов, мне не удалось найти откуда запускается данный процесс. Но, я заметил, что он запускает gzip для архивирования. Поэтому, я перенёс данный файл из путей по умолчанию. Архивные копии перестали создаваться и у процессора освободилось значительное количество времени для обычной работы. Кроме того освободились сотни Гигабайт не нужной архивной информации.

Оптимизация в MySQL

MySQL в отличие от Interbase (Firebird) или того же PostgreSQL очень критичен к настройкам в конфигурационном файле. Если Вы не правильно настроите его, сервер не будет выдерживать нагрузки и будет валиться или же выдавать сообщение о том, что сервер не работает.

Настройка сервера для mysql находится в файле my.cnf. В Debian - это /etc/mysql/my.cnf.

Привожу листинг файла у меня на сервере:

[server]

#init-connect="SET CONNECT cp1251"

[client]

port = 3306

socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs

# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.

[mysqld_safe]

socket = /var/run/mysqld/mysqld.sock

nice = 0

[mysqld]

#

# * Basic Settings

#

user = mysql

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

port = 3306

basedir = /usr

datadir = /var/lib/mysql

tmpdir = /tmp

language = /usr/share/mysql/english

language = /usr/share/mysql/english

skip-external-locking

#

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

bind-address = 127.0.0.1

#

# * Fine Tuning

#

key_buffer = 64M

max_allowed_packet = 256K

thread_stack = 8M

#

# * Query Cache Configuration

#

query_cache_limit = 1M

#1048576

query_cache_size = 1M

#16777216

query_cache_type = 1

#

# * Logging and Replication

#

# Both location gets rotated by the cronjob.

# Be aware that this log type is a performance killer.

#log = /var/log/mysql.log

#log = /var/log/mysql/mysql.log

#

# Error logging goes to syslog. This is a Debian improvement :)

#

# Here you can see queries with especially long duration

#log-slow-queries = /var/log/mysql/mysql-slow.log

#

# The following can be used as easy to replay backup logs or for replication.

#server-id = 1

log-bin = /var/log/mysql/mysql-bin.log

# See /etc/mysql/debian-log-rotate.conf for the number of files kept.

max_binlog_size = 104857600

#binlog-do-db = include_database_name

#binlog-ignore-db = include_database_name

#

# * BerkeleyDB

#

# The use of BerkeleyDB is now discouraged and support for it will probably

# cease in the next versions.

skip-bdb

#

# * InnoDB

#

# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.

# Read the manual for more InnoDB related options. There are many!

#

# * Security Feature

#

# Read the manual, too, if you want chroot!

# chroot = /var/lib/mysql/

#

# If you want to enable SSL support (recommended) read the manual or my

# HOWTO in /usr/share/doc/mysql-server/SSL-MINI-HOWTO.txt.gz

# ssl-ca=/etc/mysql/cacert.pem

# ssl-cert=/etc/mysql/server-cert.pem

# ssl-key=/etc/mysql/server-key.pem

# Try number of CPU's*2 for thread_concurrency

thread_concurrency = 2

set-variable = table_cache=128

#137438953472

#64

#137438953472

#2097152

set-variable = thread_cache_size=65536

set-variable = myisam_sort_buffer_size=512M

set-variable = max_connections=10000

#10000

set-variable = max_connect_errors=1000000

set-variable = interactive_timeout=280

set-variable = max_tmp_tables=100000000

set-variable = open_files_limit=100000

open_files_limit=100000

[mysqldump]

quick

quote-names

max_allowed_packet = 1M

[mysql]

#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]

#key_buffer = 64M

#sort_buffer_size = 128M

#read_buffer = 8M

#write_buffer = 8M

[myisamchk]

#key_buffer = 128M

#sort_buffer_size = 128M

#read_buffer = 8M

#write_buffer = 8M

[mysqlhotcopy]

interactive-timeout

Внимательно посмотрите на настройки. То, что не закомментарено - то новые настройки, а закомментарены # - настройки провайдера. Администраторы часто даже не знают как лучше настроить, т.к. не многие сталкиваются с сайтами, где много тысяч обращений.

Оптимизация Apache

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

Основные настройки находятся в файле Apache.conf или Apache2.conf.

В моём случае, они находятся в /etc/apache2/apache2.conf

Вот листинг данного файла:

ServerRoot "/etc/apache2"

# The LockFile directive sets the path to the lockfile used when Apache

# is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or

# USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at

# its default value. The main reason for changing it is if the logs

# directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL

# DISK. The PID of the main server process is automatically appended to

# the filename.

LockFile /var/lock/apache2/accept.lock

# PidFile: The file in which the server should record its process

# identification number when it starts.

PidFile /var/run/apache2.pid

# Timeout: The number of seconds before receives and sends time out.

Timeout 15

# KeepAlive: Whether or not to allow persistent connections (more than

# one request per connection). Set to "Off" to deactivate.

KeepAlive Off

# MaxKeepAliveRequests: The maximum number of requests to allow

# during a persistent connection. Set to 0 to allow an unlimited amount.

# We recommend you leave this number high, for maximum performance.

MaxKeepAliveRequests 300

# KeepAliveTimeout: Number of seconds to wait for the next request from the

# same client on the same connection.

KeepAliveTimeout 15

##

## Server-Pool Size Regulation (MPM specific)

##

# prefork MPM

# StartServers ......... number of server processes to start

# MinSpareServers ...... minimum number of server processes which are kept spare

# MaxSpareServers ...... maximum number of server processes which are kept spare

# MaxClients ........... maximum number of server processes allowed to start

# MaxRequestsPerChild .. maximum number of requests a server process serves


StartServers 50
MinSpareServers 5
MaxSpareServers 256
MaxClients 256
MaxRequestsPerChild 0

# pthread MPM

# StartServers ......... initial number of server processes to start

# MaxClients ........... maximum number of server processes allowed to start

# MinSpareThreads ...... minimum number of worker threads which are kept spare

# MaxSpareThreads ...... maximum number of worker threads which are kept spare

# ThreadsPerChild ...... constant number of worker threads in each server process

# MaxRequestsPerChild .. maximum number of requests a server process serves


StartServers 2
MaxClients 150
MinSpareThreads 250
MaxSpareThreads 1500
ThreadsPerChild 250
MaxRequestsPerChild 0

# perchild MPM

# NumServers ........... constant number of server processes

# StartThreads ......... initial number of worker threads in each server process

# MinSpareThreads ...... minimum number of worker threads which are kept spare

# MaxSpareThreads ...... maximum number of worker threads which are kept spare

# MaxThreadsPerChild ... maximum number of worker threads in each server process

# MaxRequestsPerChild .. maximum number of connections per server process (then it dies)


NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 1000
MaxThreadsPerChild 2000
MaxRequestsPerChild 0
AcceptMutex fcntl

User www-data

Group www-data

# The following directives define some format nicknames for use with

# a CustomLog directive (see below).

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

# Global error log.

ErrorLog /var/log/apache2/error.log

# Include module configuration:

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:

Include /etc/apache2/httpd.conf

# Include ports listing

Include /etc/apache2/ports.conf

# Include generic snippets of statements

Include /etc/apache2/conf.d/[^.#]*

#Let's have some Icons, shall we?

Alias /icons/ "/usr/share/apache2/icons/"



Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

# Set up the default error docs.

#

# Customizable error responses come in three flavors:

# 1) plain text 2) local redirects 3) external redirects

#

# Some examples:

#ErrorDocument 500 "The server made a boo boo."

#ErrorDocument 404 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"

#ErrorDocument 402 http://www.example.com/subscription_info.html

#

#

# Putting this all together, we can Internationalize error responses.

#

# We use Alias to redirect any /error/HTTP_.html.var response to
# our collection of by-error message multi-language collections. We use
# includes to substitute the appropriate text.
#
# You can modify the messages' appearance without changing any of the
# default HTTP_.html.var files by adding the line;
#
# Alias /error/include/ "/your/include/path/"
#
# which allows you to create your own set of files by starting with the
# /usr/local/apache2/error/include/ files and
# copying them to /your/include/path/, even on a per-VirtualHost basis.
#



Alias /error/ "/usr/share/apache2/error/"


AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback


ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var




DirectoryIndex index.html index.htm index.cgi index.pl index.php index.xhtml

# UserDir is now a module
#UserDir public_html
#UserDir disabled root

#
# AllowOverride FileInfo AuthConfig Limit
# Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#

AccessFileName .htaccess


Order allow,deny
Deny from all


UseCanonicalName Off

TypesConfig /etc/mime.types
DefaultType text/plain

HostnameLookups Off

IndexOptions FancyIndexing VersionSort

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

# This really should be .jpg.

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^


# This is from Matty J's patch. Anyone want to make the icons?
#AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^
#AddIcon /icons/symlink.jpg ^^SYMLINK^^

DefaultIcon /icons/unknown.gif

ReadmeName README.html
HeaderName HEADER.html

IndexIgnore .??* *~ *# HEADER* RCS CVS *,t

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage ko .ko
AddLanguage pt .pt
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw

LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw


#AddDefaultCharset ISO-8859-1

AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8

AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz

# To use CGI scripts outside /cgi-bin/:
#
#AddHandler cgi-script .cgi

# To use server-parsed HTML files
#


SetOutputFilter INCLUDES


# If you wish to use server-parsed imagemap files, use
#
#AddHandler imap-file map

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

#
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
#

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully

# Allow server status reports, with the URL of http://servername/server-status
# Change the ".your_domain.com" to match your domain to enable.
#
#
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#

# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_i... be loaded).
# Change the ".your_domain.com" to match your domain to enable.
#
#
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*

21.12.07, 22:28

Перекодировка файлов

При работе с различными текстами и различными операционными системами часто приходится применять перекодировку. Чаще всего, используются кодировки: DOS, Win-1251, KOI-R, UTF-8 и т.п.

Как же лучше перевести перекодирование из одной раскладки в другую ?

В данном разделе мы будем рассматривать различные способы перекодировки.

Для начала, я рассмотрю несколько способов.

1. Перекодировка с помощью Far

Возможно, многие не обращали внимание, что в файловом менеджере Far есть возможность перекодировки из различных кодировок.

Установите себе Far. Запустите его. Откройте любой текстовый файл или создайте новый - Shift+F4. Откроется окно редактора.

Сверху окна по умолчанию горит DOS. Вы можете вставить из буфера сюда текст (Shift+Insert), а потом скопировать его в буфер - Ctrl+C. Программа автоматически сохранит введённый Вами текст в кодировку Dos.

То же самое можно сделать и для кодировки Windows. Только для этого, необходимо переключиться на Windows-кодировку, а для этого, нажать F8.

Обратите внимание, что программа при переключении декодирует из кодировки Dos в Windows и наоборот. Т.е. Вы можете ввести абракадабру и нажав в F8 получить понятный текст.

По умолчанию, в Far настроены 2 кодировки: Win и Dos. Но, можно расширить возможности, выполнив плагины. Для того, чтоб подключить плагины с кодировками зайдите в каталог Far в нём есть папка Addons. И в ней папка с плагинами с кодировками - Tables.

Для того, чтоб подключить соответствующую кодировку хватит просто запустить файл плагина. Кодировок там довольно много...

Посл того, как запустите необходимые плагины, откройте Far повторно, войдите в редактор, и нажмите Shift+F8. Выведется окно с кодировками.

Просто выберите ту кодировку, в которой Вы хотите просмотреть информацию.

2. Перекодировка с помощью TCode.

С помощью программы TCode Вы можете: перекодировать из кодировок DOS, Windows, KOI-8, ISO 8859-5 с полностью автоматическим распознаванием и восстановлением многократно перекодированных текстов (до 8-ми кратных). Поддерживается Base64, QP, HTML, RTF, UTF-8. Быстрый эвристический алгоритм.

Надо признать, что чем больше уровень вложенности, тем дольше он декодирует. И такая декодировка может занять довольно много времени. Кроме того, бывают на практике некоторые недочёты декодирования. Например, может не вполне корректно декодировать определённые слова.

В целом, работа с программой достаточно простая: просто вставьте текст и нажмите кнопку декодирования.

Закачать программу можно, например, по адресу: TCode

3. Штирлиц.

Что говорить, штирлиц, он и в Африке штирлиц... Прекрасная программа перекодировки. Декодирует мгновенно (конечно, если не большой текст) и корректно. Программа Штирлиц расшифровывает русские тексты, написанные в различных русских кодировках (Win-1251, KOI-8r, DOS, ISO-8859-5, MAC и др.), в транслитерации, в форматах Quoted Printable, UTF-7, UTF-8, RTF, HTML, закодированные с помощью uuencode, xxencode, base64, binhex, BtoA тексты и файлы, а также тексты, подвергнувшиеся смешанному перекодированию и, в частности, имеющих фрагменты в различных кодировках. Штирлиц способен привести такие тексты к кодировке Windows (1251) для их прочтения и для дальнейшей работы с ними (сохранение, печать, исправления и пр.), а также произвести обратные преобразования. Кодировки и схемы транслитерации можно добавлять и корректировать. Механизм распознавания кодировки может запускаться автоматически при вставке текста из буфера обмена и при загрузке файла. Интерфейс - русский, английский, болгарский.

Словом, эта лучшая из программ декодировки.

Закачать её можно по адресу: Штирлиц

21.12.07, 22:25