+38 (067) 901-63-22

Корзина

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

2007 — К2®, Рудюк Сергей Анатольевич

Настройка веб-серверов (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

Ускорение работы с интернетом и сетью в Windows на 25%

Оказывается, Windows по умолчанию выделяет некоторую полосу сетевого канала под определённые сервисы, которые к тому же не используются. Выделяется под эти нужды не много ни мало - 25%, т.е. четверть полосы пропускания! Ниже, я привожу выдержку из совета, как увеличить скорость сети за счёт убирания данного сетевого резерва.

Освобождение канала (bandwidth), зарезервированного за сервисом QoS.

Windows XP по умолчанию выделяет часть интернет-канала для Quality of Service (QoS). Назначение QoS - улучшать распределение трафика программ, написанных с учетом QoS API. Этих программ не найдешь, поэтому резервирование канала под ненужный сервис - непозволительная роскошь. Для того, чтобы освободить и без того узкий канал отечественного соединения с Интернетом, в меню Пуск -> Выполнить запустите редактор групповых политик gpedit.msc. Для выполнения вам необходимо быть администратором системы.

В разделе "Конфигурация компьютера" выберите пункт "Административные шаблоны", далее "Сеть" и затем в правой панели выберите <Диспетчер пакетов QoS> и кликните на нем два раза. Выберите опцию "Ограничить резервируемую пропускную способность" и опять-таки кликните на ней два раза. В открывшемся окне включите Enabled, а затем укажите лимит канала в процентах равный нулю, нажмите "ОК" и выйдите из программы. Откройте "Сетевые подключения" на "Панели управления" откройте свойства вашего подключения и на закладке "Сеть" убедитесь, что протокол "Планировщик пакетов QoS" подключен. Если его там нет, то добавьте из списка и перезагрузите компьютер.

21.12.07, 22:23

Конкурс Enhusiast Internet Award

Как-то подозрительно проходит конкурс лучших работ Рунет "Enhusiast Internet Award"... Во первых он проходит достаточно тихо. Во вторых, интернет-страница конкурса часто не грузится, часто "отлаживается" и выглядит порой, не пристойно, как для конкурса, выбирающего лучшую работу в интернет...

21.12.07, 22:19

Ресурсы по SQLLite

В данной рубрике предлагаю выкладывать ресурсы по SQLLite.

Русский ресурс по SQLLite

21.12.07, 22:18

Информация о PostgreSQL

В данном разделе размещаются ссылки на информацию о PostgreSQL.

PostgreSQL - домашняя страница PostgreSQL.

21.12.07, 22:16

Проблемы с кодировкой в MySQL 5

Столкнулся с проблемой кодировки при переходе из MySQL 4 в MySQL 5.

Это вечная проблема, которая возникает при переходе из одной версии MySQL в другую и связана с поддерживаемыми кодовыми страницами.

При переходе из MySQL 3 в MySQL 4 была проблема с кодировками, т.к. в MySQL 3 они не указывались, а в MySQL 4 стали указываться.

При переходе же из версии MySQL 4 в MySQL 5 проблема связана с тем, что в 5-й версии уже используется универсальная кодировка utf-8.

Т.к. проблема достаточно частая, в инете полно информации.

Например:

http://forum.php-myadmin.ru/viewtopic.php?id=32&p=2

http://forum.php-myadmin.ru/viewtopic.php?pid=410#p410

http://dev.mysql.com/doc/refman/4.1/en/cha...conversion.html

В этом же форуме, я хочу подбить определённый результат, как эту проблему решить.

1. Прежде всего, нужно указать по умолчанию русские кодировки.

2. После вызова коннекта в PHP необходимо указать, что кодировка, например, cp1251

Так, например, в phpNuke я указал в файле mainfile.php после коннекта:

// Rudjuk 24.06.2007 Change Error Code

if ($db){

$db->sql_query("set names 'cp1251'");

}

После этого должно работать.

Кстати, при переносе данных из одного сервера, скажем MySQL 4 на другой с MySQL 5 следует обязательно после коннекта к базе (вначале дампа) указать:

Код

SET NAMES CP1251

Еще осталась проблема с автоматическим определением кодировки.

Почему-то по умолчанию определяется на странице, что кодировка utf-8, хотя указано явно

Код

< meta http-equiv="content-type" content="text/html; charset=windows-1251" />

В apache2 указывается кодировка по умолчанию в файле /etc/apache2/conf.d/charset, нужно просто вместо UTF-8 указать

AddDefaultCharset windows-1251

Что и говорить проблемы с кодировкой - часто встречаемая проблема.

Как её решить, прекрасно описано в статье: Решение проблем с кодировкой

Какая кодировка настроена в MySQL вы можете узнать с помощью запроса:

Код

SHOW VARIABLES LIKE 'character_set_client';

Кроме того, когда создаёте базу и таблицы не забывайте указывать кодировки, например:

Код

CREATE DATABASE `inv2_neru` CHARACTER SET cp1251 COLLATE cp1251_bin COLLATE cp1251_bin;

^

CREATE TABLE `ibf_admin_login_logs` (

`admin_id` int(10) NOT NULL auto_increment,

`admin_ip_address` varchar(16) NOT NULL default '0.0.0.0',

`admin_username` varchar(40) NOT NULL default '',

`admin_time` int(10) unsigned NOT NULL default '0',

`admin_success` int(1) unsigned NOT NULL default '0',

`admin_post_details` text,

PRIMARY KEY (`admin_id`),

KEY `admin_ip_address` (`admin_ip_address`),

KEY `admin_time` (`admin_time`)

) TYPE=MyISAM AUTO_INCREMENT=84 CHARACTER SET cp1251 COLLATE cp1251_bin;

^

21.12.07, 22:11

Восстановление баз данных MySQL

Довольно часто базы данных MySQL "ломаются". В результате, приходится ремонтировать. Поломки баз данных происходят из-за не корректных выключений компьютера или сбоев в компьютере, когда сервер не может корректно закрыть файл. Следует отметить, что не все базы данных удаётся поремонтировать, поэтому, рекомендуется делать резервные копии rolleyes.gif

Есть несколько способов восстановления баз данных. И все они требуют, чтоб никто в это время не обращался к таблице базы данных, иначе предсказать последствия не возможно.

Самый простой способ восстановления - выполнить SQL-команду:

repair table <название таблицы>;

Данная команда восстановит таблицу в большинстве случаев.

Иногда, приходится использовать специальную утилиту для восстановления таблиц:

myisamchk -r -q <название таблицы> - режим быстрого восстановления файлов.
myisamchk -r <название таблицы> - режим восстановления файла.
myisamchk -r -f -o <название таблицы> - режим восстановления в защищенном режиме файла.

21.12.07, 22:10

Ресурсы по Interbase (Firebird)

В данной теме выкладываются ресурсы по Interbase (Firebird).

interbase-world

ibase.ru

firebird

21.12.07, 22:08

Админки для администрирования хостинга

Когда много доменов и пользователей работает с сервером, возникает вопрос: Какой админкой воспользоваться для администрирования хостинга ?

Есть много админок, причём большая часть - платные, маленькая часть - бесплатные.

Кроме того, админки налагают определённые требования к операционным системам. Поэтому, иногда при настройке сервера выбор стоит не только в том, что поддерживает ли необходимая операционная среда выбранное оборудование, но и в том поддерживает ли админка, которую хотим установить данную версию операционной системы. Особо этот вопрос возникает остро с новыми операционными системами. Но, новые операционные системы умеют работать с новым оборудованием! И получается, при всём многообразии выбора возникают проблемы с выбором...

На днях, мне попал на глаза обзор большинства админок: Обзор админок

В нём хорошо описаны основные возможности админок.

Следует отметить, что я сейчас использую vhcs.

Но, вот ставлю 2-й сервер и теряюсь в выборе. Vhcs давно не обновлялся и не работает с новыми операционными системами, в то же время, оборудование у меня новое и без новых операционных систем просто не обойтись... Что же делать как лучше выбрать комбинацию операционная система/Панель управления. И эта комбинация должна стоить - 0 грн!

Есть такая панель: web-cp Написано, что работает в любой операционной системе, что мало верится rolleyes.gif . Да и не очень сильная система, давно не обновлялась, хотя, может быть хорошей альтернативой, когда не будет выбора...

Есть ещё ispconfig, но чётко для Linux определённых моделей. Хотя, нужно признать, что больше количество поддреживается, чем в vhcs (но, не поддерживается FreeBSD):

Вот список поддерживаемых ОС:

* Mandrake Linux starting from version 8.1 to 10.2

* Mandriva 2006, 2007, 2007 Spring

* Red Hat Linux starting from version 7.3 to 9.0

* Fedora Core 1 - 6

* SuSE Linux starting from version 7.2 to 10.2

* Debian 3.0 (Woody), Debian 3.1 (Sarge), Debian 4.0 (Etch)

* Ubuntu 5.04 (Hoary Hedgehog), 5.10 (Breezy Badger), 6.06 (Dapper Drake), 6.10 (Edgy Eft), 7.04 (Feisty Fawn)

* CentOS 4.1 to 5.0

Вот нашел описание большого количества бесплатных панелей для управления хостингом: http://www.helphost.ru/obzor/conpanels/freeconpanels/

Остановил свой выбор на панели Webmin. Вот описание её возможностей: http://www.helphost.ru/obzor/conpanels/freeconpanels/

Данная панель обладает огромным количеством возможностей, подходит для разных операционных систем и при этом ещё и бесплатная.

21.12.07, 22:05