Search the Community

Showing results for tags 'mariadb'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Поисковые системы
    • Поисковая оптимизация
    • Яндекс
    • Google
    • Другие поисковики
    • SMO
    • Каталоги
    • Инструкции и уроки
  • Основные форумы
    • Новости
    • Контекстная реклама
    • Партнерские программы
    • Сервисы, программы и скрипты
    • Дизайн
    • Домены
    • Биржа сайтов
    • Сайтостроительство
    • Хостинг
    • Финансы
    • Разное
    • Конкурсы
  • Работа
    • Правила раздела
    • Дизайн
    • Копирайт/Рерайт
    • SEO
    • SMO/SMM
    • Программирование
    • Разное
  • Другое
    • О нас
    • Black List
    • White List
    • Оффтопик

Skype


Местоположение


Интересы


Ваш сайт


Профиль ID

Found 1 result

  1. Статья актуализирована 18.06.2015 В этой мини статье я опишу своими словами как быстро и не имея специальных знаний перейти с хостинга на VPS. Кому это пригодится: · тем, кому просто интересно · тем, кого достало анальное рабство постоянные ограничения со стороны хостера · тем, кто надумал перейти на VPS, но не хватает теоретических знаний В этом примере я рассмотрю следующие моменты: · установка панели управления сервером · обновление php до версии 5.5.* с родным кешированием · замена mysql на mariadb · небольшие твики конфигов сервера Что потребуется: · VPS c debian 7 и ssh доступом к нему · любой клиент ssh (putty для винды, в маке и линуксе уже есть терминал) · знание вашей cms (где лежат конфиги, как их править и т.п.) · умение пользоваться днс (настройка A записи) · базовые знания командной строки линукс · базовые знания английского языка · внимательность Приступим. В качестве примера я буду использовать VPS c 1 cpu 1000mhz, 512 ram и 20gb ssd. Операционная система – debian 7 x86 (32-bit). Если вы предполагаете, что ваши сайты потребуют больших ресурсов (скажем больше 2gb памяти), то выбираем debian 7 x64. Соединяемся по 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 Приступаем к установке панели управления VestaCP. Vesta – легкая, бесплатная панель от русских разработчиков с удобным и понятным интерфейсом. Не жрет ресурсы как ISP или Cpanel, имеет отдельный независимый пакет php и nginx (будет работать даже если вы накосячите где-то в конфигах) и имеет хорошую поддержку. В первую очередь нужно удалить exim4, который идёт в комплекте с Debian 7. aptitude purge ~iexim4 apt-get purge exim4 exim4-base exim4-config exim4-daemon-light Если нет curl (который используется ниже), ставим его: apt-get install curl Ставим панель: curl -O http://vestacp.com/pub/vst-install.sh bash vst-install.sh Когда сервер спросит: Do you want to proceed? [y/n]): Пишем y и энтер. Указываем рабочий e-mail. Туда придёт пароль от панели. Указываем хостнейм. Я указываю тот, что написан в квадратных скобках. Do you want to proceed? [y/n]): y Please enter valid email address: mr.devilstar@gmail.com Please enter hostname [prcy]: prcy Ждем. Установка с хорошим каналом и ssd дисками занимает минуты полторы-две: ======================================================= ------------------------------- 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 5.4.34, а бд – mysql 5.5.40. Сейчас наша цель обновить 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 Жмем CTRL+O и энтер. Закрываем файл по CTRL+X. Скачиваем ключи: 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] ? Отвечаем 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 Видим 5.5.x и родной кеш Zend OPcache. Переходим к базам данных. Выполняем команды последовательно: apt-get install python-software-properties apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db и ЛИБО add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/10.0/debian wheezy main' ЛИБО (т.к. первый иногда тормозит из-за большой нагрузки) add-apt-repository 'deb http://mirror.timeweb.ru/mariadb/repo/10.0/debian wheezy main' Обновляем список приложений: apt-get update И тут, по идее, мы должны начать установку базы данных apt-get install mariadb-server , но получаем ошибку: 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. Нам мешает mysql, который поставил веста. Варварским способом избавимся от него (иногда эту команду нужно ввести дважды): 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 Видим - PASSWORD='jbknjknkj34'. Запоминаем, может пригодиться при обновлениях. Теперь пофиксим exim4. Дело в том, что вместе с mariadb ставится exim4-light, в то время как нам нужен exim4-heavy. apt-get remove exim4-daemon-light Ставим phpmyadmin для работы с базами данных: apt-get install phpmyadmin Проверяем: http://128.199.37.177/phpmyadmin/ Работает J Из под рута ставим права 777 на папку /var/lib/phpmyadmin/tmp Тюним php.ini nano /etc/php5/apache2/php.ini Находим и меняем параметры на эти (или на какие вам захочется): max_execution_time = 180 upload_max_filesize = 64M post_max_size = 64M Сохраняем CTRL+O, энтер, CTRL+X Перезапускаем апач: 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> И приводим его к этому виду (эти параметры идеально подходят для vps с 512mb памяти. если памяти больше – можно и нужно ставить значения выше): <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 Готово. Тюним конфиг nginx. Мой nginx.conf решает следующие проблемы - в соответствии с рекомендациями Google Insights кеширует статику в браузере и сжимает всё что нужно сжимать. nano /etc/nginx/nginx.conf Заменяем этим: # Server globals user www-data; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Worker config events { worker_connections 1024; use epoll; } http { # Main settings sendfile on; tcp_nopush on; tcp_nodelay on; client_header_timeout 1m; client_body_timeout 1m; client_header_buffer_size 2k; client_body_buffer_size 256k; client_max_body_size 100m; large_client_header_buffers 4 8k; send_timeout 30; keepalive_timeout 60 60; reset_timedout_connection on; server_tokens off; server_name_in_redirect off; server_names_hash_max_size 512; server_names_hash_bucket_size 512; # Log format log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format bytes '$body_bytes_sent'; #access_log /var/log/nginx/access.log main; access_log off; # Mime settings include /etc/nginx/mime.types; default_type application/octet-stream; # Compression gzip on; gzip_comp_level 9; gzip_min_length 1000; gzip_buffers 8 64k; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; gzip_proxied any; # Proxy settings proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_header Set-Cookie; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; # Cloudflare https://www.cloudflare.com/ips set_real_ip_from 199.27.128.0/21; set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/12; set_real_ip_from 172.64.0.0/13; #set_real_ip_from 2400:cb00::/32; #set_real_ip_from 2606:4700::/32; #set_real_ip_from 2803:f800::/32; #set_real_ip_from 2405:b500::/32; #set_real_ip_from 2405:8100::/32; real_ip_header CF-Connecting-IP; # SSL PCI Compliance ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; # Error pages error_page 403 /error/403.html; error_page 404 /error/404.html; error_page 502 503 504 /error/50x.html; # Cache proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=512m; proxy_cache_key "$host$request_uri $cookie_user"; proxy_temp_path /var/cache/nginx/temp; proxy_ignore_headers Expires Cache-Control; proxy_cache_use_stale error timeout invalid_header http_502; proxy_cache_valid any 3d; map $http_cookie $no_cache { default 0; ~SESS 1; ~wordpress_logged_in 1; } # Wildcard include include /etc/nginx/conf.d/*.conf; server { location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { expires max; } } } Приступаем к добавлению домена. Предполагается, что у вас стоит хороший днс, позволяющий управлять зоной (а вы умеете это делать). Допустим, у нас есть домен test.prcy. В управлении доменной зоной нам нужно задать для A записи IP вашего сервера. Допустим у сервера IP 128.199.37.177. Наши записи должны принять следующий вид: Добавляем домен в панель управления сервером. https://128.199.37.177:8083/list/web/ (вкладка web), жмем «добавить домен» Выставляем параметры как указаны на скриншоте: http://habrastorage.org/files/157/53b/0ab/15753b0abbf44ba38e0ae158708458c8.png Почему я отключил поддержку почты? Потому что это лишняя и приличная нагрузка на сервер. В качестве почты для домена идеально подходит pdd.yandex.ru. Не поленитесь, настройте. Создаем базу данных: https://128.199.37.177:8083/list/db/ (вкладка DB), жмем «Добавить БД» http://habrastorage.org/files/802/e8b/9f9/802e8b9f9ee543cbbeb2d07158f45058.png Конектимся по фтп по данным, которые мы указывали когда добавляли домен. Наш сайт, который будет открываться по домену test.prcy, должен будет лежать в папке public_html Давайте удалим содержимое public_html и закачаем туда какой-нить тестовый архив (zip). Пока архив закачивается, возвращаемся к SSH и отключаемся: logout Логинимся в SSH по новой, но уже не от root пользователя, а от admin (это принципиально важно). Пароль тот же что и от панели vesta. Ставим утилиту, что бы распаковать наш архив. sudo apt-get install unzip Когда спросит пароль, вводим пароль от панели vesta. Переходим в директорию, куда закинули архив: cd web/test.prcy/public_html Распаковываем архив: unzip yoo_peak_demo_package_j33.zip Проверяем: http://habrastorage.org/files/292/bf6/7f3/292bf67f371c43fd93e18792ef205d09.png Заканчиваем установку сайта и видим, что всё работает: Сайт готов к использованию и выдержит приличную нагрузку (при конфигах, указанных выше, сайт держит нажатую F5 в течении 5 минут и спокойно открывается. Вот таким нехитрым способом мы поставили и запустили сервер, настроили его и добавили для примера один сайт. Не забываем, что вся работа с сайтами должна вестись от логина admin. А вся работа по настройке сервера от логина root. Иначе у вас возникнут проблемы с правами доступа и невозможностью записи файлов силами CMS. Гайд писался параллельно с настройкой vps, каждая команда проверена и работает. Именно этого гайда мне не хватало в свое время. Надеюсь кому-то это будет полезно. bugfix #1. Если после рестарта сервера не стартует nginx: из под рута открываем: nano /etc/sysctl.conf Вставляем в самый низ net.ipv4.ip_nonlocal_bind = 1 Выполняем команду sysctl -p /etc/sysctl.conf Перезагружаем сервер reboot