Настройка веб-сервера под FreeBSD. Часть 3.

Unix

Автор: Александр Степанов

1 нояб. 2011 г., 09:38:45  3412


И снова приветствую вас.
В этой (последней) части статьи я расскажу про установку и настройку дополнительных сервисов, таких как Apache и MySQL, а так же, PHP, его различные модули и Zend Optimizer.
Действия, описанные здесь, уже могут выполняться с использованием удалённого доступа (SSH), не имея физического доступа к серверу.
Итак, начнём.

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

Начнём мы с установки такой замечательной «качалки», как wget. Далее он нам пригодится для скачивания некторых архивов.
 

Установка WGET

Переходим в каталог /usr/ports/ftp/wget и выполняем команды:
make install clean
rehash
Всё, WGET установлен.
 

Устанавливаем lynx

lynx — текстовый браузер. В некоторых случаях необходим для работы Apache.
Для установки переходим в каталог /usr/ports/www/lynx и выполняем команды:
make install clean
rehash
 

Установка Apache

Сразу оговорюсь, здесь будет описан только процесс установки. Настройка Apache будет описана далее в статье.
Ставить будем Apache версии 2.2
Переходим в каталог /usr/ports/www/apache22 и выполняем команды:
make WITH_MPM=itk (это нужно, чтобы разделить пользователей VirtualHost'ов)
make install clean
rehash
При установке Apache запросит список модулей. Я рекомендую отметить следующие модули:


AUTHN_FILE
AUTHN_DEFAULT
AUTHN_ALIAS
AUTH_BASIC
AUTHZ_USER
AUTHZ_HOST
INCLUDE
CHARSET_LITE
LOG_CONFIG
ENV
EXPIRES
HEADERS
SETENVIF
MIME
AUTOINDEX
ASIS
CGI
VHOST_ALIAS
DIR
ACTIONS
ALIAS
REWRITE

(перечислены не по порядку)
После установки необходимо добавить в /etc/rc.conf строку:
apache22_enable=«YES»
чтобы Apache запустился после перезагрузки системы
После перезагрузки Apache может ругаться на ошибки в конфигурационом файле. На данном этапе это нормальное явление, т.к. Apache ещё не сконфигурирован.

 


Установка MySQL

Для установки MySQL сначала определяемся с версией. На официальном сайте рекомендуют использовать версию 5.1, однако я предпочитаю использовать версию 4.1. Это связано с отсутствием в последней виртуальной таблицы information_schema, которая крайне редко применяется, но при этом существенно помогает хакерам определить структуру базы, при наличии SQL инъекции.
Для установки версии 5.1 переходим в каталог /usr/ports/databases/mysql51-server
Для установки версии 5.0 переходим в каталог /usr/ports/databases/mysql50-server
Для установки версии 4.1 переходим в каталог /usr/ports/databases/mysql41-server
Далее все описанные действия будут одинаковыми для всех версий MySQL.
Выполняем команды:
make WITH_CHARSET=charset WITH_COLLATION=collation WITH_XCHARSET=all BUILD_OPTIMIZED=yes BUILD_STATIC=yes (collation и charset — опции кодировки по умолчанию; правильно было бы использовать cp1251 и cp1251_general_ci, если большинство скриптов используют кодировку CP1251, либо utf8 и utf8_general_ci, если большинство скриптов используют Юникод)
make install
make clean
rehash
Внимание! Архив с MySQL сервером занимает более 20МБ, а процесс компиляции может занять много времени (более получаса).
После установки необходимо добавить в /etc/rc.conf строку:
mysql_enable=«YES»
чтобы MySQL запустился после перезагрузки системы и добавить строку:
mysql
в файл /etc/ftpusers
Папка с базами данных создастся автоматически после первого запуска MySQL
 

Установка PHP

Для установки PHP переходим в каталог /usr/ports/lang/php5 и выполняем команду make
PHP запросит у нас некоторые параметры. Отмечаем следующие опции (остальные отметки снимаем):


CLI
APACHE
MAILHEAD

Продолжаем компицяцию. После компиляции запускаем команды:
make install clean
rehash
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
 

Установка Zend Optimizer

В случае использования amd64 архитектуры, переходим в каталог /usr/ports/devel/ZendOptimizer и выполняем команды:
make install clean (следуем инструкциям установщика)
rehash
Если же мы используем i386 архитектуру, то предпочтительнее ставить более новый ZendOptimizer.
Делается это так:
cd /root
wget www.phpchina.com/download/soft/zend/optimizer/3.3.3/ZendOptimizer-3.3.3-freebsd6.0-i386.tar.gz (либо, если не захочет оттуда качать — wget http://files.eugen.su/ZendOptimizer-3.3.3-freebsd6.0-i386.tar.gz) — на момент написания статьи это самая новая версия ZendOptimizer
tar xpvzf ZendOptimizer-3.3.3-freebsd6.0-i386.tar.gz
cd ZendOptimizer-3.3.3-freebsd6.0-i386
./install (соглашаемся со всеми лицензионными соглашениями)
Далее установщик запросит путь для установки — оставляем путь по умолчанию — /usr/local/Zend
Вводим путь к каталогу с php.ini: /usr/local/etc
Далее установщик задаст несколько вопросов:
1) Используете ли вы Apache? (отвечаем положительно)
2) Путь к apachectl (оставляем значение по умолчанию)
3) Несколько уведомлений
4) Нужно ли перезапустить веб сервер? (отвечаем отрицательно, т.к. апач, вероятно, не запущен из-за отсутствия конфигурации)
Установка ZendOptimizer завершена. Удаляем каталог с распакованным установщиком ZendOptimizer (архив, в принципе, тоже можно удалить, однако, советую сохранить его).
 

Установка расширений PHP

Переходим в каталог /usr/ports/lang/php5-extensions и выполняем команду make.
В следующем дмалоге выбираем расширения, которые необходимо установить.
Компиляция — очень продолжительный процесс, может занять несколько часов времени и периодически будет запрашивать параметры сборки тех или иных расширений.
После компиляции выполняем команды:
make install clean
rehash
Советую скомпилировать все модули PHP, кроме явно ненужных (таких как MSSQL и других). Ненужные модули позже можно будет отключить в конфигурации, но если какой-то из модулей понадобится позже — возможно, достать его будет проблематично.
Внимание! Было обнаружено ненормальное поведение модулей pspell и recode. Если PHP будет «вылетать» с ошибками — следует в первую очередь убрать эти расширения.
 

Установка ImageMagick

ImageMagick — набор программ и библиотек для работы с графикой. В некоторых отношениях, лучше, чем GD2. Так же, у него больше возможностей, чем у GD2.
Для установки переходим в каталог /usr/ports/graphics/ImageMagick и выполняем команду make.
В следующем диалоге выбираем все опции, кроме IMAGEMAGICK_HDRI и IMAGEMAGICK_SVG (с ним были проблемы при установке).
После компиляции запускаем команды:
make install clean
rehash
Процесс компиляции ImageMagick занимает несколько часов, но меньше, чем установка PHP расширений и периодически запрашивает параметры установки.

Если ничего больше не планируем устанавливать — переходим в каталог /usr/ports/distfiles и выполняем команду:
rm -rf *
чтобы удалить с винчестера все скачанные архивы с программами.

После установки сервисов можно посмотреть, сколько места свободно на нашем винчестере. Делается это такой командой:
df -h

Далее несколько советов.
Добавлять пользователей нужно командой adduser, следуя её инструкциям (группа должна быть www). После добавления пользователя на его домашний каталог необходимо поставить права (CHMOD) 0700 (иначе, пользователи смогут просматривать содержимое домашних каталогов друг у друга).
Необходимо периодически пересматривать список пользователей в /etc/passwd и файл /etc/ftpusers, в нём список пользователей, для которых запрещён вход по FTP, а так же, почтовые алиасы в /etc/mail/aliases.
 

Настройка Apache


Главный конфигурационный файл Apache находится здесь: /usr/local/etc/apache22/httpd.conf
Открываем в редакторе этот файл и медленно листаем вниз, читая комментарии.
Первая строка, которую нужно изменить — это ServerAdmin. Здесь желательно указать свой адрес электронной почты.
DocumentRoot — полный путь к каталогу с файлами, которые будут доступны при неверном Host (т.е., если к серверу происходит обращение на несуществующий VirtualHost). Здесь рекомендую указать путь к каталогу, в котором находится страница ошибки 404. Например, как сделано у меня: someone.tem.dp.ua
Путь советую использовать такой: /usr/local/www/data
Далее идут параметры для доступа в каталог /
По умолчанию это выглядит так:


< Directory / >
  AllowOverride None
  Order deny,allow
  Deny from all


Такое жёсткое ограничение не нужно, поэтому заменяем эти строки такими:


< Directory / >
  AllowOverride None


Далее чуть ниже идут опции для каталога со всеми сайтами.
< Directory "/usr/local/www/apache22/data/" >
и дальше опции. Путь заменяем на /home, т.к. там будут все наши VirtualHost'ы:
< Directory "/home" >
Так же, заменяем здесь параметр AllowOverride с None на All, в противном случае нельзя будет использовать .htaccess файлы. Вернее, Apache будет игнорировать их.
Далее идёт настройка индексового файла по умолчанию. Заменяем её следующим образом:


< IfModule dir_module >
  DirectoryIndex index.php index.php5 index.phtml index.shtml index.htm index.html index.phps


В общем, указываем возможные имена индексовых файлов через запятую, в том порядке, в котором хотим, чтобы Apache проверял их. В данном примере, если в папке есть файлы index.php и index.html, то сервер отобразит (выполнит) содержимое файла index.php.
Далее идёт настройка ведения логов. Путь для логов можно оставить прежний, а вот формат лога советую изменить на такой:
LogFormat "%h %u %t \"%{Host}i\" \"%r\" % >s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
а остальные строки, связанные с LogFormat — закомментировать (таким образом, как на скриншоте):
X
Так же, ведение логов может настраиваться отдельно, для каждого VirtualHost'а. Далее будет приведен пример SH-скрипта для ротации логов с архивированием.
После этого идут настройки алиасов. Стандартно, там есть только один параметр — ScriptAlias. Его мы сделаем таким:
ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
В этой папке могут находиться CGI скрипты (естественно, что этот алиас может задаваться для каждого VirtualHost'а, поэтому здесь следует задать путь «по умолчанию»). Сам каталог должен существовать.
Так же, здесь можно сделать глобальные алиасы, например, phpMyAdmin. Делается это таким образом:
Alias /myadmin /usr/local/www/myadmin
В папке /usr/local/www/myadmin должен при этом находиться phpMyAdmin, который будет доступен по всем адресам вида сайт/myadmin/
Так же, здесь могут быть заданы другие глобальные алиасы.
Не забываем поправить пути:


< Directory "/usr/local/www/cgi-bin" >
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all


После этих строк необходимо добавить следующие:


< Directory "/usr/local/www" >
  Order allow,deny
  Allow from all

< Directory "/usr/local/www/myadmin" >
  AllowOverride All


Далее идёт параметр DefaultType, по умолчанию равен text/plain. Советую заменить на application/octet-stream. В этом случае все файлы с неизвестными расширениями клиенту будет предложено сохранить, а не отобразить в браузере как текст. Сюда входит, например, RAR. Можно бороться с этим и иначе — добавлять новые расширения в файл mime.types, однако, здесь лучше использовать такой тип по умолчанию.
Далее, в раздел настройки модуля MIME необходимо добавить такие две строки:


AddType application/x-httpd-php .php .php5 .phtml
AddType application/x-httpd-php-source .phps .php5s

для поддержки PHP (см. скриншот).
X
Далее, находим в файле такую строку:
Include etc/apache22/Includes/*.conf
и добавляем перед ней слудующие строки:


# Server-pool management (MPM specific)
Include etc/apache22/extra/httpd-mpm.conf
# Fancy directory listings
Include etc/apache22/extra/httpd-autoindex.conf
# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
# Various default settings
Include etc/apache22/extra/httpd-default.conf

если, конечно, их нет в этом файле (зависит от версии Apache).
С редактированием главного конфигурационного файла закончили закончили. Переходим в каталог extra.
Сразу бросается в глаза кодичество конфигурационных файлов. Но нам они все не нужны. Мало того, я советую удалить все файлы, кроме следующих черырёх:
httpd-mpm.conf
httpd-autoindex.conf
httpd-vhosts.conf
httpd-default.conf
Редактируем файл httpd-autoindex.conf. Всё, что нам нужно в нём изменить — это пути к папкам.
/usr/local/www/apache22/icons заменяем на /usr/local/www/icons
В файле httpd-default.conf необходимо заменить следующие строки:
ServerTokens Full заменяем на ServerTokens Prod
ServerSignature On заменяем на ServerSignature Off
Чтобы как можно меньше информации о сервере предоставлять в заголовках и на страницах с ошибками.
В файле httpd-vhosts.conf удаляем всё содержимое и пишем туда следующее:


####################
NameVirtualHost *
####################
< VirtualHost * >
  ServerAdmin наш@адрес
  DocumentRoot /usr/local/www/data
  ServerName errors
  ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
  < Directory "/usr/local/www/cgi-bin" >
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
 

  AssignUserID www www


Первый VirtualHost должен ссылаться на каталок с ошибками (или главный сайт на сервере).
Далее, по аналогии сюда можно будет добавлять другие сайты. Вот основные параметры:
DocumentRoot — путь к корню сайта
ServerName — адрес (хост) сайта
AssignUserID пользователь группа — связать данный VirtualHost с пользователем. Выше было оговорено, что группа у всех пользователей должна быть www.
Настройка Apache на этом завершена. Далее переходим в каталог /usr/local/www и выполняем такие команды:
mv apache22/icons .
rm -rf apache22
chown -R www:www *
chmod 0755 icons
mkdir -m 0755 myadmin
mkdir -m 0755 data
mkdir -m 0755 cgi-bin
Всё, что находится в этом каталоге будет доступно на чтение другим пользователям. Далее, в соответствующие каталоги должны быть загружены phpMyAdmin и страницы ошибок. Если этот каталог используется для главного сайта, а не для ошибок, то на каталоги data и cgi-bin должны быть выставлены права 0700 и тогда их содержимое не будет доступно другим пользователям.
Файлы туда могут быть загружены по FTP другого пользователя и перемещены от имени root (с изменением владельцев), либо загружены WGET'ом. Так же, можно создать другого пользователя с доступом по FTP и UID=80, чтобы получить FTP доступ к этому каталогу. Как создать пользователя с UID уже существующего, в этой статье рассматриваться не будет.
Далее, как я и обещал, создаём скрипт для ротации логов Apache.
Переходим в наш домашний каталог и создаём файл logrot.sh с таким содержимым:


#!/bin/sh
/bin/mv /var/log/httpd-access.log /var/log/httpd-access.log.1
/bin/mv /var/log/httpd-error.log /var/log/httpd-error.log.1
/bin/echo «Started new log» >/var/log/httpd-access.log
/bin/echo «Started new log» >/var/log/httpd-error.log
/usr/local/sbin/apachectl graceful >/dev/null
/bin/chmod 600 /var/log/httpd-access.log
/bin/chmod 600 /var/log/httpd-error.log
/bin/mv /var/log/httpd-error.log.8.gz /var/log/httpd-error.log.9.gz
/bin/mv /var/log/httpd-access.log.8.gz /var/log/httpd-access.log.9.gz
/bin/mv /var/log/httpd-error.log.7.gz /var/log/httpd-error.log.8.gz
/bin/mv /var/log/httpd-access.log.7.gz /var/log/httpd-access.log.8.gz
/bin/mv /var/log/httpd-error.log.6.gz /var/log/httpd-error.log.7.gz
/bin/mv /var/log/httpd-access.log.6.gz /var/log/httpd-access.log.7.gz
/bin/mv /var/log/httpd-error.log.5.gz /var/log/httpd-error.log.6.gz
/bin/mv /var/log/httpd-access.log.5.gz /var/log/httpd-access.log.6.gz
/bin/mv /var/log/httpd-error.log.4.gz /var/log/httpd-error.log.5.gz
/bin/mv /var/log/httpd-access.log.4.gz /var/log/httpd-access.log.5.gz
/bin/mv /var/log/httpd-error.log.3.gz /var/log/httpd-error.log.4.gz
/bin/mv /var/log/httpd-access.log.3.gz /var/log/httpd-access.log.4.gz
/bin/mv /var/log/httpd-error.log.2.gz /var/log/httpd-error.log.3.gz
/bin/mv /var/log/httpd-access.log.2.gz /var/log/httpd-access.log.3.gz
/bin/mv /var/log/httpd-error.log.1.gz /var/log/httpd-error.log.2.gz
/bin/mv /var/log/httpd-access.log.1.gz /var/log/httpd-access.log.2.gz
/usr/bin/gzip -9 /var/log/httpd-access.log.1
/usr/bin/gzip -9 /var/log/httpd-error.log.1

Затем выполняем команду:
chmod a+x logrot.sh
чтобы разрешить исполнение данного скрипта.
После этого переходим в /etc и редактируем файл crontab. Добавляем в него одну строку:
0 0 * * * root /root/logrot.sh
После этого, этот скрипт будет запускаться раз в сутки в 12 часов ночи, архивировать старые логи и начинать новые. Так же, этот скрипт можно приспособить для отдельных логов для VirtualHost'ов.
После всего этого можно перезагрузить сервер. Настройка Apache полностью завершена.
После перезагрузки можно попробовать со стороны зайти на сервер. Если всё сделано правильно, мы должны увидеть Index of / и пустую папку (если, конечно, не загрузили туда ещё свои файлы). Если же сервер не отвечает или видим ошибку 404 или 403 — необходимо внимательно пересмотреть конфиги и все папки и права.

 


Настройка PHP

Конфигурационный файл PHP находится в каталоге /usr/local/etc. Переходим в этот каталог и открываем в редакторе файл php.ini (на самом деле, после установки Zend Optimizer, в этом каталоге будет не файл php.ini, а ссылка (symlink) на него. Сам файл при этом находится в другом каталоге, но это не важно.
Открываем и медленно листаем файл, читая комментарии.
Краткая информация по некоторым параметрам:
engine — указывает на необходимость интерпретировать PHP. Если параметр имеет значение off, то ваши PHP скрипты не будут интерпретироваться.
zend.ze1_compatibility_mode — совместимость со старым Zend Engine 1. Рекомендую оставить выключенным, в противном случае возможны проблемы с расширением mysqli.
short_open_tag — разрешать интерпретировать скрипты внутри коротких тэгах (asp_tags — разрешить интерпретацию скриптов внутри < %… % >. Рекомендую выключить эту опцию.
precision — количество знаков после запятой при выводе дробных чисел. По умолчанию равно 14 и менять этот параметр не рекомендую.
y2k_compilance — совместимость с «проблемой 2000 года».
output_buffering — размер буффера. Рекомендуемое значение 2048-4096. По умолчанию равен 4096.
implicit_flush — параметр, указывающий на необходимость выброса без буфферизации каждого блока кода. Крайне не рекомендуется включать данный параметр, т.к. это снижает производительность.
safe_mode — безопасный режим PHP. Рекомендую выключить его, т.к. Apache жёстко разделяет пользователей и каждый пользователь может делать ровно столько, сколько ему позволяют системные права.
disable_functions и disable_classes — список запрещёных функций и классов. Лично я предпочёл оставить эти параметры пустыми (из тех же соображений, из которых я выключил безопасный режим).
expose_php — параметр, указывающий на необходимость добавлять информацию, о том, что страница сгенерирована с помощью PHP в HTTP заголовки. Рекомендую выключить эту опцию, однако, это никак не влияет на производительность и безопасность.
max_execution_time — максимальное время (в секундах), которое PHP может потратить на выполнения скрипта. Я рекомендую значение 60 (т.е., одна минута). 0 — выключить ограничение.
max_input_time — максимальное время (в секундах), которое PHP может потратить на обработку данных ввода. Рекомендуемое значение 60. 0 — выключить ограничение.
memory_limit — максимальный объём памяти на выполнение одного скрипта. Здесь нужно исходить из реального объёма ОЗУ в сервере.
error_reporting — уровень вывода ошибок. Для хостинга различных сайтов рекомендуемое значение E_ALL&~E_NOTICE, для сервера с отлажеными сайтами рекомендуемое значение 0.
display_errors — указывает на необходимость вывода сообщений об ошибках. Для хостинга различных сайтов рекомендую включить эту опцию, для сервера с отлажеными сайтами — выключить.
log_errors — сохранять сообщения об ошибках в лог (messages). Настоятельно рекомендую в любом случае включить эту опцию.
variables_order — порядок регистрации переменных (глобальных и в массиве $_REQUEST). Рекомендуемое значение EGPCS.
register_globals — параметр, указывающий на необходимость регистрации глобальных переменных. Граммотно написанные скрипты не требуют для работы этого параметра, некоторые скрипты требуют, а для некоторых скриптов этот параметр становится причиной уязвимостей. Для хостинга, всё-таки, рекомендую включить этот параметр (для отдельных сайтов его можно будет выключить с помощью .htaccess файла).
register_long_arrays — регистрировать ли длинные глобальные массивы (HTTP_GET_VARS, HTTP_POST_VARS и другие) для совместимости со старыми скриптами? Решать вам… Для хостинга рекомендую включить эту опцию.
register_argc_argv — регистрировать ли в $_SERVER['argc'] параметры, переданные в GET запросе? Ответ будет таким же, как и на предыдущий вопрос, т.к. это может быть нужно для совместимости со старыми скриптами. Для хостинга рекомендую включить эту опцию.
post_max_size — максимальный размер принимаемых данных в POST запросе. Этот параметр не должен быть слишком маленьким и должен, хотябы, в 2 раза превышать memory_limit.
magic_quotes_runtime, magic_quotes_gpc и magic_quotes_sybase — это не тема для данной статьи. Настоятельно рекомендую выключить все три параметра.
enable_dl — разрешать ли пользователям подключать собственные расширения PHP в рамках выполнения их скриптов? Весьма полезная опция, например, для IonCube и всяких нестрандартных криптосистем.
file_uploads — параметр, указывающий на возможность загрузки файлов через PHP скрипты. Рекомендую включить данный параметр.
upload_max_filesize — максимальный размер всех загружаемых файлов за один раз. Должен быть меньше, чем post_max_size.
allow_url_fopen — указывает на возможность открытия некоторых URL как простые файлы.
allow_url_include — указывает на возможность подключения удалённых файлов функцией include и подобными. В целях безопасности, рекомендую отключить данный параметр.
Список файлов с расширениями PHP находится в файле /usr/local/etc/php/extensions.ini, комментарии в этом файле выделяются символом; а не #, как в системных файлах.
 

Настройка MySQL

Пожалуй, самя сложная часть, т.к. MySQL не даёт пример конфигурационного файла. Конфигурационнай файл прийдётся писать полностью самому, либо искать готовые примеры в интернете. Конфигурационный файл должен называться my.cnf и должен распологаться в /var/db/mysql или в /usr/local/etc (для версии 5.1). В общем, правильнее было бы сделать этот файл в /var/db/mysql, а в /usr/local/etc сделать ссылку (symlink) на него.
Привожу рабочий пример конфигурационного файла:


[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 64M
max_allowed_packet = 128M
table_cache = 64
sort_buffer_size = 16M
net_buffer_length = 8K
read_buffer_size = 1M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 16M
skip-networking
server-id = 1
[mysqldump]
quick
max_allowed_packet = 64M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 64M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 64M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

Теперь разбирём, что здесь написано.
Секция [client] отвечает за настройки клиента для соединения с MySQL сервером. Параметры port и socket должны совпадать с соответствующими параметрами в секции [mysqld]. port — TCP порт, через который будет работать MySQL, socket — UNIX сокет. Для данной конфигурации параметр port ничего не значит, т.к. при включенной опции skip-networking MySQL не будет работать через TCP. Для работы MySQL будет использоваться SOCKET-файл, который находится здесь: /tmp/mysql.sock. Работа через SOCKET-файл происходит быстрее, чем через сеть. Поэтому, было принято решение сеть не использовать вообще. Если вам нужно, чтобы к MySQL серверу возможно было подключаться снаружи, эту опцию нужно убрать.
В секции [mysqld] опция skip-locking запрещает внешнее блокирование (системный вызов flock).
key_buffer — отвечает за размер буфера в памяти, используемого для хранения индексов таблиц.
max_allowed_packet — максимальный размер пакета данных.
table_cache — количество открытых таблиц для всех потоков.
sort_buffer_size и myisam_sort_buffer_size — размеры буфферов для сортировки.
net_buffer_length — размер буффера для передачи данных.
read_buffer_size — размер буффера при чтении данных из файлов.
server-id — идентификатор сервера, должен равняться одному (если это первичный или единственный сервер БД, при использовании slave-серверов).
Описание дополнительных параметров может быть найдено на сайте mysql.com (к сожалению, на английском языке) или в стандартной помощи к MySQL. Собственно, используя эти данные я и составлял конфигурационный файл.
После конфигурации MySQL можно перезагрузить сервер.
Далее необходимо подключиться к MySQL, например, phpMyAdmin'ом, удалить стандартную базу данных test, изменить пароль на root'а (по умолчанию пароль пустой, т.е. используется вход без пароля). Создавать пользователей БД можно через тот же phpMyAdmin.

Спасибо за внимание, с вами был Eugen.
Желаю удачи в ваших веб разработках!