PHP — Fatal error: Call to undefined function mb_internal_encoding

В журнал вэб-сервера записываются ошибки Call to undefined function mb_internal_encoding.
Сие говорит о том, что: либо эта функция отключена директивой disable_functions (настройки в php.ini или в конфигурационном файле сайта, в директории pool.d), либо отключен модуль mbstring.so (закомментирован в файле 20-mbstring.ini в директории conf.d), либо модуль mbstring не установлен (пакет php*.*-mbstring).
Проверяем, установлен ли пакет:

dpkg —get-selections | grep mbstring

В случае отсутствия оного, ищем доступные версии:

apt-cache search mbstring

Выбираем версию, соответствующую версии установленного PHP интерпретатора, и устанавливаем её:

apt-get install php5.6-mbstring

Если же пакет уже был установлен, то правим конфигурационные файлы.

PHP — Fatal error: Call to undefined function utf8_encode

В журнал вэб-сервера записываются ошибки Call to undefined function utf8_encode.
Сие говорит о том, что: либо эта функция отключена директивой disable_functions (настройки в php.ini или в конфигурационном файле сайта, в директории pool.d), либо отключен модуль xml.so (закомментирован в файле 15-xml.ini в директории conf.d), либо модуль xml не установлен (пакет php*.*-xml).
Проверяем, установлен ли пакет с расширением для PHP:

dpkg —get-selections | grep xml

В случае отсутствия оного, ищем доступные версии:

apt-cache search xml

Выбираем версию, соответствующую версии установленного PHP интерпретатора, и устанавливаем её:

apt-get install php5.6-xml

Если же пакет уже был установлен, то правим конфигурационные файлы.

MySQL: unknown variable ‘bind-address=0.0.0.0′

При запуске сервиса, mysqld сообщает об ошибке: unknown variable ‘bind-address=0.0.0.0′.
Несмотря на присутствие в файле my.cnf секции [client-server], которая используется и сервером, директиву bind-address, необходимо задавать в файле /etc/mysql/mariadb.conf.d/50-server.cnf.

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