Переход сервера на Debian Squeeze

Было:

# lsb_release -a
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.11 (wheezy)
Release:	7.11
Codename:	wheezy

Стало:

# lsb_release -a
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.6 (jessie)
Release:	8.6
Codename:	jessie

Избавился от Apache 2, остановившись на связке Nginx + php-fpm.

Попутно настроил использование протокола HTTPS.

[macOS] Обновление и очистка пакетов из MacPorts

Сборная команда, которая обновляет пакеты из MacPorts и делает очистку:

sudo port selfupdate && sudo port upgrade outdated && sudo port clean --all installed && sudo port -f uninstall inactive

Определение MD5-хэша в Windows

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

Команда:

certUtil -hashfile <путь до файла> [алгоритм]

Доступные алгоритмы: MD2, MD4, MD5, SHA1, SHA256, SHA384 и SHA512

Пример вычисления MD5-хэша у файла:

> certUtil -hashfile C:\picture.jpg MD5

Результат команды:

MD5 hash of fileC:\picture.jpg:
70 97 a3 dc 61 ec 8f 27 87 55 7e e4 a5 30 58 c9
CertUtil: -hashfile command completed successfully.

			
            

Миграция с MySQL на MariaDB

Перевел сервер БД с MySQL (был 5.5) на MariaDB (текущая версия – 10.1).

MariaDB – это форк MySQL, при чем форкнул ни кто иной, как Майкл Видениус, создатель MySQL. Причиной ответвления стала неопределенность лицензирования MySQL, после того, как она перешла под брозды сначала Sun Microsystems, а потом Oracle.

Отмечается, что MariaDB имеет значительные улучшения в коде, влияющих на общую производительность, поддержку новых движков хранения данных и многое другое. Но самое главное, что MariaDB обратно совместим с MySQL, поэтому в миграции нет никакой сложности.

Берем источники репозиториев с MariaDB от сюда и выполяем команду установки:

apt-get install mariadb-server

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
  shtool
Use 'apt-get autoremove' to remove it.
The following extra packages will be installed:
  galera-3 libjemalloc1 libmariadbclient18 libmysqlclient18 mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mariadb-server-10.1 mariadb-server-core-10.1
Suggested packages:
  mariadb-test netcat-openbsd socat tinyca
The following packages will be REMOVED:
  mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5
The following NEW packages will be installed:
  galera-3 libjemalloc1 libmariadbclient18 mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mariadb-server mariadb-server-10.1 mariadb-server-core-10.1
The following packages will be upgraded:
  libmysqlclient18
1 upgraded, 9 newly installed, 4 to remove and 1 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 74.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Отвечаем yes, после чего будет автоматически удалены зависивости MySQL и установлена MariaDB.

[Решение] MySQL server has gone away при импорте БД

На днях пришлось разворачивать на своем локальном компьютере веб-вервер, чтобы проверить в работе новую версию форуме IPS 4.x.

Проблема возникла, когда попытался импортировать дамп базы данных с рабочего форума, который в несжатом виде имеет размер в 315 МБ. Сначала пробовал через phpMyAdmin, но это гиблое дело. Потом пробовал напрямую через команду:

$ mysql --user=root --password="" --database=forum < /sql_damp.sql

Но получал все время ошибку:

ERROR 2006 (HY000) at line 2759: MySQL server has gone away

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

Решением стало увеличение значения max_allowed_packet в файле конфигурации my.cnf.

Установка htop 2 на Debian

10 февраля в свет вышел крупный релиз популярной утилиты мониторинга процессов для *nix – htop 2.0.

Чтобы установить вторую версию утилиты на Debian, необходимо скачать и собрать исходники:

apt-get remove --purge htop
apt-get aptitude update
apt-get install build-essential libncursesw5-dev
cd ~
wget -c http://hisham.hm/htop/releases/2.0.0/htop-2.0.0.tar.gz
tar -xzvf htop-2.0.0.tar.gz
cd htop-2.0.0
./configure
make
make install

Теперь скопируем скомпилированный бинарник в директорию /bin, чтобы можно было запускать утилиту лишь одной командой в терминале:

cp htop-2.0.0/htop /usr/bin/

[CMD] Как «убить» процесс через командную строку

Управлять процессами в Windows можно не только через UI («Менеджер задач»), но и через командную строку. К тому же командная строка предоставляет больше контроля над данными действиями.

Для вывода списка запущенных процессов нужно ввести команду:

tasklist

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          4 K
System                           4 Services                   0      4 124 K
smss.exe                       348 Services                   0        336 K
csrss.exe                      480 Services                   0      2 780 K
wininit.exe                    552 Services                   0        572 K
csrss.exe                      568 Console                    1      9 260 K
winlogon.exe                   616 Console                    1      2 736 K
services.exe                   640 Services                   0      9 284 K
lsass.exe                      660 Services                   0     16 464 K
explorer.exe                 27736 Console                    1    125 660 K

«Убить» процесс можно как по его имени, так и по PID:

>Taskkill /IM explorer.exe /F
>Taskkill /PID 27736 /F

Флаг /F указывает, что завершить процесс нужно принудительно. Без данного флага, в некоторых случаях, процесс может не «убиться» (к примеру, это актуально как раз для процесса explorer.exe).

[Хостинг] Переход на тариф EVO-6-SSD

Как уже писал ранее, начиная с 2010 года мои поекты использую вычислительные мощности хостинг-площадки FastVPS. Я полностью доволен данным поставщиком, который ни разу не допускал каких-либо факапов (или я их просто не замечал). Также несомненным плюсом в работе FastVPS явялется быстрая реакция на поступающие запросы от клиентов.

До апреля 2015 года я использовал тарифный план OVZ-6, за который я платил в среднем 1200 рублей в месяц. Потом решил изучить текущие тарифы, и обнаружил, что OVZ-* больше нет, а на их место пришли тарифы линейки EVO, при чем с бОльшими мощностями и по меньшей цене. То, что я сидел на старом тарифе, и при этом еще и переплачивал, весьма расстроило. Думаю, что FastVPS ни что не мешало разослать клиентам, использующих старые тарифы, сообщение о том, что можно перейти на новые тарифы по боле выгодной цене.

Связался со службой поддержки, попросил произвести переход на тариф OVZ-6-SSD (средняя цена в месяц в районе 900 рублей), а также написать конфигурацию текущего сервера, и ту, которая предлагается по интересующему меня тарифу. Ответ был следующим:

Ваш текущий тариф имеет следующие характеристики:
Процессор 2800 Mhz, дисковая система 16 GB, оперативная память 2400 MB, 1 IP-адрес, сумма входящего и исходящего трафика — 1500 GB

EVO-6-SSD выигрывает у него в объеме дискового пространства (40 Гб) и оперативной памяти (6 Гб).

Стоимость миграции Вашего сервера на новый тариф нашими силами составляет 9 евро.

Оплатив стоимость миграции, уже на следующий день мой сервер имел куда лучшие характеристики, чем ранее.

Выполнение git-pull из под www-data (через sudo)

Задача: дать git права на выполнение команд из под пользователя www-data

Решение: нужно добавить в конфигурационный файл /etc/sudoers следующие данные:

Defaults:git !authenticate
git ALL=(www-data) ALL

Теперь можно выполнять, к примеру, следующую команду (будет запускаться под www-data):

sudo -u www-data git pull origin master

Способ проверки, включено ли gzip сжатие на сайте

Проверить, использует ли сайт сжатие gzip, можно с помощью следующей команды:

curl -H "Accept-Encoding: gzip" -I https://bulkin.me

Выдаст:

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 02 May 2015 15:00:09 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 20
Connection: keep-alive
Cache-Control: max-age=2592000
Expires: Mon, 01 Jun 2015 15:00:08 GMT
Vary: User-Agent,Accept-Encoding
Content-Encoding: gzip