Создание субдомена в ISPConfig

17.11.2017 17:35, admin - Системное администрирование, ISPConfig

В ISPConfig субдомены создаются достаточно просто, но, по некоторым причинам, именно эта операция вызывает часто непонимание. Часто это происходит потому, что пользователь сам не понимает, что именно он хочет получить в результате. Или наоборот, имея опыт работы с другими системами управления хостингом, ожидают получить такой же, как и там, результат. На самом же деле основных вариантов создания субдоменов в ISPConfig есть два:

  • субдомен будет адресован в некоторую папку внутри корневого каталога основного домена;
  • субдомен будет адресован в самостоятельный корневой каталог, созданный специально для него и независимый от основного домена.

Какой вариант выбрать зависит от решаемой задачи.

Создание субдомена в ISPConfig

Поддержка dbase для php

05.10.2017 21:32, admin - CentOS

Несмотря на то, что базы данных в формате dBase (dbf) редко применяются в настоящее время, иногда доступ средствами php к таким базам все же требуется. В стандартных сборках php нужный модуль отсутствует, поэтому нужно собрать его самостоятельно из исходных файлов, которые можно найти  в библиотеке PECL (PHP Extension Community Library): https://pecl.php.net/package/dbase. Описание функций, реализованных в данной библиотеке, доступно на официальном сайте: http://php.net/manual/ru/ref.dbase.php

Последовательность действий:

  • Для php 7 загружаем последнюю доступную версию (на данный момент это версия 7.0.0beta1):

    svn checkout http://svn.php.net/repository/pecl/dbase/trunk/
    cd ./trunk

    Для php 5 нужно указать конкретную версию модуля:

    wget https://pecl.php.net/get/dbase-5.1.1.tgz
    tar -xvf dbase-5.1.1.tgz
    cd dbase-5.1.1

  • phpize
  • ./configure
  • make
  • cp ./modules/dbase.so /usr/lib64/php/modules/dbase.so
  • echo 'extension=dbase.so' > /etc/php.d/dbase.ini
  • systemctl restart httpd
    systemctl restart php-fpm

Описанный метод можно применить для любого дистрибутива, нужно только, при необходимости, изменить каталоги для размещения dbase.so и dbase.ini. В некоторых дистрибутивах модуль подключается непосредственно в файле конфигурации php.ini.


Определение текущего планировщика задач CPU

03.10.2017 14:34, admin - Операционные системы, Archlinux

Прямого способа, насколько мне известно, не существует. Однако, можно применить косвенный метод, например, мы можем проверить, используется ли планировщик MuQSS:

dmesg | grep -i muqss

результат:

[    0.346716] MuQSS locality CPU 0 to 1: 2
[    0.346717] MuQSS locality CPU 0 to 2: 2
[    0.346717] MuQSS locality CPU 0 to 3: 2
[    0.346718] MuQSS locality CPU 1 to 2: 2
[    0.346718] MuQSS locality CPU 1 to 3: 2
[    0.346718] MuQSS locality CPU 2 to 3: 2
[    0.847248] MuQSS CPU scheduler v0.161 by Con Kolivas.

В данном случае мы видим, что данный планировщик действительно используется.

Также могут быть применены такие планировщики, как CFS (в стандартном ядре linux) и BFS.

Кроме того, можно посмотреть параметры из текущей конфигурации ядра:

zcat /proc/config.gz | grep -i muqss

результат:

CONFIG_SCHED_MUQSS=y

Описанные методы проверены для Arch Linux, но могут не работать при использовании других дистрибутивов.


Замена планировщика ввода/вывода для SSD

10.09.2017 20:18, admin - Операционные системы, Archlinux

Использование стандартного планировщика ввода/вывода (в большинстве случаев это cfq) для невращающихся дисков (SSD) не имеет смысла, принимая во внимание скорость обмена информацией с такими устройствами. Целесообразнее в таких случаях использовать максимально простой планировщик noop, вносящий минимальную задержку. Для этого возможно использовать  udev правило, чтобы позволить системе выбрать планировщик на основе технических данных оборудования.
Пример udev правила для SSD и других невращающихся устройств может выглядеть таким образом:

# set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"

Помещаем данное правило в новый отдельный файл, например /etc/udev/rules.d/60-ssd-scheduler.rules).
Проверить какие диски будут использовать данное правило можно следующим образом:

for f in /sys/block/sd?/queue/rotational; do printf "$f "; cat $f; done

В результате получаем примерно следующее:

/sys/block/sda/queue/rotational 1
/sys/block/sdb/queue/rotational 0

Как видим, диск sdb определился как невращающийся, и это соответствует действительности.

Узнать текущий планировщик и возможные альтернативные варианты для каждого устройства можно так:

cat /sys/block/sdb/queue/scheduler

получаем:

[noop] deadline cfq bfq-sq

В квадратных скобках указан планировщик, используемый в данный момент.

Планировщик также может быть изменен во время работы системы. Команда выглядит так:

echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler

Например, для установки планировщика noop для диска sda, используйте:

echo noop > /sys/block/sda/queue/scheduler

Однако, действовать такая установка будет только до перезагрузки.


TypoScript синтаксис

20.08.2017 04:59, admin - CMS, TYPO3, Настройка, TypoScript

TypoScript обрабатывается очень просто - строка за строкой. Каждая строка обычно содержит три составляющие в соответствии с такой формулой:

[Путь к объекту] [Оператор] [Значение]

Например:

myObject.myProperty = 2

Путь к объекту

Путь к объекту (в нашем примере myObject.myProperty) похож на имя переменной в языке программирования. Это первый блок символов в строке, не содержащий пробелов, до одного из символов =<>{( или пробела при наличии. Точка (.) используется как разделитель объектов и свойств друг от друга, образуя иерархию. В примере у нас обозначен объект myObject со свойством myProperty. Для пути к объекту допустимо использовать только символы из набора A-Z,a-z,0-9,"-","_" и точку (.). (Ну то есть никаких русских букаф - прим. перев.)
Точки, используемые как часть имени, должны быть экранированы обратным слэшем (\).

Например:

my\.escaped\.key = test

В результате мы имеем объект my.escaped.key со значением test. В данном случае это не три составные части my, escaped и key, а единый объект. (Лучше такой вариант не применять, во избежание путаницы - прим. перев.)

TypoScript синтаксис