Rose debug info
---------------

Блог об администрировании Linux, BSD и не только.

Позднее Ctrl + ↑

Ошибка добавления ptr записи в VestaCP

Error: PTR record domain.net should be a fully qualified domain name (FQDN)

В файле /usr/local/vesta/func/domain.sh находим

if [ $t = 'CNAME' ]; then

И перед этим вписываем

if [ $t = 'PTR' ]; then
        tree_length=2
fi

Canon LBP-810 драйвер для современных ОС

Принтер древний, современными ОСями не поддерживается. Соберем драйвер 2004 года из сорцев.
Сам драйвер capt-0.1.tar.gz
Распаковываем

# tar xzf capt-0.1.tar.gz

Открываем Makefile любым текстовым редактором и в опции gcc добавляем -std=gnu89
Далее

# make
# make install
# service cups restart

Далее добавляем принтер в систему через GUI. Драйвер LBP-810 появится там в списке.
В свойствах принтера обязательно меняем URI принтера на

file:/dev/null

На этом все.
Использованы материалы тыц и тыц

Установка memcache и memcached на php установленый из исходников

В /opt/php73/ у нас собран php. Нужно в него добавить memcache и memcached
Скачиваем сорцы из pecl

/opt/php73/bin/pecl download memcached
/opt/php73/bin/pecl download memcache

Установка memcached
Для установки memcached нам потребуется libmemcached. Ствим из сорцев в отдельный каталог

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
 tar -xzf libmemcached-1.0.18.tar.gz 
cd libmemcached-1.0.18
./configure --prefix=/opt/libmemcached
make
make install

Распаковываем сорцы и собираем модуль memcached

tar zxvf memcached-3.1.5.tgz
cd memcached-3.1.5
./configure --with-libmemcached-dir=/opt/libmemcached --with-php-config=/opt/php73/bin/php-config
make

Если все отработало без ошибок, то в каталоге modules появится memcached.so. Копируем его и добавляем в php.ini

extension = /opt/php73/lib/php/extensions/no-debug-non-zts-20180731/memcached.so

Установка memcache
Распаковываем и собираем

tar -xzf memcache-4.0.5.2.tgz 
cd memcache-4.0.5.2
/opt/php73/bin/phpize
./configure --with-php-config=/opt/php73/bin/php-config
make

Если все отработало без ошибок, то в каталоге modules появится memcache.so. Копируем его и добавляем в php.ini

extension = /opt/php73/lib/php/extensions/no-debug-non-zts-20180731/memcache.so

P.S Если получаем ошибку Autoconf version 2.68 or higher is required, то соберем ещё autoconf

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar xzf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/opt/autoconf
make
make install

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

mv /usr/bin/autoconf /usr/bin/autoconf.bak
ln -s /opt/autoconf/bin/autoconf /usr/bin/autoconf
mv /usr/bin/autom4te /usr/bin/autom4te.bak
ln -s /opt/autoconf/bin/autom4te /usr/bin/autom4te

Виртуалки в РФ

Пол планеты сидит на карантине, из-за этого возросла нагрузка на магистральные узлы связи, поэтому сейчас правильным решением будет размещать свои проекты на территории РФ.
Виртуальные серверы в РФ по выгодным ценам и с быстрой активацией можно приобрести по этой ссылке.
На них также доступен мой шаблон vestacp-multiphp, в котором доступен выбор версии php от 5.3 до 7.3. Указывайте в комментариях к заказу vestacp-multiphp.

Скидка на первый платеж по промокоду covid-19  — 50%!!!!! на виртуальные и выделенные серверы в России.

P.S. Сидите дома. Не болейте. ^^

Сборка php 7 на Centos 6

Пример configure

./configure  --prefix=/opt/php73 --with-config-file-path=/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql --with-pdo-sqlite --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --enable-shmop --enable-soap --enable-mbstring --enable-soap --enable-sockets --enable-wddx --enable-exif --enable-ftp --enable-pdo --enable-pcntl --enable-mbregex --with-gettext --with-iconv --with-mhash --with-gd --with-curl --with-libxml-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib --without-libzip --enable-mbstring --with-xsl --with-openssl  --enable-ftp --enable-exif --enable-cgi --enable-zip --with-readline --enable-simplexml --enable-intl --with-pcre-regex=/opt/pcre2 --with-config-file-scan-dir=/opt/php73/etc

Для его успешного выполнения ставим devel пакеты на основе получаемых ошибок.
Pcre2 собираем из исходников, т.к нужной версии в репах centos 6 нет.

# wget ftp://ftp.pcre.org/pub/pcre/pcre2-10.30.tar.gz
# tar -xf pcre2-10.30.tar.gz
# cd pcre2-10.30
# ./configure --prefix=/opt/pcre2                       \
            --docdir=/usr/share/doc/pcre2-10.30 \
            --enable-unicode                    \
            --enable-pcre2-16                   \
            --enable-pcre2-32                   \
            --enable-pcre2grep-libz             \
            --enable-pcre2grep-libbz2           \
            --enable-pcre2test-libreadline      \
            --disable-static    
# make
# make install

После успешного configure для php делаем make и make install

UPD: Если у вас в wordpress не отправляется почта через контактную форму функцией mail(), то pcre2 качаем версии 10.33.

Мультиверсионность php c VestaCP на выделенных серверах и VDS

На наших выделенных серверах и VDS теперь доступен шаблон с VestaCP и версиями php от 5.3 до 7.3. Установка через техподдержку.
Проходите по ссылке или кликайте на баннер вверху страницы, в комментариях к заказу напишите что вам нужен шаблон с vestacp-multiphp.

Добавление squashfs live образа в PXE

Нужно примонтировать live iso образ на сервере. Найти в нем файлы initrd, vmlinuz и squashfs. Скопировать их в каталог PXE и прописать в pxelinux.cfg/default. В debian-10-live у меня получилось вот так.

label debian-live
  menu label debian-live
  kernel http://192.168.0.1/images/live/vmlinuz-4.19.0-5-amd64
  append initrd=http://192.168.0.1/images/live/initrd.img-4.19.0-5-amd64 boot=live fetch=http://192.168.0.1/images/live/filesystem.squashfs root=/dev/ram0

PXE сервер на FreeBSD

В конфиг dnsmasq добавляем

dhcp-option-force=66,192.168.0.1   # ip сервера
dhcp-option-force=67,gpxelinux.0   # загрузчик

Перезапускаем dnsmasq

service dnsmasq restart

Создаем каталог для pxe

mkdir /usr/local/pxe
mkdir /usr/local/pxe/pxelinux.cfg

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

pkg install tftp-hpa

В /etc/inetd.conf добавляем

tftp  dgram  udp  wait  root  /usr/local/libexec/in.tftpd  in.tftpd -p -s /usr/local/pxe

Вписываем

echo 'inetd_enable="YES"' >> /etc/rc.conf

Запускаем inetd

/etc/rc.d/inetd start

Скачиваем и распаковываем syslinux

fetch http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.gz
tar -xf syslinux-4.05.tar.gz

Копируем файлы

cd syslinux-4.05
cp gpxe/gpxelinux.0 /usr/local/pxe/
cp com32/menu/menu.c32 /usr/local/pxe/
cp com32/menu/vesamenu.c32 /usr/local/pxe/
cp com32/modules/reboot.c32 /usr/local/pxe/
cp com32/modules/chain.c32 /usr/local/pxe/
cp memdisk/memdisk /usr/local/pxe/

Образы будем грузить по http, т.к tftp очень медленный. Ставим nginx.

pkg install nginx

Создаем каталог с образами и симлинк на него в nginx

mkdir  /usr/local/pxe/images/
ln -s /usr/local/pxe/images/ /usr/local/www/nginx/images

Вписываем

echo 'nginx_enable="YES"' >> /etc/rc.conf

И стартуем

service nginx start

Заливаем наши образы в /usr/local/pxe/images/

В файле /usr/local/pxe/pxelinux.cfg/default создаем конфиг меню с нашими образами. У меня получился такой

ui menu.c32
menu title PXE Boot Menu

label boothdd
  menu label Boot from Hard Drive
  localboot 0
 
label memtest
  menu label memtest
  kernel memdisk
  initrd http://192.168.0.1/images/Memtest86-4.3.7.iso
  append iso raw

label mfsbsd
  menu label mfsbsd
  kernel memdisk
  initrd http://192.168.0.1/images/mfsbsd-12.0-RELEASE-amd64.iso
  append iso raw

label debian-10
  menu label debian-10
  kernel http://192.168.0.1/images/debian10/linux
  append vga=normal initrd=http://192.168.0.1/images/debian10/initrd.gz  --

label rescue
  menu label rescue
  kernel http://192.168.0.1/images/debian10/linux
  append vga=normal initrd=http://192.168.0.1/images/debian10/initrd.gz  rescue/enable=true --

linux и initrd.gz для установщика debian можно взять тут
Теперь можно пробовать грузится с PXE, если все сделали правильно то появится меню с выбором загружаемого образа.

Не стартует mysql в centos 6 после обновления.

После обновления mysql до 5.7 он не стартует с ошибкой

[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.

Добавляем в my.cnf в секцию [mysqld]

skip-grant-tables

С этим параметром стартуем mysql и делаем mysql_upgrade

service mysqld start
mysql_upgrade

Затем убираем skip-grant-tables из конфига и рестартим mysql

service mysql restart

Mysql должен запустится без ошибок

Ремонт китайского модуля управления светом

В 99% случаев неисправностей китайских модулей управления люстрами проблема кроется в потере емкости металлопленочного конденсатора 1-1,5 мкФ х 250-400в. Нужно заменить на аналогичный. В моем случае неисправность проявлялась следующим образом, из трех линий освещения адекватно работали только одновременно включенные две линии. При включении третьей линии пульт начинал реагировать только на расстоянии около 30 сантиметров от модуля. Виновник торжества на фото:

На алиэкспрессе и в магазинах множество модулей с примерно одинаковой начинкой. Сам модуль у меня такой:

С таким пультом:

Ранее Ctrl + ↓