BitrixEnv — PHP Fatal error: Allowed memory size

Один из разделов сайта на Битриксе, развёрнутом в не открывается, в журнал httpd записываются ошибки:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 84 bytes) in /home/bitrix/site.ru/bitrix/templates/site.ru/components/bitrix/catalog.section/catalog/result_modifier.php on line 467

Так как для выполнения кода, PHP интерпретатору недостаточно памяти, то необходимо увеличить значение директивы memory_limit в файле /etc/php.d/bitrixenv.ini, после чего, перезагрузить вэб-сервис:

service httpd restart

FreeNAS — не даёт добавить задание Rsync

При создании задания Rsync в FreeNAS, UI отображает ошибку, несмотря на присутствие публичного ключа:
Для использования rsync через SSH вам потребуется пользователь с публичным ключом (DSA/ECDSA/RSA) установленным в домашнем каталоге.
In order to use rsync over SSH you need a user with a public key (DSA/DSA/RSA) set up in home dir.

Код UI проверяет имя ключа по шаблону id_[edr]*.* вопреки директивы по умолчанию AuthorizedKeysFile .ssh/authorized_keys файла конфигурации SSH (в соответствии с которой, также создаётся и файл ключа, при заполнении поля Открытый Ключ SSH в карточке пользователя, посредством UI). Таким образом, чтобы UI заметил присутствие ключа и дал создать задание, необходимо переименовать файл ключа, например, в id_dsa.pub Наличие же файла authorized_keys необязательно, хотя без него, в карточке пользователя, поле Открытый Ключ SSH будет пустым.

Разделение доступа в BitrixVM

В Битрикс веб-окружении установлено несколько сайтов. Требуется предоставить сотрудникам раздельный доступ к ним.
В конфигурации, которую поддерживает 1С-Битрикс, вэб-сервер запускается из под пользователя bitrix, который входит в одноименную группу. Таким образом, директории всех сайтов принадлежат пользователю bitrix.

Для, чтобы предоставить разработчикам раздельный доступ к сайтам по FTP, необходимо:

  1. установить FTP сервер

  2. yum install proftpd


  3. добавить демона в автозагрузку

  4. chkconfig proftpd on


  5. запустить сервис

  6. service proftpd start


  7. создать пользователя с идентификаторами пользователя и группы bitrix для нужной директории (сайта)

  8. adduser имя_пользователя -u`id -u bitrix` -g`id -g bitrix` -o -d /home/bitrix/www/


  9. установить пароль пользователю

  10. passwd имя_пользователя


P.S.: не забудьте открыть 21 порт для доступа по FTP.

mount error(121): Remote I/O error

В Linux, при попытке монтирования по локальной сети Windows-папки с общим доступом, отображается следующая ошибка:
CIFS VFS: cifs_mount failed w/return code = -121
mount error(121): Remote I/O error
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Проблема находится на стороне Windows и решается путём правки значений реестра:
записи HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache устанавливаем значение 1;
записи HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size устанавливаем значение 3.

Proxmox — расширение хранилища

При развёртывании в виртуальной машине Proxmox VE (на чистую машину), в процессе использования, место хранилища под KVM закончилось. Потребовалось увеличить выделенное место жесткого диска для виртуальной машины с Proxmox. После увеличения выделенного места, путём изменения настроек виртуальной машины, встаёт необходимость произвести расширение файловой системы, используемой Proxmox. При попытке выполнить задачу, у пользователей могут возникать следующие ошибки:

  • The util fdisk doesn’t support GPT. Use GNU Parted
  • resize2fs: Device or resource busy while trying to open /dev/sda3
  • Insufficient free space: 1 extents needed, but only 0 available with 32.83g available.


Порядок выполнения действий:

  1. Остановим виртуальные машины: qm shutdown all
  2. Размонтируем логический том хранилища KVM: umount /var/lib/vz
  3. Запустим редактор разделов для жесткого диска sda: parted /dev/sda
  4. Командой resizepart 3 увеличим размер раздела lvm.
  5. Увеличим размер физического диска LVM: pvresize /dev/sda3.
  6. Увеличим размер логического диска LVM: lvextend /dev/pve/data -l +100%FREE
  7. Увеличим размер файловой системы логического диска: resize2fs /dev/pve/data
  8. Проверим и исправим файловую систему: fsck -f /dev/mapper/pve-data
  9. Монтируем том хранилища: mount /var/lib/vz
  10. Перезагрузим систему: reboot

При нестандартных настройках разделов диска:

  • Список дисков и их разделов выводится командой fdisk -l.
  • Номера разделов в программе parted выводятся командой print. Нас интересует номер раздела lvm.
  • Список физических дисков LVM выводится командой pvdisplay.
  • Список логических дисков LVM выводится командой lvdisplay.
  • Список файловых систем выводится командой df -h.

Exim4/Postfix: Network is unreachable

В журнале Exim4 или Postfix периодически появляются записи вида: aspmx.l.google.com [2a00:1450:4010:c08::1b] Network is unreachable.
Используемый MTA (Exim4 или Postfix) пытается подключиться к SMTP Google по протоколу IPv6, но этого не удаётся сделать, по причине отсутствия поддержки IPv6 в используемой сети или конфигурации сетевых интерфейсов.
Для решения проблемы, требуется отключить использование протокола IP 6 версии.
Для Exim4, конфигурационном файле /etc/exim4/exim4.conf.template, в начале файла, перед секцией begin acl необходимо вписать:

disable_ipv6 = true

После чего, необходимо перезагрузить Exim4 командой /etc/init.d/exim4 restart.
Для Postfix, конфигурационном файле /etc/postfix/main.cf, необходимо отредактировать директиву:

inet_protocols = ipv4

После чего, необходимо перезагрузить Postfix командой /etc/init.d/postfix restart.

P.S.: Если Вы всё таки решите задействовать протокол IPv6, не забудьте указать свой IPv6 адрес в DNS записях, чтобы не возникло проблемы с прохождением проверки SPF-записи.

Вэб-киоск на Линуксе

Имеющийся компьютер с ОС Linux Mint Mate 64-bit требуется настроить для использования в качестве терминала с ограниченным доступом, а именно, лишь к сайту компании.
В качестве простого решения можно использовать расширение R-kiosk для обозревателя Mozilla Firefox, установленного в системе по умолчанию.
Перед установкой расширения, следует создать нового пользователя с минимальными правами (Меню → Администрирование → Пользователи и группы), отключив для него запрос пароля при входе. Можно установить для этого пользователя автоматический вход в систему (Меню → Администрирование → Окно входа в систему → Автоматический вход). Далее необходимо зайти в систему под этим пользователем, настроить домашнюю страницу обозревателя (сайт для пользователей киоска) и только затем установить расширение. Потом следует добавить Firefox в автозагрузку: перейти в Меню → Параметры → Запускаемые приложения и добавить программу, с командой /usr/bin/firefox и произвольным именем.
Теперь при входе в систему созданного пользователя, будет запускаться Firefox, в полноэкранном режиме с блокировкой всех меню, навигационной панели, меню правой кнопки мыши, горячих клавиш. Однако, закрыть обозреватель по прежнему можно, сочетанием клавиш Ctrl+F4 и Alt+F4, а злощастная кнопка Win открывает панель задач, хотя не каждый пользователь терминала будет это проверять. При желании, эти сочетания клавиш можно отключить или изменить на нестандартные, в конфигурационных файлах Linux.
Следующие настройки расширения можно изменить:
user_pref(«rkiosk.navbar», true);
включает навигационную панель,
user_pref(«print.always_print_silent»,true);
user_pref(«print.show_print_progress»,false);

отключают диалог при печати.
Данные настройки, при необходимости, следует прописать в файл user.js, который нужно создать в директории профиля пользователя (если в обозревателе не был создан профиль пользователя, то путь по умолчанию /home/user/.mozilla/firefox/mwad0hks.default).
Если потребуется запустить обозреватель в обычном режиме, то необходимо использовать ключ safe-mode. Сделать это можно, набрав команду в окне терминала (Меню → Терминал):

/usr/bin/firefox -safe-mode

gem: unable to convert U+00A9 from UTF-8 to US-ASCII

При использовании команды gem install, отображаются сообщения о пропуске установки файлов Ruby из-за ошибки конвертации символов из таблицы UTF-8 в US-ASCII.
Вероятнее всего, в системе не была выставлена подходящая кодировка. В этом случае решить проблему можно, выбрав в качестве используемой кодировки ru_RU.UTF-8, используя команду:

dpkg-reconfigure locales

Exim4 — Не доходит отправляемая почта

В журнале Exim4 /var/log/exim4/mainlog постоянно пополняются записи:

Our system has detected an unusual rate of\n421-4.7.0 unsolicited mail originating from your IP address. To protect our\n421-4.7.0 users from spam, mail sent from your IP address has been temporarily\n421-4.7.0 rate limited.

Сие говорит о том, что сервер-получатель отвергает корреспонденцию из-за подозрения на спам (слишком частые отправления писем). Следует отследить в журнале почтовые адреса, от имени которых отправляются письма. Если почтовые адреса отправителей Вам не известны, то скорее всего вредоносный код генерирует рассылку, от имени несуществующих почтовых адресов, подключенных доменов.
Следует посмотреть объем неотправленных сообщений в директории /var/spool/exim4/input. Если сообщения содержат спам и их объём велик — следует выявить вредоносный код, генерирующий эти письма.
К примеру, если сервер используется для работы сайтов, написанных на PHP, то для обнаружения вредоносного кода следует изучить журнал /var/log/php-mail.log. По количеству генерируемых сообщений, обнаружить вредный сценарий довольно просто.
После устранения источника проблемы, следует остановить почтовый сервер командой killall -9 exim4 (команда service exim4 stop вероятнее всего не прервёт процесс отправки замороженных почтовых сообщений). И затем очистить директорию со скопившейся корреспонденцией, командой find /var/spool/exim4/input -delete. После чего, почтовый сервер можно запустить вновь: service exim4 start.
Для пресечения подобной проблемы в будущем, можно ограничить список адресов, корреспонденция с которых будет отправляться сервером Exim4.

Possible missing firmware

Ошибка при установке пакетов:

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169

Решением является установка пакета firmware-realtek.