
Neron
Пользователи
- Реєстрація
- 12.04.2014
- Повідомлення
- 384
- Репутація
- 24
- Вік
- 33
В этой мини статье я опишу своими словами как быстро и не имея специальных знаний перейти с хостинга на VPS.
Кому это пригодится:
Соединяемся по SSH с сервером от рута:
В первую очередь проверим обновления. Вводим по очереди это команды:
Приступаем к установке панели управления VestaCP. Vesta – легкая, бесплатная панель от русских разработчиков с удобным и понятным интерфейсом. Не жрет ресурсы как ISP или Cpanel, имеет отдельный независимый пакет php и nginx (будет работать даже если вы накосячите где-то в конфигах) и имеет хорошую поддержку.
Когда сервер спросит:
Пишем y и энтер.
Указываем рабочий e-mail. Туда придёт пароль от панели.
Указываем хостнейм. Я указываю тот, что написан в квадратных скобках.
Ждем. Установка с хорошим каналом и ssd дисками занимает минуты полторы-две:
Сохраняем пароль, запоминаем адрес для входа в панель.
Заходим по предложенному адресу, удостоверяемся что панель работает:
Возвращаемся к ssh, смотрим какие версии php и mysql у нас установились:
php 5.4.34, а бд – mysql 5.5.40.
Сейчас наша цель обновить php и заменить mysql на mariadb. Обновленный php позволит нам воспользоваться родным кешированием Zend OPcache, а mariadb жрет меньше памяти и работает быстрее (субъективно).
Открываем файл /etc/apt/sources.list в консоли, добавляем новые источники приложений:
Откроется файл. В самом конце добавляем четыре строки
Жмем CTRL+O и энтер. Закрываем файл по CTRL+X.
Скачиваем ключи:
Устанавливаем ключи:
Обновляем список доступных к установке приложений в соответствии с изменениями выше:
Запускаем обновление приложений:
Во время обновления сервер спросит:
Отвечаем N
Запускаем обновление самой системы:
Во время обновления может появиться это:
Жмем q
Проверяем какую версию php мы имеем теперь:
Видим 5.5.18 и родной кеш Zend OPcache.
Переходим к базам данных. Выполняем команды последовательно:
Обновляем список приложений:
И тут, по идее, мы должны начать установку базы данных apt-get install mariadb-server , но получаем ошибку:
Нам мешает mysql, который поставил веста. Варварским способом избавимся от него:
И запускаем установку базы:
Смотрим что у нас получилось:
Отлично!
Открываем файл /usr/local/vesta/conf/mysql.conf и смотрим какой там у нас пароль на бд поставила веста:
Видим - PASSWORD='jbknjknkj34'. Запоминаем, может пригодиться при обновлениях.
Ставим phpmyadmin для работы с базами данных:
Проверяем:
128.199.37.177/phpmyadmin/
Работает J
Тюним php.ini
Находим и меняем параметры на эти (или на какие вам захочется):
Сохраняем CTRL+O, энтер, CTRL+X
Перезапускаем апач:
Тюним апач, что бы не иметь проблем с жором памяти:
Находим там блок:
И приводим его к этому виду (эти параметры идеально подходят для vps с 512mb памяти. если памяти больше – можно и нужно ставить значения выше):
Сохраняем, перезапускаем апач
С апачем закончили, тюним базу данных:
Находим и ставим следующие значения:
Сохраняем, перезапускаем бд:
Готово.
Приступаем к добавлению домена. Предполагается, что у вас стоит хороший днс, позволяющий управлять зоной (а вы умеете это делать). Допустим, у нас есть домен test.prcy. В управлении доменной зоной нам нужно задать для A записи IP вашего сервера. Допустим у сервера IP 128.199.37.177. Наши записи должны принять следующий вид:
Добавляем домен в панель управления сервером.
128.199.37.177:8083/list/web/ (вкладка web), жмем «добавить домен»
Почему я отключил поддержку почты? Потому что это лишняя и приличная нагрузка на сервер. В качестве почты для домена идеально подходит pdd.yandex.ru. Не поленитесь, настройте.
Создаем базу данных:
128.199.37.177:8083/list/db/ (вкладка DB), жмем «Добавить БД»
Конектимся по фтп по данным, которые мы указывали когда добавляли домен.
Наш сайт, который будет открываться по домену test.prcy, должен будет лежать в папке public_html
Давайте удалим содержимое public_html и закачаем туда какой-нить тестовый архив (zip).
Пока архив закачивается, возвращаемся к SSH и отключаемся:
Логинимся в SSH по новой, но уже не от root пользователя, а от admin (это принципиально важно). Пароль тот же что и от панели vesta.
Ставим утилиту, что бы распаковать наш архив.
Когда спросит пароль, вводим пароль от панели vesta.
Переходим в директорию, куда закинули архив:
Распаковываем архив:
Проверяем:
Заканчиваем установку сайта и видим, что всё работает:
Сайт готов к использованию и выдержит приличную нагрузку (при конфигах, указанных выше, сайт держит нажатую F5 в течении 5 минут и спокойно открывается.
Вот таким нехитрым способом мы поставили и запустили сервер, настроили его и добавили для примера один сайт.
Не забываем, что вся работа с сайтами должна вестись от логина admin. А вся работа по настройке сервера от логина root. Иначе у вас возникнут проблемы с правами доступа и невозможностью записи файлов силами CMS.
Гайд писался параллельно с настройкой vps, каждая команда проверена и работает.
Именно этого гайда мне не хватало в свое время. Надеюсь кому-то это будет полезно.
Кому это пригодится:
- тем, кому просто интересно
- тем, кого достало
анальное рабствопостоянные ограничения со стороны хостера - тем, кто надумал перейти на VPS, но не хватает теоретических знаний
- установка панели управления сервером
- обновление php до версии 5.5.* с родным кешированием
- замена mysql на mariadb
- небольшие твики конфигов сервера
- VPS c debian 7 и ssh доступом к нему
- любой клиент ssh (putty для винды, в маке и линуксе уже есть терминал)
- знание вашей cms (где лежат конфиги, как их править и т.п.)
- умение пользоваться днс (настройка A записи)
- базовые знания командной строки линукс
- базовые знания английского языка
- внимательность
Соединяемся по SSH с сервером от рута:
Код:
login: root
root@128.199.37.177's password:
Linux prcy 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Код:
apt-get update
Код:
apt-get upgrade
Код:
curl -O http://vestacp.com/pub/vst-install.sh
Код:
bash vst-install.sh –force
Код:
Do you want to proceed? [y/n]):
Указываем рабочий e-mail. Туда придёт пароль от панели.
Указываем хостнейм. Я указываю тот, что написан в квадратных скобках.
Код:
Do you want to proceed? [y/n]): y
Please enter valid email address: mr.devilstar@gmail.com
Please enter hostname [prcy]: prcy
Код:
=======================================================
-------------------------------
https://128.199.37.177:8083
username: admin
password: GsdH73Gppe
-------------------------------
Congratulations,
you have successfully installed Vesta Control Panel.
Заходим по предложенному адресу, удостоверяемся что панель работает:
Возвращаемся к ssh, смотрим какие версии php и mysql у нас установились:
Код:
root@prcy:~# php -v
PHP 5.4.34-0+deb7u1 (cli) (built: Oct 20 2014 09:46:02)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
root@prcy:~# mysql -v
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 62
Server version: 5.5.40-0+wheezy1 (Debian)
Сейчас наша цель обновить php и заменить mysql на mariadb. Обновленный php позволит нам воспользоваться родным кешированием Zend OPcache, а mariadb жрет меньше памяти и работает быстрее (субъективно).
Открываем файл /etc/apt/sources.list в консоли, добавляем новые источники приложений:
Код:
nano /etc/apt/sources.list
Код:
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all
Скачиваем ключи:
Код:
wget http://www.dotdeb.org/dotdeb.gpg
Код:
apt-key add dotdeb.gpg
Код:
apt-get update
Код:
apt-get upgrade
Код:
*** my.cnf (Y/I/N/O/D/Z) [default=N] ?
Запускаем обновление самой системы:
Код:
apt-get dist-upgrade
Жмем q
Проверяем какую версию php мы имеем теперь:
Код:
root@prcy:~# php -v
PHP 5.5.18-1~dotdeb.1 (cli) (built: Oct 22 2014 18:15:17)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
Переходим к базам данных. Выполняем команды последовательно:
Код:
apt-get install python-software-properties
Код:
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
Код:
add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/10.1/debian wheezy main'
Код:
apt-get update
Код:
root@prcy:~# apt-get install mariadb-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-10.1 (= 10.1.1+maria-1~wheezy) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Код:
apt-get purge mysql* mariadb*
Код:
apt-get install mariadb-server
Код:
root@prcy:~# service mysql status
[info] /usr/bin/mysqladmin Ver 9.1 Distrib 10.1.1-MariaDB, for debian-linux-gnu on i686
Открываем файл /usr/local/vesta/conf/mysql.conf и смотрим какой там у нас пароль на бд поставила веста:
Код:
nano /usr/local/vesta/conf/mysql.conf
Ставим phpmyadmin для работы с базами данных:
Код:
apt-get install phpmyadmin
128.199.37.177/phpmyadmin/
Работает J
Тюним php.ini
Код:
nano /etc/php5/apache2/php.ini
Код:
max_execution_time = 180
upload_max_filesize = 64M
post_max_size = 64M
Перезапускаем апач:
Код:
service apache2 restart
Код:
nano /etc/apache2/apache2.conf
Код:
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>
Код:
<IfModule mpm_prefork_module>
StartServers 3
MinSpareServers 3
MaxSpareServers 9
ServerLimit 256
MaxClients 20
MaxRequestsPerChild 3000
</IfModule>
Код:
service apache2 restart
Код:
nano /etc/mysql/my.cnf
Код:
max_connections = 50
connect_timeout = 5
wait_timeout = 30
max_allowed_packet = 16M
thread_cache_size = 128
sort_buffer_size = 512K
bulk_insert_buffer_size = 16M
tmp_table_size = 16M
max_heap_table_size = 16M
myisam_recover = BACKUP
key_buffer_size = 8M
#open-files-limit = 2000
table_open_cache = 400
myisam_sort_buffer_size = 8M
concurrent_insert = 2
read_buffer_size = 512K
read_rnd_buffer_size = 512K
innodb_buffer_pool_size = 8M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT
Код:
service mysql restart
Приступаем к добавлению домена. Предполагается, что у вас стоит хороший днс, позволяющий управлять зоной (а вы умеете это делать). Допустим, у нас есть домен test.prcy. В управлении доменной зоной нам нужно задать для A записи IP вашего сервера. Допустим у сервера IP 128.199.37.177. Наши записи должны принять следующий вид:
Добавляем домен в панель управления сервером.
128.199.37.177:8083/list/web/ (вкладка web), жмем «добавить домен»
Почему я отключил поддержку почты? Потому что это лишняя и приличная нагрузка на сервер. В качестве почты для домена идеально подходит pdd.yandex.ru. Не поленитесь, настройте.
Создаем базу данных:
128.199.37.177:8083/list/db/ (вкладка DB), жмем «Добавить БД»
Конектимся по фтп по данным, которые мы указывали когда добавляли домен.
Наш сайт, который будет открываться по домену test.prcy, должен будет лежать в папке public_html
Давайте удалим содержимое public_html и закачаем туда какой-нить тестовый архив (zip).
Пока архив закачивается, возвращаемся к SSH и отключаемся:
Код:
logout
Ставим утилиту, что бы распаковать наш архив.
Код:
sudo apt-get install unzip
Переходим в директорию, куда закинули архив:
Код:
cd web/test.prcy/public_html
Код:
unzip yoo_peak_demo_package_j33.zip
Заканчиваем установку сайта и видим, что всё работает:
Сайт готов к использованию и выдержит приличную нагрузку (при конфигах, указанных выше, сайт держит нажатую F5 в течении 5 минут и спокойно открывается.
Вот таким нехитрым способом мы поставили и запустили сервер, настроили его и добавили для примера один сайт.
Не забываем, что вся работа с сайтами должна вестись от логина admin. А вся работа по настройке сервера от логина root. Иначе у вас возникнут проблемы с правами доступа и невозможностью записи файлов силами CMS.
Гайд писался параллельно с настройкой vps, каждая команда проверена и работает.
Именно этого гайда мне не хватало в свое время. Надеюсь кому-то это будет полезно.
Останнє редагування модератором: