2019年05月08日 00時05分
対象 ・HTML ・CSS ・JavaScript ・PHP 文字コード ・UTF-8とする。 ファイル ・改行コードはLFとする。 ・ファイルの最後に空行を入れる。 行 ・120文字でゆるい文字数制限(絶対的な文字数制限はしない)を設ける。 ・1行は80文字以内にするべき、80文字を越える場合は複数行に改行する。 ・行末に空白文字列を記述してはいけない。 ・読みやすくしたり、関連性を示すために適度に空行を加えてかまわない。 ・1行は1ステートメントにする。 HTML ・インデント ✔2つの半角スペースを使用する。 ✔タブを使用してはいけない。 CSS ・インデント ✔2つの半角スペースを使用する。 ✔タブを使用してはいけない。 JavaScript ・インデント ✔4つの半角スペースを使用する。 ✔タブを使用してはいけない。 ✔<script>タグからインデントを開始する。 <script> var x = 1; if (new Date().getHours() < 18) { document.getElementById("demo").innerHTML = "Good day!"; } </script> ・文字列 ✔文字列は、シングルクォーテーションで囲む ・文末のセミコロン ✔文末のセミコロンは記述しなくてもよい PHP ・インデント ✔4つの半角スペースを使用する。 ✔タブを使用してはいけない。 ・予約語とtrue/false/null ✔予約語は小文字で記述する。 ✔コンスタント値「true」「false」「null」は小文字で記述する。 2019年05月07日 23時05分
Unicodeにエンコードしない json_encode($arr, JSON_UNESCAPED_UNICODE); 改行、インデントを挿入する json_encode($arr, JSON_PRETTY_PRINT); スラッシュをエスケープしない json_encode($arr, JSON_UNESCAPED_SLASHES); オブジェクトで返却 $obj = json_decode($json) 連想配列形式で返却 $arr = json_decode($json, true) 2019年04月17日 08時04分
MySQL(MariaDB)用のシェル。
mysql.sh #!/bin/bash MYSQL_HOME=/var/lib/mysql MYSQL_BIN=/usr/bin MYSQL_USER=YOUR_USER MYSQL_PASS=YOUR_PASS MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_SOCK=$MYSQL_HOME/mysql.sock MYSQL_DUMP=$MYSQL_HOME/dump TODAY=`/bin/date +%F` TENDAYSAGO=`/bin/date -d '10 days ago' +%F` case "$1" in "login") $MYSQL_BIN/mysql --user=$MYSQL_USER --password=$MYSQL_PASS --host=$MYSQL_HOST $2 ;; "start") systemctl start mysqld ;; "restart") systemctl restart mysqld ;; "slavestart") $MYSQL_BIN/mysqld_safe --relay-log=$MYSQL_HOME/relay-bin & ;; "stop") systemctl stop mysqld ;; "dump") if [ -a $MYSQL_DUMP/$2-$TENDAYSAGO.dump.gz ]; then /bin/rm $MYSQL_DUMP/$2-$TENDAYSAGO.dump.gz fi $MYSQL_BIN/mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS --host=$MYSQL_HOST --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2 $2 > $MYSQL_DUMP/$2-$TODAY.dump /bin/sleep 15 /bin/gzip -9f -S .gz $MYSQL_DUMP/$2-$TODAY.dump ;; "dumpmulti") for x in "$@" do if [ "dumpmulti" = $x ]; then continue; fi if [ -a $MYSQL_DUMP/$x-$TENDAYSAGO.dump.gz ]; then /bin/rm $MYSQL_DUMP/$x-$TENDAYSAGO.dump.gz fi $MYSQL_BIN/mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS --host=$MYSQL_HOST --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2 --databases $x > $MYSQL_DUMP/$x-$TODAY.dump /bin/sleep 30 /bin/gzip -9f -S .gz $MYSQL_DUMP/$x-$TODAY.dump done ;; "dumpall") if [ -a $MYSQL_DUMP/dumpall-$TENDAYSAGO.dump.gz ]; then /bin/rm $MYSQL_DUMP/dumpall-$TENDAYSAGO.dump.gz fi $MYSQL_BIN/mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS --host=$MYSQL_HOST --quote-names --flush-logs --master-data=2 --all-databases > $MYSQL_DUMP/dumpall-$TODAY.dump /bin/sleep 15 /bin/gzip -9f -S .gz $MYSQL_DUMP/dumpall-$TODAY.dump ;; "diff") /usr/bin/mysqldiff --server1=$MYSQL_USER:$MYSQL_PASS@$MYSQL_HOST:$MYSQL_PORT:$MYSQL_SOCK --server2=$MYSQL_USER:$MYSQL_PASS@$MYSQL_HOST:$MYSQL_PORT:$MYSQL_SOCK $2$4:$3$4 --force --skip-table-options ;; *) echo "sh mysql.sh [login <dbname>|start|restart|slavestart|stop|dump <dbname>|dumpmulti <dbname1> <dbname2> ...|dumpall|diff <dbname1> <dbname2> <.table>]" ;; esac mysql.shを全選択&クリップボードにコピー 2018年08月16日 09時08分
MariaDBのopen_files_limitの設定 $ sudo systemctl edit mariadb --- [Service] LimitNOFILE=65536 $ sudo systemctl daemon-reload $ sudo systemctl restart mariadb $ sudo cat /proc/`pidof mysqld`/limits | grep -i "max open files" Max open files 65536 65536 files 上記設定を行うと、
/etc/systemd/system/mariadb.service.d/override.conf として、ファイル保存される。
MariaDB側の設定も確認。
$ sh mysql.sh MariaDB [(none)]> show variables like '%open_files_limit%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 65536 | +------------------+-------+ ※
mysql.sh は、
こちら 2018年07月02日 09時07分
certbot-auto install $ sudo wget https://dl.eff.org/certbot-auto -O /usr/bin/certbot-auto $ sudo chmod 755 /usr/bin/certbot-auto $ certbot-auto --help certbot-auto execute $ certbot-auto certonly --webroot -w DOC_ROOT -d DOMAIN -m EMAIL --agree-tos cron $ crontab -e ### ### 毎月1日の午前4時に実行 ### # apache 00 04 01 * * /usr/bin/certbot-auto renew --force-renew && systemctl reload httpd # nginx # 00 04 01 * * /usr/bin/certbot-auto renew --force-renew && systemctl reload nginx for conf : apache <VirtualHost *:443> : : SSLEngine on SSLCertificateFile /etc/letsencrypt/live/DOMAIN/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN/fullchain.pem : : </VirtualHost> for basic auth : apache <Directory "/var/www/hoge/.well-known"> <RequireAll> Require all granted </RequireAll> </Directory> for conf : nginx server { : : listen 443; : : ssl on; ssl_certificate /etc/letsencrypt/live/DOMAIN/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/DOMAIN/privkey.pem; : : } </VirtualHost> for basic auth : nginx location ^~ /.well-known/acme-challenge/ { auth_basic off; } certbot-auto wildcard $ sudo certbot-auto certonly --manual -d *.DOMAIN -m EMAIL --agree-tos --manual-public-ip-logging-ok \ --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory ------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.DOMAIN with the following value: HjceQRWhJ1Bgo-Oy_p6QNlg7Vc0J_buFNVqeTpvdtfc Before continuing, verify the record is deployed. ------------------------------------------------------------------------------- DNSのTXTレコードに、上記を設定。その後、何かキーを押すと、ワイルドカード証明書が発行。 - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/DOMAIN/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/DOMAIN/privkey.pem Your cert will expire on YYYY-MM-DD. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew"