Поиск qemu-диска по всем нодам кластера
/usr/local/mgr5/sbin/mgrctl -m vmmgr vmhostnode | awk -F'=| ' {'print $6'} | grep -vE '10.7.22.1|10.7.22.7'| grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' | xargs -i ssh -i /usr/local/mgr5/etc/ssh_id_rsa root@{} "hostname && find /vm/ -name '*vm6504904*'"
strace подключиться к процессам пользователя
Когда httpd выполняет много юзеров, а нужно подключиться к конкректному
USER=opencod
while true; do a=$(ps aux | grep httpd | grep $USER | awk '{print $2}' | head -n 1); echo "DEBUG pid is "$a; if [ -z $a ] ; then echo -e 'no pid now\n'; else echo "pid is "$a; strace -p $a; fi; sleep 1; done
USER=opencod
while true; do a=$(ps aux | grep httpd | grep $USER | awk '{print $2}' | head -n 1); echo "DEBUG pid is "$a; if [ -z $a ] ; then echo -e 'no pid now\n'; else echo "pid is "$a; strace -p $a; fi; sleep 1; done
proftpd : bitrix vm : установка
yum install proftpd
echo 'PassivePorts 40900 40999' >> /etc/proftpd.conf
echo 'DefaultRoot ~' >> /etc/proftpd.conf
echo '/bin/date' >> /etc/shells
firewall-cmd --permanent --add-port=20-21/tcp
firewall-cmd --permanent --add-port=40900-40999/tcp
firewall-cmd --reload
echo 'PassivePorts 40900 40999' >> /etc/proftpd.conf
echo 'DefaultRoot ~' >> /etc/proftpd.conf
vipw
делаем копию пользователя bitrix с его uid, правим как надо имя (ftpuser и путь к домашней директории, шелл указываем /bin/date
passwd ftpuser
systemctl enable proftpd
systemctl start proftpd
firewall-cmd --permanent --add-port=20-21/tcp
firewall-cmd --permanent --add-port=40900-40999/tcp
firewall-cmd --reload
msmtp : bitrix gt : bitrix turbo : настройка отправка почты
Хостинг провайдер firstvds предоставляет скоростной хостинг для сайтов на bitrix на шаблоне своей разработки под названием bitrix-gt который основан на nginx + php-fpm
Как настроить отправку почты через внешний почтовый сервер (в данном случае яндекс) используя msmtp - гарантированной рабочий пример конфигурации
Сначала необходимо установить msmtp
# yum install msmtp
Далее необходимо указать его в php.ini вместо sendmail
# grep msmtp /etc/php.ini
sendmail_path = /usr/bin/msmtp -C /etc/msmtprc -a default -t -i
Файл конфигурации должен иметь права под которым работает php-fpm
# ls -l /etc/msmtprc
-rw------- 1 apache apache 191 июн 6 08:18 /etc/msmtprc
Содержимое файла
# cat /etc/msmtprc
account default
logfile /usr/share/httpd/msmtp.log
host smtp.yandex.ru
port 587
from example@yandex.ru
auth on
user example@yandex.ru
password *****
tls on
tls_starttls on
tls_certcheck off
Файл логов должен находиться в домашней директории пользователя apache (в вышележащей не работает) и иметь права для записи
# ls -l /usr/share/httpd/msmtp.log
-rw-r--r-- 1 apache apache 10018 июн 6 08:20 /usr/share/httpd/msmtp.log
В некоторых случаях при отправке почты через gmail может быть необходимо разрешить Небезопасные приложения в настройках аккаунта https://myaccount.google.com/lesssecureapps
Как настроить отправку почты через внешний почтовый сервер (в данном случае яндекс) используя msmtp - гарантированной рабочий пример конфигурации
Сначала необходимо установить msmtp
# yum install msmtp
Далее необходимо указать его в php.ini вместо sendmail
# grep msmtp /etc/php.ini
sendmail_path = /usr/bin/msmtp -C /etc/msmtprc -a default -t -i
Файл конфигурации должен иметь права под которым работает php-fpm
# ls -l /etc/msmtprc
-rw------- 1 apache apache 191 июн 6 08:18 /etc/msmtprc
Содержимое файла
# cat /etc/msmtprc
account default
logfile /usr/share/httpd/msmtp.log
host smtp.yandex.ru
port 587
from example@yandex.ru
auth on
user example@yandex.ru
password *****
tls on
tls_starttls on
tls_certcheck off
Файл логов должен находиться в домашней директории пользователя apache (в вышележащей не работает) и иметь права для записи
# ls -l /usr/share/httpd/msmtp.log
-rw-r--r-- 1 apache apache 10018 июн 6 08:20 /usr/share/httpd/msmtp.log
В некоторых случаях при отправке почты через gmail может быть необходимо разрешить Небезопасные приложения в настройках аккаунта https://myaccount.google.com/lesssecureapps
nginx php-fpm : чпу для joomla : rewrite
Так как .htaccess в php-fpm не работает, то достаточно одной строки чтобы работали ЧПУ ссылки в joomla:
try_files $uri $uri/ /index.php?args;
Пример виртуального хоста ниже:
server {
server_name example.ru www.example.ru;
charset UTF-8;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/example.ru/*.conf;
access_log /var/www/httpd-logs/example.ru.access.log;
error_log /var/www/httpd-logs/example.ru.error.log notice;
ssi on;
set $root_path /var/www/default_user/data/www/example.ru;
root $root_path;
listen 10.11.10.11:80;
location / {
try_files $uri $uri/ /index.php?args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.ru";
fastcgi_pass unix:/var/www/php-fpm/default_user.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
}
try_files $uri $uri/ /index.php?args;
Пример виртуального хоста ниже:
server {
server_name example.ru www.example.ru;
charset UTF-8;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/example.ru/*.conf;
access_log /var/www/httpd-logs/example.ru.access.log;
error_log /var/www/httpd-logs/example.ru.error.log notice;
ssi on;
set $root_path /var/www/default_user/data/www/example.ru;
root $root_path;
listen 10.11.10.11:80;
location / {
try_files $uri $uri/ /index.php?args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.ru";
fastcgi_pass unix:/var/www/php-fpm/default_user.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
}
ISPmanager : поменять статус обновления доменов на ведомых серверах имен (в DNSmanager)
Иногда бывает ситуация, что ISPmanager передает домены в DNSmanager, но при этом в Доменные имена рисует треугольник с ошибкой - Состояние Не синхронизировано
Убрать этот статус и выставить его как синхронизированно можно удалив файл в каталоге /usr/local/mgr5/var/slavestatus/
# rm -rf /usr/local/mgr5/var/slavestatus/*
Убрать этот статус и выставить его как синхронизированно можно удалив файл в каталоге /usr/local/mgr5/var/slavestatus/
# rm -rf /usr/local/mgr5/var/slavestatus/*
bitrix циклический редирект на самого себя (отключить проактивную защиту)
Иногда после переноса сайта на bitrix на php-fpm (например, на шаблон Bitrix GT) возникает у сайта циклический редирект на самого себя
Лечится отключением проактивной защиты в базе так как не срабатывает список разрешенных доменных имен
MariaDB [bitrix0]> DELETE FROM b_module WHERE `ID`='security' ;
Query OK, 1 row affected (0.001 sec)
Был случай что данный метод не помог, сайт все равно выдавал forbidden, отключил как
# diff /home/bitrix/www/bitrix/modules/main/include.php.bak /home/bitrix/www/bitrix/modules/main/include.php
290,291c290,291
< foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
< ExecuteModuleEventEx($arEvent);
---
> //foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
> // ExecuteModuleEventEx($arEvent);
Лечится отключением проактивной защиты в базе так как не срабатывает список разрешенных доменных имен
MariaDB [bitrix0]> DELETE FROM b_module WHERE `ID`='security' ;
Query OK, 1 row affected (0.001 sec)
Был случай что данный метод не помог, сайт все равно выдавал forbidden, отключил как
# diff /home/bitrix/www/bitrix/modules/main/include.php.bak /home/bitrix/www/bitrix/modules/main/include.php
290,291c290,291
< foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
< ExecuteModuleEventEx($arEvent);
---
> //foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
> // ExecuteModuleEventEx($arEvent);
MySQL : ошибка репликации : Last_SQL_Errno: 1396
Настроено по документации ruhighload.com репликация mariadb 10.3
На исходном сервере запущено в docker, на slave - на localhost
https://ruhighload.com/%D0%9A%D0%B0%D0%BA+%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C+mysql+master-slave+%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8E%3F
Репликация у клиента остановилась с ошибкой:
Last_SQL_Errno: 1396
Last_SQL_Error: Error 'Operation ALTER USER failed for 'username'@'172.17.0.1'' on query. Default database: ''. Query: 'ALTER USER 'username'@'172.17.0.1' IDENTIFIED BY 'passwd''
Решение: прописать на slave в [mysqld]
slave-skip-errors = 1396
Причина: нет такого пользователя на slave, данный запрос вручную также не проходил
Пользователь репликации не может управлять пользователями БД
На исходном сервере запущено в docker, на slave - на localhost
https://ruhighload.com/%D0%9A%D0%B0%D0%BA+%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C+mysql+master-slave+%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8E%3F
Репликация у клиента остановилась с ошибкой:
Last_SQL_Errno: 1396
Last_SQL_Error: Error 'Operation ALTER USER failed for 'username'@'172.17.0.1'' on query. Default database: ''. Query: 'ALTER USER 'username'@'172.17.0.1' IDENTIFIED BY 'passwd''
Решение: прописать на slave в [mysqld]
slave-skip-errors = 1396
Причина: нет такого пользователя на slave, данный запрос вручную также не проходил
Пользователь репликации не может управлять пользователями БД
PHP geoip и browcap для альтернативной версии PHP 7.1 ISPmanager CentOS 7
yum groupinstall "Development Tools"
yum install GeoIP
yum install GeoIP-data
yum install GeoIP-devel
/opt/php71/bin/pecl install geoip-1.1.1
echo 'extension=geoip.so' > /opt/php71/etc/php.d/geoip.ini
mkdir /usr/local/browcap/
wget http://browscap.org/stream?q=PHP_BrowsCapINI -O /usr/local/browcap/php_browscap.ini
tail -3 /opt/php71/etc/php.ini
[browscap]
; http://php.net/browscap
browscap = /usr/local/browcap/php_browscap.ini
yum install GeoIP
yum install GeoIP-data
yum install GeoIP-devel
/opt/php71/bin/pecl install geoip-1.1.1
echo 'extension=geoip.so' > /opt/php71/etc/php.d/geoip.ini
mkdir /usr/local/browcap/
wget http://browscap.org/stream?q=PHP_BrowsCapINI -O /usr/local/browcap/php_browscap.ini
tail -3 /opt/php71/etc/php.ini
[browscap]
; http://php.net/browscap
browscap = /usr/local/browcap/php_browscap.ini
Ускоряем производительность в nginx proxy
При включении nginx в качестве front-end proxy проседают "попугаи". Это в целом естественно, так как есть задержка на передачу пакетов между nginx <-> apache, но можно несколько ускорить и выиграть до 15%
# vim /etc/nginx/nginx.conf
worker_processes 3; #Numcores -1
events {
...
use epoll;
}
http {
...
sendfile on;
tcp_nopush on;
tcp_nodelay on;
...
}
# vim /etc/nginx/vhosts/www-root/example.com
location @fallback {
....
proxy_buffering off;
...
}
# vim /etc/nginx/nginx.conf
worker_processes 3; #Numcores -1
events {
...
use epoll;
}
http {
...
sendfile on;
tcp_nopush on;
tcp_nodelay on;
...
}
# vim /etc/nginx/vhosts/www-root/example.com
location @fallback {
....
proxy_buffering off;
...
}
Подписаться на:
Сообщения (Atom)