サーバー構築で、可能な限りsshのポートは変更するようにしています。
なので、サーバー間でのファイルのやり取りでscpを使用する場合は
オプションでポート番号を指定します。
1 |
scp -P ポート番号 転送元 転送先 |
オプション-PのPは大文字です。私はよく小文字で書いてエラーになります。
また、備忘録として、相手サーバーのパスの指定方法は
1 |
ユーザー名@サーバーアドレス:ディレクトリ |
在宅プログラマーの備忘録として2005年に始めたブログです。
サーバー構築で、可能な限りsshのポートは変更するようにしています。
なので、サーバー間でのファイルのやり取りでscpを使用する場合は
オプションでポート番号を指定します。
1 |
scp -P ポート番号 転送元 転送先 |
オプション-PのPは大文字です。私はよく小文字で書いてエラーになります。
また、備忘録として、相手サーバーのパスの指定方法は
1 |
ユーザー名@サーバーアドレス:ディレクトリ |
PHPとMySQLでは日付の書式はかなり似ています。
Linuxのシェルでの書式も多くは似ていますが、
よく使うと思われる「分」や「秒」が違っているので注意が必要です。
1 2 3 4 5 6 7 8 9 |
Y : 年(4ケタ) m : 月(00~12) d : 日(00~31) H : 時(00~23) M : 分(00~59) ←違う S : 秒(00~59) ←違う y : 年(2ケタ) k : 時(0~23) |
たとえばログファイル名に日時を入れたい場合は
1 |
./script.sh > /tmp/script.log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1 |
CentOS5でシステムを運用しています。2010年にリリースしたシステムです。
新しいOSに乗り換えるべきなんですが、いろいろと複雑な事情があり、もう少し延命しなければなりません。
このシステムのSSL証明書を、無料のLet’s Encryptで取得することになりました。
Let’s Encryptについての記事はこちら
また、同じサーバー上で、
本番環境の「www.ドメイン名」とステージング環境の「stage.ドメイン名」が動いており、
マルチドメイン証明書を取得することにしました。
しかし、OSが古いことが原因で、途中さまざまな壁にあたり、都度、対処が必要でした。
以下、備忘録です。
まず、Let’s Encryptを利用するために公式の「certbot」というツールがあるのですが、
これがCentOS6以降でないと使えません。
いきなりの壁です。
しかし、CentOS5でも使える「dehydrated」という非公式のツールがありますので
こちらを使ってSSL証明書を取得することにします。
dehydratedはgitでインストールしますが、
CentOS5では標準でgitはありません。
そこでgitのインストールから始めます。
CentOS5にgitをインストールするため、EPELリポジトリを追加します。
しかし、ここでまた問題が。
CentOS5は2017年3月31日でサポートが終了したため
公開していたミラーサイトからリポジトリが削除されています。
そこで、古いOSをyumリポジトリとして公開している
http://vault.centos.org/
というサイトがありますので
そこをyumリポジトリに追加してgitをインストールします。
1 |
/etc/yum.repos.d/CentOS-Base.repo |
を開きます。
1 |
mirrorlist=(省略) |
という行がいくつかあります。
この行をコメントアウトし、代わりに次の行を追加します。
1 |
baseurl=http://vault.centos.org/5.5/os/$basearch/ |
6箇所くらいあるので、それぞれ、上記の変更を行います。
私の環境はCentOS5.5ですので上記のディレクトリに「/5.5/」とありますが、
ここはバージョンによって適宜変更してください。
これでリポジトリが登録できたことになっているので、
yumでgitをインストールします。
1 |
yum install --enablerepo=epel git |
gitがインストール出来たら、やっと目的のツール「dehydrated」のインストールです。
1 |
git clone https://github.com/lukas2511/dehydrated.git |
インストールできたら、さっそくdehydratedを使ってSSL証明書を取得してみます。
まず、一時ディレクトリを作成します。
1 2 |
cd /var/www mkdir dehydrated |
次にApacheの設定ファイルを作成します。
1 2 |
cd /etc/httpd/conf.d vi dehydrated.conf |
dehydrated.confの内容は下記のとおりです。
1 2 3 |
Alias /.well-known/acme-challenge /var/www/dehydrated <Directory /var/www/dehydrated/> </Directory> |
ここまででApacheを再起動します。
次に、dehydratedの設定ファイルを作成します。
dehydratedをインストールした場所に移動し、
1 |
cp docs/examples/confg ./ |
同じディレクトリにdomains.txtというファイルを作成します。
1 |
vi domains.txt |
このファイルには、SSL証明書を発行するドメインを記述します。
このとき、行を分けて複数のドメインを記述すると
ドメインごとに証明書が発行されますが、
1行にスペース区切りで複数のドメインを記述すると
1つのマルチドメイン証明書として発行されます。
今回は目的だったマルチドメイン証明書の記述を行います。
1 |
www.ドメイン名 stage.ドメイン名 |
最初に記述したドメインがコモンネームとなります。
そして、証明書発行の前に、アカウントを登録する必要があります。
1 |
./dehydrated --config /~/dehydrated/config --register --accept-terms |
Done!と表示されたら完了です。
いよいよ証明書の発行です。
1 |
./dehydrated --config ./config --cron |
Done!と表示されたら証明書の発行完了です。
準備が大変でしたが、あっけなく発行できました。
あとは、ApacheのVirtualHostの設定で
複数のドメインに対して証明書ファイルを設定します。
いろんな書き方があると思いますが
私はssl.confにすべて記述しています。
ssl.conf(一部)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
NameVirtualHost *:443 <VirtualHost *:443> ServerName www.ドメイン名:443 SSLCertificateChainFile /root/dehydrated/certs/www.ドメイン名/chain.pem SSLCertificateFile /root/dehydrated/certs/www.ドメイン名/fullchain.pem SSLCertificateKeyFile /root/dehydrated/certs/www.ドメイン名/privkey.pem ~略~ </VirtualHost> <VirtualHost *:443> ServerName stage.ドメイン名:443 SSLCertificateChainFile /root/dehydrated/certs/www.ドメイン名/chain.pem SSLCertificateFile /root/dehydrated/certs/www.ドメイン名/fullchain.pem SSLCertificateKeyFile /root/dehydrated/certs/www.ドメイン名/privkey.pem ~略~ </VirtualHost> |
Apacheを再起動して完了です。
あとは、自動更新の設定ですが、cronで以下のようなコマンドを実行するだけです。
1 |
0 4 1 * * /インストール場所/dehydrated/dehydrated --config /インストール場所/dehydrated/config --cron >> /tmp/ログ名.log 2>&1 |
これで証明書の更新も勝手にやってくれます。たまにログは確認しましょう。
これでCentOS5でもLet’s Encryptでマルチドメイン証明書が利用できました。
無料ってのがすごいですね。
PHPからPDF出力が簡単にできるTCPDFですが、
その中でもさらに、HTMLタグでPDFが作成できる機能は
WEBアプリの開発者にとっては
とても簡単に成形されたPDFが作成できるので便利です。
最近のバージョンではHTMLのタグだけではなく、
スタイルシートもある程度は反映してくれます。
ただ、さすがにブラウザとは違うので
すべてのHTMLやスタイルの表現が使えるわけではありません。
WEBでPDF出力がよく使われるもののひとつに
「領収証の出力」
がありますが、
このとき紙の領収証と同じように
会社情報に社印(角印)を少しかぶせて表示させたいですよね。
ブラウザ上ならスタイルでいろんなやり方がありますが、
TCPDFのHTML変換機能では使えないものが多いようです。
いろいろ試した結果、実現できた方法はtableタグのスタイル「padding-top」でした。
例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<table> <tr> <td style="width:40%;text-align:right;"> <img src="(画像のパス)"/> <table style="padding-top:-50px;"> <tr> <td style="text-align:left;"> <span style="text-decoration:underline;">株式会社〇〇〇〇</span> <br/> TEL : 03-xxxx-xxxx <br/> 〒150-xxxx <br/> 東京都渋谷区〇〇〇1-2-3〇〇〇ビル55F </td> </tr> </table> </td> </tr> </table> |
SkypeやLINEにはPC版があります。
そのどちらも、PC版ではエンターキーを押すとメッセージが送信されるため、
ツール内で改行を入れることができません。
しかし、仕事で客先と長めの文章をやりとりをする際には
見やすくするために改行が必要になります。
また、技術的なやりとりをする際にコードを記述する場合も
改行ができないとマズいケースがあります。
改行する方法は、それぞれ下記のとおりです。
【Skype】
メニューの「ツール」→「設定」→「チャット&SMS」→「チャット設定」で
「ENTERを押したときの操作」を「改行」に変更する
【LINE】
Shiftを押しながらENTERを押す
または、環境設定→「送信方法」を
Ctrl+EnterかAlter+Enterに変更する