投稿

4月, 2020の投稿を表示しています

CentOS7のYUMをDNFに変更

Python2系は2020年4月以降サポートされないということで、Python3系で動くDNFに変更したときの覚書。
環境: CentOS 7.8.2003
DNFはYUMの後継パッケージ管理システム。 Dandified YUM(ダンディファイド ヤム)の略。 DNF (ソフトウェア) - Wikipedia
インストール # yum install dnf
アップデート # dnf update
YUMとコマンドはほとんど変わらない。
Python3をインストール。 # dnf install python3
YUMが動かなくなると困るのでphthon2は残しておく。

【関連記事】 CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめCentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ

nvmをアンインストールしてNode.jsはyumで管理

最近はNode.jsの最新を追ったりすることがなくなったので、Node.jsをyumで管理する設定をしたときの覚書。
環境: CentOS 7.7
1.nvmをアンインストール.bashrcを編集。nvm関連の行を削除。 $ less .bashrc
nvmフォルダを削除 $ rm -rf .nvm/

2.NodeJSのYUMリポジトリ追加公式にNodeSourceリポジトリが案内されている。 GitHub | distributions/README.md at master · nodesource/distributionsインストール # curl -sL https://rpm.nodesource.com/setup_12.x | bash -
確認 # less /etc/yum.repos.d/nodesource-el7.repo # yum info nodejs
インストール # yum install nodejs


【関連記事】 CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめCentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめnginx + node.js + pm2でアプリ向けのREST API環境を構築

Windows10にDart Sassをインストール

scssファイルに見慣れない@use, @forwardが出てきたときの覚書。
Windows 10, PowerShell 6.2.3, dart-sass 1.26.3
@use, @forwardは最新のdart-cssで実装されたルール。 @importの問題を解消して、モジュール(コンポーネント)単位の開発をしやすくする。 Sass: @import
インストールは公式サイトを参考に。 GitHub | sass/dart-sass: The reference implementation of Sass, written in Dart.
パッケージ管理は簡単そうなScoopを使うことにした。 Scoopをインストール > iwr -useb get.scoop.sh | iex
Dart Sassをインストール
> scoop install sass
確認 > sass --version
アップデートする場合は > scoop update
インストールされた場所 C:\Users\Daiki\scoop\apps\sass
ヘルプ表示 > sass -h
圧縮したcssで出力する場合 > sass --style=compressed path\to\input.scss path\to\output.css
PHPStormのFile Watchersにセットして使っている。 node-sassと比較して体感速度は変わらない。 Bootstrap v4.4.1からDart Sassでもビルドできる。

【関連記事】 Bootstrap IconsのSVGアイコンを使うCSSフレームワーク「Foundation」

ファイヤーウォールを無効にしてwebpack-dev-serverのサンプルアプリへアクセス

仮想マシン上でやっているチュートリアルをlocalhost以外からアクセスできるようにしたときの覚書。
環境: CentOS 8.1.1911, Node.js v12.16.1, webpack-dev-server@2.11.5
Material Design Components for Webのチュートリアルをやっている。 Get started - Material Design
GitHubで配布されているスターターアプリはlocalhostで動かす前提なので、仮想マシンで実行してWindowsで確認する場合はwebpack-dev-serverの設定を変更する必要がある。 (ちなみにWindowsでも動くので大人しくlocalhostで試した方が早い)
まずはファイヤーウォールを停止。 # systemctl stop firewalld
package.jsonを編集 公式ドキュメント: DevServer | webpack $ cd /home/httpd/httpdocs/material-components-web-codelabs/mdc-101/starter/ $ less package.json   "scripts": {     "start": "webpack-dev-server --progress --host 0.0.0.0"   },
実行 $ npm start
ブラウザでアクセスするときはIPアドレスで。 NetBIOS名でアクセスできるようにしたかったけど、うまく動かなかった。

【関連記事】 CentOS8の最小構成をインストール

CentOS8の開発環境で自前認証局のSSL署名

前にCentOS7でやったことをCentOS8の環境でやろうとしたときの覚書。
環境: CentOS 8.1.1911, nginx 1.16.1, OpenSSL 1.1.1c
CentOS8の環境だと「/etc/pki/tls/misc/CA」がない。 今ならcertbotでできるんじゃない?と公式ドキュメントを読むと「minica」というツールを使えとある。 Certificates for localhost -  Let's Encrypt - Free SSL/TLS CertificatesGitHub | jsha/minica: minica is a small, simple CA intended for use in situations where the CA operator also operates each host where a certificate will be used.
1.MiniCAをインストールこのツールはGo言語で動くのでGolangのインストールから。 # dnf install golang # go version go version go1.12.12 linux/amd64
$GOPATHを設定しない方法でインストール。 # cd /opt/software # git clone https://github.com/jsha/minica.git # cd minica # go build
実行してみる。 # ./minica --domains dev.hoge.jp
説明を見る # ./minica ルート証明書がminica.pem。 ドメイン名のディレクトリにサーバー証明書と秘密鍵がある。
検証する # openssl verify -CAfile minica.pem dev.hoge.jp/cert.pem

2.nginxに設定作成したサーバー証明書と秘密鍵をnginxに設定。 参考: NginxのSSL/TLS設定を見直す(2020年版) # cd /etc/nginx/conf.d/ # vi 01_hoge.conf server {     listen       443 ssl http2;     server_name  dev.hoge.jp;
    root    /home/httpd/hoge/wo…

NginxのSSL/TLS設定を見直す(2020年版)

SSL設定を見直したときの覚書。
環境: CentOS 8.1, nginx 1.16.1, OpenSSL 1.1.1c
既にTLSv1とTLSv1.1は古く非推奨になっている。 ついにTLS 1.0/1.1の無効化が決定!影響や確認・対応方法とは? | さくらのSSL
各ブラウザの対応状況はWikipediaで。 Transport Layer Security - Wikipedia IEは11(最終版)のみTLS 1.2対応。
ちなみに某病院ホームページでは2020年3月時で0.37%のユーザーがIE10以下を使っている(ほとんどがIE9)。 ホームページ案件だと、この人たちがアクセスできなくなりクレームがくるかもしれないのが悩みどころ。
nginxのSSL設定例は下記サイトを参考に。 Mozilla SSL Configuration Generator
nginxの設定confファイルはGistに置いてあるので参考にどうぞ。 Gist | Nginx Configuration Files for WordPress. Nginx is installed by YUM. @see:https://codex.wordpress.org/Nginx

【関連記事】 CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめNginxのSSL/TLS設定を見直す(2019年版)

コストパフォーマンスがいいVPSを探す。回線速度を測定

新しくサーバーを借りるにあたり、今ならどこがいいか調査したときの覚書。 今まではKagoya VPS OpenVZを使っていた。
参考サイト KAGOYA CLOUD2 VPSの料金/評判/特徴/性能ベンチマークWebArena Indigoの料金/特徴/評判/性能ベンチマークVPS比較:回線速度が速い順ランキング
これからは5G(第5世代移動通信システム)が当たり前になり、ネットワーク回線がボトルネックになると思う。 なので回線速度が圧倒的に速いWebArenaが有力候補。
実際に試してみて決める。
回線速度を測定する方法speedtest-cliが簡単便利。 GitHub | sivel/speedtest-cli: Command line interface for testing internet bandwidth using speedtest.netLinuxでもSpeedtestがしたい(speedtest-cli) - Qiita CentOS7はyum経由でインストール。 # yum install python2-speedtest-cli
CentOS8はpip経由でインストール。 # pip3 install speedtest-cli
計測実行 # speedtest-cli 自身のIPアドレスから近くのサーバーを自動選択する。 比較する際は同じサーバーを指定した方がいいと思う。

【関連記事】 カゴヤ・クラウドVPS(CentOS)の初期設定

NginxからPHP-FPMのアクセスをTCPからUnix Socketに変更

CentOS8をセットアップしている時にdnf経由でインストールすると、nginxからphp-fpmのアクセスがUnix Socketを使っていたので、CentOS7の環境でもやってみた。
環境: CentOS 7.7.1908,  nginx 1.16.1, PHP 7.3.17
PHP-FPMの設定変更 # less /etc/php-fpm.d/www.conf listen = /run/php-fpm/www.sock listen.owner = nginx listen.group = www listen.mode = 0660
nginxの設定変更 # less /etc/nginx/conf.d/global/fastcgi_php.conf fastcgi_pass unix:/run/php-fpm/www.sock;
再起動 # nginx -t # systemctl restart php-fpm # systemctl restart nginx

ついでにnginxの設定に「tcp_nopush」を追加。 これもCentOS8でdnf installしたらデフォルトでonになっていたから。 # less /etc/nginx/nginx.conf     sendfile            on;     tcp_nopush          on;     tcp_nodelay         on;     keepalive_timeout   65;     types_hash_max_size 2048;
tcp_nodelayはデフォルトでonだけれども一応書いておく。 全文はGistに置いてある。 Gist: Nginx Configuration Files for WordPress. Nginx is installed by YUM. @see:https://codex.wordpress.org/Nginx
再読み込み # nginx -t # systemctl reload nginx
開発環境でしばらく運用してから本番環境に反映させる予定。

【関連記事】 CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめTCP/IPとUNIX Socketの接続でどれくらい違うか

CentOS8 + Nginx + PHP + MariaDB + Node.js + Certbotの環境を構築する手順まとめ

CentOS8の開発環境をセットアップしているときの覚書。
環境: Mac mini(Mid 2010), VMware Fusion 8.5.10, CentOS 8.1

インストールまでは前の記事を参考に。 CentOS8の最小構成をインストール
epelリポジトリをインストールしておく。 # dnf install epel-release

1.nginxのインストールnginxのモジュール一覧 # dnf module list nginx
mainlineのバージョン確認 # dnf module info nginx:mainline
最新のStableをインストール # dnf module install nginx:1.16/common
起動、自動起動ON、確認 # systemctl start nginx # systemctl enable nginx # systemctl list-unit-files -t service | grep nginx
CPU数の設定がautoになっているか確認 # less /etc/nginx/nginx.conf
GitLabから共通設定をcloneしておく(プライベートリポジトリです)。 # cd /etc/nginx/conf.d/ # git clone git@gitlab.com:dksg-settings/nginx-global.git global
nginx.confは前の記事のGistを参考に。 静的WordPress向けNginxのfastcgi_cache設定 ユーザーグループ「www」を追加。 # groupadd www # usermod -G www nginx
修正後、確認して反映させる。 # nginx -t # systemctl reload nginx

2.PHPのインストールphpのモジュール一覧 # dnf module list php
php7.3をインストール # dnf module install php:7.3/common
その他のPHPモジュールをインストール # dnf install php-mysqlnd php-gd
起動、自動起動ON、確認 # systemctl start php-fpm # systemctl enable php-fpm # systemctl list-unit-files …

CentOS8の最小構成をインストール

CentOS8を最小構成でインストールしたときの覚書。
環境: Mac mini(Mid 2010), VMware Fusion 8.5.10, CentOS 8.1
1.ダウンロードisoを直接ダウンロードすると時間がかかるので、理化学研究所のミラーサイトから「CentOS-8.1.1911-x86_64-dvd1.torrent」をダウンロードしてきて、BitTorrentクライアントでisoファイルをダウンロードする。
2.インストールMac上のVMware FUsionにインストールした。 Keyboard: Japanese, English(US) Language Support: English(United States), 日本語 Time & Date: Asia/Tokyo Software Selection: Minimal Install
仮想マシンの設定のNetwork Adapterを「Ethernet」を選択して、ネットワークを繋げてある。 Root Passwordを設定するときはキーボードをusに設定してから入力(使っているキーボードがUS配列だから)
インストール完了後、再起動するときはマウントしたisoファイルを解除しておく。 とりあえずrootでログインして各種確認 yumはdnf(Dandified YUM)変わったけどコマンド自体はdnfコマンドに内部変換して使える。 # yum update
CentOS7までは公式リポジトリに古いアプリケーションしかなく、最新のソフトを使うためには他のリポジトリを追加する必要があった。 それがCentOS8からはある程度新しいソフトウェアも公式で配布されるようになった。詳しくは下記。 CentOS 8のサポート期間の考え方は6や7とは異なります | そどRHEL 8/Fedora 28で導入されたModularity - 赤帽エンジニアブログ
例えばnginxは1.14系と1.16系が配布されている。 # dnf module list nginx
どんなデーモンが起動しているか確認 # systemctl list-unit-files -t service
IPアドレス確認 # ip a
IPアドレスを確認したらteratermを使ってSSH経由で作業。
3.ホスト名の変更CentOS7と同じ方法。 # host…

git pull --theirs?ローカルの環境をリポジトリの最新に強制アップデート

masterに戻ってgit pullしたら最新になってくれなかった時の覚書。
環境: Windows 10, git 2.24.1 
参考サイト git pull を強制し、リモートでローカルを上書きする方法 | WWWクリエイターズ
リモートの最新を取得 $ git fetch origin master
ローカルのmasterをリモート側に合わせる $ git reset --hard origin/master
邪魔なUntracked filesのファイルとディレクトリを削除する。 $ git clean -fd

【関連記事】 よく検索するGitコマンドの覚書。自分用既存のディレクトリ(フォルダ)にgit cloneして上書きしたい