шаг :1
CentOS/RHEL 7.x:
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
шаг :2
Теперь вы можете установить PHP 5.6 с кешем кода операции, выполнив:
yum install php56w php56w-opcache
шаг :3
вы можете обновить PHP,:
yum install yum-plugin-replace
yum replace --enablerepo=webtatic-testing php-common --replace-with=php56w-common
Вы можете использовать socat
, который использует сокет домена Unix, когда вы указываете exec:
для команды. Это может быть сделано из дейтаграммы типа (type=2
), чтобы гарантировать, что входные данные для dd составляют только 256 байтов.
Например, для 2 байтов на дейтаграмму(-b2
)дополняется до 4(bs=4
):
$ echo abcdefx | socat -u -b2 - exec:'dd bs=4 conv=sync',type=2 | od -c
0000000 a b \0 \0 c d \0 \0 e f \0 \0 x \n \0 \0
Обратите внимание, указанное выше использование канала для stdin в socat
предназначено только для этого теста. Обычно вы должны предоставить входной файл непосредственно на стандартный ввод, чтобы у socat
не было проблем с чтением целых «блоков» желаемого -b
размера (, т.е.<file socat -u...
).
Вы можете использовать dd
для ввода пэда, а также использовать dd
для предоставления ввода пэду. Например, предположив размеры 2 и 4, а не 256 и 512 :
dd bs=2 count=1 |
dd bs=4 count=1 conv=sync
Первый dd
будет считывать только 2 байта один раз, а второй dd
будет считывать 2 байта, а затем дополнять его до 4 байтов один раз.
Вам нужно делать это только в цикле, несколько неэффективно, пока не будет больше данных (, когда dd
сообщит:0 bytes copied
). Например, для входной строки abcdefx:
#!/bin/bash
echo abcdefx | ( exec 3>&1
while log=$(dd bs=2 count=1 status=none |
dd bs=4 count=1 conv=sync 2>&1 1>&3)
! [[ "$log" =~ [^0-9]'0 bytes copied' ]]
do :
done ) | od -c
Результат:
0000000 a b \0 \0 c d \0 \0 e f \0 \0 x \n \0 \0