update
cat /etc/redhat-release
yum update
history
shopt
vi /etc/profile.d/history.sh

HISTTIMEFORMAT='%F %T '
HISTSIZE=100000
HISTFILESIZE=100000
HISTIGNORE='history:pwd:ls:ls *:ll:w:top:df *'      # 保存しないコマンド
PROMPT_COMMAND='history -a; history -c; history -r' # 履歴のリアルタイム反映
timezone
ll /etc/localtime
timedatectl
date

timedatectl set-timezone Asia/Tokyo
apache
systemctl status apache
systemctl status httpd

yum install epel-release
yum install https://repo.ius.io/ius-release-el7.rpm

vi /etc/yum.repos.d/epel.repo
vi /etc/yum.repos.d/ius.repo
enabled=0

yum install centos-logos.noarch mailcap openldap-devel expat-devel libdb-devel openssl perl
yum --enablerepo=epel install nghttp2 brotli
yum install --disablerepo=base,extras,updates --enablerepo=ius httpd httpd-devel mod_ssl
yum list | grep httpd
systemctl start httpd
systemctl enable httpd.service

httpd -h
httpd -S
httpd -t -D DUMP_VHOSTS
httpd -t -D DUMP_RUN_CFG
httpd -v
httpd -V
httpd -l
httpd -t -D DUMP_MODULES
httpd -M
httpd -t -D DUMP_INCLUDES

ll /var/log/httpd/
less /etc/logrotate.conf
less /etc/logrotate.d/httpd

mkdir /var/www/html/php
chmod 777 /var/www/html/php/
ps aux | grep httpd
systemctl reload httpd
systemctl status httpd
systemctl restart httpd
systemctl status httpd
php5.4
yum info php
rpm -q --changelog php | grep CVE | less

yum install php
php -v
php -r 'phpinfo();'  | less
php modules
php -m | less
yum list --enablerepo=epel | grep php | less
yum install php-bcmath
php -m | less

vi bcmath.php
php bcmath.php
vi gettext.php
php gettext.php
vi gettext.php
php /var/www/html/php/phpinfo.php | less
yum list --enablerepo=epel | grep php | less
yum install php-pgsql
vi postgresql.php
php postgresql.php
mkdir php
vi *.php php/.
mv *.php php/.

php -m | less
yum install --enablerepo=epel php-pecl-redis
php -m | less
vi redis.php
php redis.php
php -m | less
postgresql13
yum install postgresql
yum install centos-release-scl
yum repolist -q
yum repolist all | less
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
↓
enabled=0

yum repolist all | less
yum repolist -q
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql13-contrib
yum install postgresql13-devel

yum repolist -q
yum install --enablerepo=epel postgresql13-devel
systemctl enable postgresql-13.service
ll /var/lib/pgsql/13/data/
PGSETUP_INITDB_OPTIONS="-E UTF8 --no-locale" /usr/pgsql-13/bin/postgresql-13-setup initdb
ll /var/lib/pgsql/13/data/
su - postgres

vi /var/lib/pgsql/.pgsql_profile
↓
PATH=/usr/pgsql-13/bin:$PATH
export PATH

which psql
psql -v
psql --version
/usr/pgsql-13/bin/psql --version
ls /bin/psql
ll /bin/psql
ll /etc/alternatives/pgsql-psql
pg_ctl
source .bash_profile

psql -l
psql -U postgres
createuser --login --pwprompt centos
createdb --owner=centos centos
systemctl start postgresql-13
ps aux | grep master
psql -U postgres
psql -l
redis6.2
yum list | grep redis
yum list --enablerepo=epel | grep redis
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
vi /etc/yum.repos.d/remi.repo
vi /etc/yum.repos.d/remi-safe.repo
↓
enabled=0

yum info --enablerepo=epel,remi redis
yum install --enablerepo=epel,remi redis
less /usr/lib/systemd/system/redis.service
systemctl status redis
systemctl enable redis
systemctl status redis
ps aux | grep redis
systemctl start redis
ps aux | grep redis
redis-cli ping
systemctl status redis

less /etc/logrotate.d/redis
pure-ftpd1.0.43
yum list | grep pure | less
yum list --enablerepo=epel | grep pure | less
cat /etc/redhat-release
yum update centos-release
→アップデート無し

yum repolist all | less
yum info --enablerepo=C7.0.1406-base pure-ftpd
yum search --enablerepo=C7.0.1406-base ftp
yum search ftp | less
yum install pure-ftpd
yum repolist all | less
yum list --enablerepo=epel | grep pure

cd /usr/local/src/
yum install wget
wget https://download.pureftpd.org/pub/pure-ftpd/releases/obsolete/pure-ftpd-1.0.43.tar.gz
tar xvzf pure-ftpd-1.0.43.tar.gz
cd pure-ftpd-1.0.43
yum install gcc
yum install openssl-devel
./configure --with-everything --with-paranoidmsg --without-capabilities --with-virtualchroot --with-uploadscript --with-tls
make
make install

https://gist.githubusercontent.com/zrong/c9588a17ccb15e75fdf7/raw/a24c563bfe0cdc238952ce24f560a8de42631c0f/pure-ftpd.sh

systemctl status pure-ftpd
cp configuration-file/pure-ftpd.conf /etc/.
cp configuration-file/pure-config.py /usr/local/bin/.
vi /etc/init.d/pure-ftpd
chmod 755 /etc/init.d/pure-ftpd
chmod 755 /usr/local/bin/pure-config.py
/etc/init.d/pure-ftpd start
ps aux | grep pure
yum install ftp
ftp localhost
java1.8.0
yum list | grep java | less
yum install java-1.8.0-openjdk
java -version
node.js14
yum list --enablerepo=epel | grep node | less
curl -fsSL https://rpm.nodesource.com/setup_14.x | bash -
vi /etc/yum.repos.d/nodesource-el7.repo
yum list | grep node
yum list | grep node | less
yum install nodejs
node -v
npm install forever -g
vi index.js
node index.js
forever start index.js
ll
vi node.js
mkdir node.js
mv index.js node.js/.
環境
# cat /etc/system-release
Amazon Linux release 2 (Karoo)
# uname -r
4.14.203-156.332.amzn2.x86_64
gst-rtsp-serverのインストール
$ git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server
$ cd gst-rtsp-server/
$ git checkout 1.4
$ ./autogen.sh
$ make
$ sudo make install
autogen.sh 実行に必要だったパッケージ
$ sudo yum install git
$ sudo yum install libtool
$ sudo yum install gettext-devel
$ sudo yum install gtk-doc
$ sudo yum install gcc-c++
$ sudo yum install python3
$ sudo python3 -m pip install meson
$ sudo python3 -m pip install ninja
$ sudo yum install gstreamer1
$ sudo yum install gstreamer1-devel
$ sudo yum install gstreamer1-plugins-base
$ sudo yum install gstreamer1-plugins-base-devel
# 後に下記インストール
$ sudo yum install gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-devel-docs gstreamer1-plugins-base-devel gstreamer1-plugins-base-devel-docs gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer1-plugins-ugly-devel-docs  gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras
# cd /usr/local/src/
# wget http://ftp.gnome.org/pub/gnome/sources/glib/2.64/glib-2.64.4.tar.xz
# tar Jxvf glib-2.64.4.tar.xz
# cd glib-2.64.4/
# meson _build
# ninja -C _build
# less INSTALL.in
# ninja -C _build install
# pkg-config glib-2.0 --modversion
vi ~/.bash_profile
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
x264encインストール
# cd /usr/local/src/
# wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
# tar jxvf x264-master.tar.bz2
# cd ../x264-master/
# ./configure --enable-shared
# make
# make install
# gst-inspect-1.0 x264enc
必要だったパッケージ
# cd /usr/local/src/
# wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz
# tar Jxvf nasm-2.15.05.tar.xz
# cd nasm-2.15.05/
# ./configure
# make
# make install
$ sudo yum install gstreamer1.0-plugins-ugly
$ sudo yum install gstreamer1-plugins-ugly
$ sudo yum install gstreamer1-plugins-ugly-devel-docs
# 後に下記インストール
$ sudo yum install gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-devel-docs gstreamer1-plugins-base-devel gstreamer1-plugins-base-devel-docs gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer1-plugins-ugly-devel-docs  gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras
ffmpeg(直接不要だったかも)
# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libva-1.8.3-1.el7.x86_64.rpm
# rpm -ivh libva-1.8.3-1.el7.x86_64.rpm
# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libass-0.13.4-6.el7.x86_64.rpm
# rpm -ivh libass-0.13.4-6.el7.x86_64.rpm
$ sudo amazon-linux-extras install epel
$ sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
$ sudo yum install ffmpeg ffmpeg-devel
テスト動画の再生
$ ./test-launch '( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )'

環境

$ uname -r
4.4.35-33.55.amzn1.x86_64

$ /usr/local/php-5.6.16/bin/php --version
PHP 5.6.16 (cli) (built: Aug 28 2017 06:35:52)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

結論

curl のタイムアウト動作に対して、
  • default_socket_timeout は影響確認できず(ini_set)
  • max_execution_time は影響確認できず(set_time_limit)
  • CURLOPT_CONNECTTIMEOUT は作用する(curl_setopt)
  • CURLOPT_TIMEOUT も作用する (curl_setopt)
  • CURLOPT_DNS_CACHE_TIMEOUT は影響確認できず(curl_setopt)
  • デフォルトでは2分強でタイムアウト(カーネル仕様と思われる)

curl_setopt 設定値

CURLOPT_CONNECTTIMEOUT :接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。
CURLOPT_TIMEOUT:cURL 関数の実行にかけられる時間の最大値。

curl_errno の戻り値

  • 正常時:CURLE_OK (0)
  • カーネル側のタイムアウト:CURLE_COULDNT_CONNECT (7)
  • CURLOPT_CONNECTTIMEOUT / CURLOPT_TIMEOUT:CURLE_OPERATION_TIMEDOUT (28)

カーネル側のタイムアウト動作

$ time /usr/local/php-5.6.16/bin/php curl.php
real    2m7.345s
user    0m0.000s
sys     0m0.012s

$ cat /proc/sys/net/ipv4/tcp_syn_retries
6

参考リンク

curl の戻り値
https://curl.haxx.se/libcurl/c/libcurl-errors.html curl実行中に応答が無くなる現象
https://ngyuki.hatenablog.com/entry/2019/09/21/191552 curlのデフォルト値等

https://www.it-swarm.dev/ja/php/php%EF%BC%9A%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AEcurl%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E5%80%A4/1067580731/

https://www.it-swarm.dev/ja/php/php%E3%81%A7%E3%81%AEcurl%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A/968216261/

https://stackoverflow.com/questions/10308915/php-default-curl-timeout-value TCPタイムアウト
https://qiita.com/tukiyo3/items/e66393cf5fd0ede8b3b4

ソースコード

<?php

// default_socket_timeout は、本コードでのタイムアウト動作には影響しない
$socket_timeout = ini_get('default_socket_timeout');
print_r("socket_timeout: $socket_timeout \n"); // -> 60

ini_set('default_socket_timeout', 10);

// max_execution_time は、本コードでのタイムアウト動作には影響しない
$max_execution_time = ini_get('max_execution_time'); // timeout in seconds
print_r("max_execution_time: $max_execution_time \n"); // -> 0

set_time_limit(5);

$max_execution_time = ini_get('max_execution_time');
print_r("max_execution_time: $max_execution_time \n"); // -> 5

$url = "https://www.google.com"; // 正常実行
//$url = "8.8.8.8"; // for connect timeout test
//$url = "http://httpbin.org/delay/10"; // for timeout test

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// デフォルト5分のようだが、カーネルプロトコルスタックのTCP制御で2分強でタイムアウトする
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 3500);

// デフォルトは、無期限
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
//curl_setopt($ch, CURLOPT_TIMEOUT_MS, 10000);

curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 3); // 本コードでのタイムアウト動作には影響しない

$str = curl_exec($ch);
$errno = curl_errno($ch);

curl_close($ch);

if ($errno !== CURLE_OK) {
    print_r("errno: $errno \n");
    // CURLE_COULDNT_CONNECT (7) -> カーネル側のタイムアウト
    // CURLE_OPERATION_TIMEDOUT (28) -> CURLOPT_CONNECTTIMEOUT or CURLOPT_TIMEOUT
    return false;
}

if (!$str) {
    print_r("error");
    return false;
}

print_r("success");
return true;

確認したAMI

amzn-ami-2018.03.u-amazon-ecs-optimized (ami-0e1aa8c2e9d719f58)
`
起動AMIから確認。

docker利用において、

docker内の以下や

ホストOS側の以下が出る場合がある。

 

生成したファイルに、rm をしない場合は、ゴミが残る。

docker system prune -fで解放される。

 

コンテナサイズ、デフォルト10GBを超えた場合も、

やはり、docker system prune -fで解放される。

 

上記以外で、rmでファイルを消した場合は、ほとんどゴミデータは残らない。

 

ゴミデータを残ったままにすると、ブロックデバイスを全て消費して、docker自体起動できない等の状態になる。

 

ホストOS側からは、次のように動的マウントのマッピングが見える。

 

確認したAMI

amzn-ami-2018.03.u-amazon-ecs-optimized (ami-0e1aa8c2e9d719f58)

docker -v

Docker version 18.06.1-ce, build e68fc7a215d7133c34aa18e3b72b4a21fd0c6136

対応前

Docker上で10GBファイル生成

対応後

ホストOS

結局40GBまではかける

ホストOS

Docker終了後

再起動すると。/tmp配下ファイルが無い?

docker rmi してもホストOSの容量が減らない、

差分ファイルが全部残っていた

特定のDockerコンテナに溜まった大量のゴミファイルの掃除

AWS BatchはAMI IDが、Manged by Batch になっていて、docker versionがわからない。

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/container_agent_versions.html

https://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2

 

下記で解消された

 

https://github.com/moby/moby/issues/32420

https://github.com/moby/moby/issues/21925

http://docs.docker.jp/engine/reference/commandline/dockerd.html#daemon-configuration-file

AWS SDKを使用しているとslabが肥大化していく現象

NSS_SDB_USE_CACHE=yesが利用できるのが、nss3.16以上とあるが、

nss-softokn-3.14.3-12.el6 という情報もあるため、確認

https://bugzilla.redhat.com/show_bug.cgi?id=1044666

http://tama1029hq.hatenablog.com/entry/2016/12/12/105353

 

Amazon Linux

この場合、NSS/3.21が有効なのだろうか。

 

→効いている。

 

さくら(CentOS release 6.6 (Final))

 

→再現しない

 

CentOS6.9(Amazonマーケットプレイス)

 

→効いている

 

 

 

potファイル生成

xgettext hello.php –from-code UTF-8 –add-comments=TRANSLATORS –output=default.pot

 

poファイル生成

msginit –locale=ja –input=default.pot

 

poファイル生成

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po –sort-by-file

と同じ。

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po –sort-output

は不要。poeditでもソート可。未翻訳テキストソートも。

382 sudo yum install php-fpm
384 sudo vi /etc/php-fpm.d/www.conf
391 sudo vi /etc/nginx/nginx.conf
393 sudo /etc/init.d/php-fpm start
395 sudo chkconfig php-fpm on
396 sudo /etc/init.d/nginx restart

http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6

SSL以外はソース ※動作未確認

381 wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.2.tar.gz
382 tar xvzf apr-1.5.2.tar.gz
383 cd apr-1.5.2
384 ./configure –prefix /usr/local/apr-1.5.2
385 make
386 make install
387 cd ..
388 wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.4.tar.gz
389 tar zxvf apr-util-1.5.4.tar.gz
390 cd apr-util-1.5.4
391 ./configure –prefix=/usr/local/apr-util-1.5.4 –with-apr=/usr/local/apr-1.5.2
392 make
393 make install
394 cd ..
395 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
396 tar xvzf pcre-8.39.tar.gz
397 cd pcre-8.39
398 ./configure –prefix=/usr/local/pcre-8.39
399 make
400 make install
401 cd ..
402 wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.23.tar.gz
403 tar xvzf httpd-2.4.23.tar.gz
404 cd httpd-2.4.23
405 yum install openssl
406 openssl
407 ./configure –enable-ssl –enable-mods-shared=all –with-apr=/usr/local/apr-1.5.2 –with-apr-util=/usr/local/apr-util-1.5.4 –with-pcre=/usr/local/pcre-8.39 –enable-shared=ssl
408 make
409 make isntall
410 make install
411 service httpd start
412 less httpd
413 ll
414 /usr/local/apache2/bin/httpd -v
415 usr/local/apache2/bin/apachectl start