Установка сервера баз данных MySQL
Установка на настройка mysql для использования минимального количества памяти.
Если у вас маломощьный сервер (до 64мб оперативной памяти) рекомендуется уменьшить расход памяти mysql за счет производительности.
Иными словами 1. Сделать так, чтобы mysql не съело всю память на сервере при старте. 2. Уменьшить потребление памяти на будущее.
Чтобы mysql cразу после установки не зарезервировал всю свободную память, создаем папку и затем файл (действия совершаем под root/суперпользователем):
Quote
mkdir /etc/mysql/ - создаем папку
touch /etc/mysql/my.cnf - создаем файл
nano /etc/mysql/my.cnf - открываем файл на редактирование
Вносим в файл текст, представленный ниже и сохраняем:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
# 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
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 2M
thread_stack = 64K
thread_cache_size = 4
###
myisam-recover = BACKUP
query_cache_limit = 2M
query_cache_size = 32M
max_binlog_size = 100M
[mysqld]
skip-bdb
skip-innodb
[mysqldump]
quick
quote-names
!includedir /etc/mysql/conf.d/
Ставим сам mysql:
Quote
apt-get install mysql-server mysql-client libmysqlclient15-dev
Во время установки появится окно установки mysql пароля. Введите необходимый пароль. Tab - Enter. Подтвердите и снова Tab + Enter.
Во время установки у Вас спросят что делать с /etc/mysql/my.cnf. Вам необходимо указать, чтобы использовался тот, что уже есть на сервере. Иначе конфиг будет перезаписан, и сервер с количеством оперативной памяти меньше 140Mb зависнет. Это связано с конфигурацией mysql. которая устанавливается по дефолту при установке mysql сервера. Обезопасим mysql стандартный утилитой mysql_secure_installation
Quote
mysql_secure_installation
Примерные вопросы, которые будут задаваться пользователю:
root@test:~# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
.............
Enter current password for root (enter for none): # введите mysql пароль, установленный вами выше.
Set new root password? [Y/n] # задать новый парооль суперпользователя? Жмем Y (да) и
New password: # вводим пароль
Re-enter new password: # и его проверку
Remove anonymous users? [Y/n] # Удалить анонимных пользователей? Да.
Disallow root login remotely? [Y/n] # запретить удаленных вход под суперпользователем? Да (обязательно!)
Remove test database and access to it? [Y/n] # удалить тестовую БД? Да.
Reload privilege tables now? [Y/n] # перезагрузить привилегии? Да.
Перезапускаем mysql:
/etc/init.d/mysql restart
Теперь MySQL использует не больше 35Mb оперативной памяти, по сравнению с 140Mb, указанными выше мы спасли вам 100Mb оперативки. Установка вебсервера Apache2 и PHP 5
Ставим сам Apache 2:
Для сохранения памяти на сервере apache ставится именно с apache2-mpm-prefork, а не с apache2-mpm-worker.
Quote
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
А также php5 и самые необходимые для начала работы с сервером модулей php5:
Quote
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-mysql php5-gd php5-mcrypt php5-xmlrpc
Сократим нагрузку, соответственно уменьшим потребление памяти (применимо к серверам с малым объемом оперативной памяти ). nano /etc/apache2/apache2.conf
Привожу измененный кусок. Находим похожий в /etc/apache2/apache2.conf и изменяем.
Quote
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 2 # можно поставить и больше, с соответственно большим расходом памяти.
MaxClients 50
MaxRequestsPerChild 4000
</IfModule>
Перезапускаем Апаче:
/etc/init.d/apache2 restart
Настройка Apache
Условные обозначения: ip-адрес 123.123.123.123.
Доменное имя, на которое отзывается данный IP: test.test.ru
Обнуляем дефолтный файл. rm -f /etc/apache2/sites-enabled/*
Рекомендуем придерживаться вложеной структуры и размещать сайты в папке /home/<имяПользователя>/<домен>
mkdir /home/test/123.123.123.123
mkdir /home/test/test.test.ru
mkdir /home/test/~logs/
Пишем в конфиг
nano /etc/apache2/httpd.conf
следущие директивы
Quote
NameVirtualHost *:80
ErrorLog /home/web/site/error.log
CustomLog /home/web/site/access.log combined
ServerAdmin
vdsadmin@lazutov.ru <VirtualHost *:80>
DocumentRoot "/home/test/123.123.123.123"
ServerName "123.123.123.123"
ServerAlias "123.123.123.123"
php_admin_value memory_limit 32M
CustomLog /home/test/~logs/123.123.123.123.log combined
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/home/test/test.test.ru"
ServerName "test.test.ru"
ServerAlias "test.test" "www.test.test.ru"
php_admin_value memory_limit 64M
CustomLog /home/test/~logs/test.test.ru.log combined
</VirtualHost>
Аналогично можно добавлять домены и поддомены. Не забывайте перезапускать вебсервер после внесения изменений
/etc/init.d/apache2 restart