Category "Backend"を表示しています。
2017.9.27 水
.bashrcに以下追加 export PS1="[\u@HOSTNAME]\\$ " 保存したら source .bashrc
2017.9.27 水
URL/URIの正規化というと「正規化」というエンジニア用語みたいのが絡んでいて意味がわからないので、URL/URIの統一化の方がいいんじゃないかということで、正規化=統一化という話でここでは進めたいと思います。 URL/URIっていうのは、いろんな方法で1つのデータに割り当てられるというのがそもそもの問題であり、またその複数のURL/URIというのを別々のデータであると判断する検索エンジン…というのが第二の問題であります。これは機能上仕方ないことといえば仕方ないことなので、サイトを運用する側が何とかしないといけないというところです。 http://www.example.com/ http://example.com/ という2つのURL/URIがあったとして、この2つをバラバラに利用して...
2017.9.25 月
Postfixの設定 インストール yum -y install postfix 2017-09-25時点では最新のpostfix-2.10.1-6.el7.x86_64がイントールされると思う。(あるいは最近のサービスだったらすでにされているかも) /etc/postfix/main.cfを設定します。 cd /etc/postfix/ cp -p main.cf main.cf.org vi main.cf 実際ここでmain.cfに何も設定しなくてもlocalhostであれば、メールが送信できるようになっている筈です。テストサーバーとか開発サーバーとかでPHPのmb_sendmail()あたりをつかうのであれば充分かと思います。 systemctl start postfix.serv...
2017.9.19 火
自動起動サービスのリスト表示 長年親しんできたchkconfigがいなくなってsystemctl list-unit-files -t serviceという長ったらしいコマンドになりました。 [CentOS6] chkconfig --list [CentOS7] systemctl list-unit-files -t service systemctl使うと長ったらしいので、 ls -al /usr/lib/systemd/system/ で一覧見た方が見やすいです。 表示の形式も変わっていわゆるランレベル的なものではなくて純粋に自動起動に関して「enabled | disabled | static」というふうにステータスを表示するようになってます。 .... httpd.servic...
2017.9.12 火
最近のクラウドサーバーはSSHのコンソールが管理画面にあったりするのでよいですね。SSH接続できなくなったからといってデータセンターに行くことももうないです。 設定の前にサーバーの通信を遮断しているものを全部フリーにしておく。 SSHの設定の切り分けのためにサーバーにデフォルトで設定してあるファイヤーウォールなどは予めすべて切りにしておきましょう。セキュリティ・ポリシーはその後丁寧に設定しましょう。 で、最初にこれらは全部切りにしておく。 SULinux iptables Firewall (CentOS7からの新種) hosts.allow/hosts.deny SULinux vi /etc/selinux/config SELINUX=disabled (*1)サーバー再起動必要 ip...
2017.9.12 火
端末によってまちまちですが一部のAndroide端末ではBasic認証をかけたディレクトリ以下の動画が再生できないというのがあります。また再生はできてもいちいちBasic認証が2回走るということになります。 通常Basic認証は全てのファイルに引き継がれるんですが動画ファイルだけ(たぶんvideoタグだけなのかも。)認証情報が引き継がれないみたいです。 しかたがないので動画ファイルだけ認証解除してしまうしかないです。 AuthUserFile /home/USER/.htpasswd AuthGroupFile /dev/null AuthName StaffOnly AuthType Basic require valid-user <Files ~ "\.(mov|mp4|m4v|...
2017.9.7 木
すごく簡単なバックアップシェルです。DBとファイルを保存して、別筐体にもコピーします。コピーはrsyncの方が速いのでscpとか使うのやめました。 あと30日前のものはバックアップのタイミングで削除されます。cronで実行する前提で作っているので基本フルパスになっています。手動でも動きますよ。 ちなみにログとかそういう機能はありません。 #!/usr/bin/bash #----------- # backup.sh #----------- # file record time record_time=`date "+%Y%m%d_%H%M"` # file backup setting backupdir="/home/user/backup" # backup file store d...
2017.8.31 木
/tmp/ディレクトリ下は、テンポラリ領域としてファイルの解凍や一時的に利用するファイルが書き出されています。常時稼働させている状態でしばらくの日数を経て/tmp/下を見ると、以前あったファイルが無くなっている場合がありますが、これはどのようなタイミングで削除されたのだろうかというと、1日1回実行されるcronスケジュールで実行されるスクリプト「tmpwatch」から実行されるコマンド「tmpwatch」によって判断されているっぽいです。 # file /usr/sbin/tmpwatch /usr/sbin/tmpwatch: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses...
2017.7.16 日
rsyncsync サーバー間でアプリケーションの同期をします。rsyncの同期なのでアプリケーションの種類は問いませんが、多少そのアプリの内容に精通していないと使いづらいと思います。 設定内容は以下になります。 同期元と同期先のSSH接続情報(SSHkey設定推奨) 同期元のDatabase接続情報、同期先のDatabase接続情報 アプリケーションファイルの置換文字列設定 Databaseの置換文字列設定 ロールバックの設定 環境 openssl-devel libssh2 ssh2 インストールと設定 転送元の任意のディレクトリにアップロードしてください。PHP7.0以上推奨ですが、たぶんそれ以下のバージョンでも動きます。
2017.6.26 月
シンボリックリンク ln -s ./top/index.html ./index.html ln -s <実体ファイルパス> <シンボリックリンクのファイルパス>という風になっています。-sオプションを忘れずに。 毎回忘れるんだけど、手前が実体ファイル、後ろがリンク。 ハードリンク ln ./top/index.html ./index.html iノードの説明とかしません。 hard link not allowed for directoryというのが出るときがあるんですが、「ディレクトリ」「異なるファイルシステム間」「異なるパーティション間」ではリンクを作成することができません。
2017.6.5 月
インストール リポジトリの調整しなくても2.4が入ってくれるっぽいです。 yum -y install httpd これで完了。 httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Apr 12 2017 21:03:28 なるほど。 Firewallやiptablesを無効にしていればこの時点で80がListenされます。 IPなどでアクセスするとApacheのWelcomeページが表示される筈です。 httpd.confの設定 以下を例に設定します。基本的には/var/www/htmlは使いません。すべてバーチャルホストで設定します。 Domain port host1.example.com virtualhost ...
2017.5.30 火
SSHの設定はポリシー的なところ大きいので設定の仕方というご案内はできないんですが、だいたいこんなルールでやってます。 Rootのログインは基本禁止。*但し鍵認証+IP制限が可能であればOK。問題は鍵の管理になります。 パスワード認証は基本禁止。鍵認証推奨。*とはいえ「なんでパスワードでログインできないの?」って言われます。 ポートは22じゃない方がいい。4桁ぐらいの使っていないポート。 SSH1とかは使わない。 あとはデフォルトのままでいいと思う。 インストールと設定 CentOS7のデフォルトかどうかわからないけど、クラウドサーバとかVPNとかだと、OpenSSH_6.6.1p1がインストールされているっぽい。これちょっと古いです。 最新にしたい方はOpenSSHを最新にバージョンアップ...
2017.5.30 火
centos7.example.com = 123.456.789.xxxとして設定してゆきます。 アップデート インストール完了したら、とりあえずやっておく。 yum -y update 長い。 私的に必ず使うツール系をインストールしておく。 yum -y groupinstall "Base" yum -y groupinstall "Development tools" yum -y groupinstall "Japanese Support" yum -y install nkf yum -y install nmap yum -y install tree コンパル関連とかで使う。 yum -y install gcc libgcc yum -y install zlib-dev...
2017.5.29 月
CentOS6のOpenSSHが古い問題でいろいろ大変です。 CentOSのデフォOpenSSH(5.3p1)はちょっとアレなんで最新版(7.1p1)をコンパイルしてみたでかなり詳しく正確に書いてくれているのでなになんですが、ちょっとリマインドで書いておきます。 今回既存のSSHが5.3で7.5にバージョンアップしたという感じです。CentOS6やRedhad系だったらそこそここのやり方でOKな筈。 OpenSSH_5.3p1 ↓ OpenSSH_7.5p1 しかし結果からいうとtelnetや最近のクラウドサービスのコンソール的なものでSSH以外で接続しておかないとちょっと怖い感じがあります。 とはいえきちんと設定しればSSHの再起動で接続は切断されますが、すぐにSSHログインができるように...
2017.5.29 月
まずはリポジトリ関連 yum -y install epel-release rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm PHPをインストール yum -y install --enablerepo=remi-php72 php php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-pear php-pecl-apcu php-soap php-xml php-xmlrpc php-bcmath php-mcrypt php-imap php-intl php-pgsql これでいつも使うやつ...
2017.5.29 月
Firewallというのが追加されました。 CentOS6まではLinuxサーバ上でファイアウォールを稼働さす場合、iptablesを使ったフィルタを実装するのが一般的でした。これをこのままCentOS7で利用することも可能なのですが、新たなファイアウォールとしてfirewalldというのが実装されました。 CentOS7からFirewallとiptablesがどっちでも使えるようになっているという謎。正直Firewall要らないです。どちらも内部的には同じようなものらしいですが、設定方法が少々異なるので面倒くさいです。 Firewallはゾーンという概念で設定するようです。(これはまた今度) iptablesを使う方の設定 systemctl status firewalld デフォルトで...
2017.4.23 日
Windows MINGW64でphpを使うの続きです。 Localのコンソールが何であるかによってちょっと変わりますが基本は同じです。私はMINGW64使っておりますのでここでもその想定で。 xamppのphpパス xamppをインストールしたばかりだとデフォルトでcliはフルパスじゃないと使えません。 /c/xampp/php/php.exe -v PHP 5.6.19 (cli) (built: Mar 2 2016 20:08:35) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies こんな感じでCLIとして使えます。しかしこれではかな...
2017.4.21 金
LolipopにSSHログインしたらコンソールから cd /usr/local ls -al とやると一応使える言語がいろいろと出てくるので確認してみてください。 rootなのでlsしかできないですのが、ここらに使えるものが揃っています。 php5.3 php5.4 php5.5 php5.6 php7.1 php7を使いたい場合は、 /usr/local/php7.1/bin/php -v こんな感じでフルパスで指定してやると使えます。
2017.4.16 日
githubはとても便利なんですが、最初に使おうと思うと結構面倒なので備忘録。 githubは基本すべてオープンになるので、ソースを晒す前提で書いてゆくとよいかと思います。無料で使えるリモートリポジトリなので大変ありがたいです。 SSHでGithubに接続する githubへの接続はSSHの鍵認証みなので、最初にSSHキーを作成します。 SSHの鍵を作成する 何も設定しない場合は、以下の2つのファイルが作成されます。秘密鍵(id_rsa)と公開鍵(id_rsa.pub)です。 id_rsa id_rsa.pub 通常SSHで接続する際には公開鍵をAuthGithubに接続する際にはauthorized_keysファイルに登録(追記)します。GithubにSSHで接続する場合は、 Github...
2017.4.11 火
brewで更新すると楽。(インストール手順はこちら) brew update これで最新になるので、 brew install git これで終わり。 /usr/bin/git --version git version 2.11.0 (Apple Git-81) フルパスでやると新しいのが入っているんだけど、普通にgitとやると古い方のversion 1.8.4になってしまうので、パスを調整。 既存のものが/usr/local/bin/git、新しいものが/usr/bin/gitにあるので、/usr/local/bin/gitを読みにいっちゃっているというわけです。 vi ~/.bash_profile (これ追記) export PATH="/usr/local/git/bin:$PAT...
2017.4.9 日
最近中間証明書を使うというのがもう主流というか当たり前になってきていて非常に面倒くさい。 グローバルサインのSSLチェッカーを使うと「中間証明書がない」と叱られます。中間証明書は設定済みなんですが、4階層以上の証明ツリーを持つ場合とnginx等の中間証明書を設定できない場合、こういったエラーが出るようです。具体的にいうとこれらのエラーが出るのは殆どスマホのアンドロイド端末ですね。 https://ssltools.websecurity.symantec.com/checker/views/certCheck.jsp 4階層以上の場合はこんな風になっているらしい。 ルート証明書(ブラウザに標準で格納されています) ┗ クロスルート設定用証明書(共通のクロスルート設定用証明書をダウンロードし、...
2017.4.9 日
rootのパスワード Ubuntuではデフォルトでrootのパスワードが設定されていません。インストール時に設定できるユーザーがsudo suでroot権限を得てコマンドを打つしかないのですが、rootにパスワードを設定すると普通にその他のOSと同様にrootでログイン可能です。Ubuntuでは基本的にrootのパスワード設定は推奨されていません。パスワードを設定しなければroot権限を乗っ取られることが殆どないと判断しているからです。ですのでパスワード設定には十分注意してください。 まず設定ユーザーでログインする。 sudo su [Enter]を打つとパスワードを要求されます。この時、rootのパスワードは当然まだないのでこのユーザーのパスワードを打ちます。(不思議です。) root権限...
2017.4.5 水
サーバーのCPU情報は、/proc/cpuinfoで確認できます。だいたいの目安で数値自体はかなりいい加減らしいです。その上、何を書いているのかよくわかりません。見るところ3箇所程度。 #cat /proc/cpuinfoとか#vi /proc/cpuinfoとかで見ます。 項目 内容 processor 0 vendor_id GenuineIntel cpu family 6 model 44 model name Intel(R) Xeon(R) CPU X5650 @ 2.67GHz stepping 2 cpu MHz 2666.848 cache size 12288 KB physical id 1 siblings 12 core id 0 cpu cores 6 apici...
2017.4.5 水
鍵のペアを作成する際にコメントに名前とかEmailとか入れておくとちょっと手間ですが誰がログインしたのかわかるようになります。 sshのsecureログのカスタマイズ vi /etc/ssh/sshd_config #SyslogFacility AUTH ↓ SyslogFacility AUTHPRIV #LogLevel INFO ↓ LogLevel VERBOSE ログ確認 tail -f /var/log/secure こんな感じでフィンフガープリントがとれます。 Apr 5 12:00:45 hostname sshd[4819]: Received disconnect from 123.456.789.000: 11: disconnected by user Apr 5 ...
2017.4.5 水
「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法 概要としてはこんな感じで、この先数年後にはデフォルトスタンダードになってるんじゃないかと思います。 環境の下準備 CentOS7のインストール直後にやっておくとよいかと。yum upgradeでだいたい全部入ってしまうようで環境によっては蛇足かもしれません。 yum -y upgrade yum -y update yum groupinstall "Base" yum groupinstall "Development tools" yum groupinstall "Japanese Support" yum install bind-utils yum install nmap FirewallとかS...
2017.3.31 金
/etc/profileにショートカットを追加しておく llでリスト表示させるようにしておきます。 vi /etc/profile .... # some more ls aliases alias ll='ls -al' alias la='ls -A' alias l='ls -CF' 追記が気持ち悪い人は、/etc/profile.dでもいい。 cd /etc/profile.d touch bash_alias.sh vi # some more ls aliases alias ll='ls -al' alias la='ls -A' alias l='ls -CF' :wq
2017.3.26 日
普通のクラウドサーバーとかVPSとかだったら最初からSSHが入っているのでほぼSSHの初期設定は必要なのですが、ここではセキュリティー上、パスワード認証を不可にして秘密鍵の接続のみということにします。個人的にはrootをよくつかうのでrootの接続は秘密鍵+IP制限でよかろうと思います。鍵の設定とかはこちら参考にしてください。 SSHの設定 パスワードのログイン禁止 パスワードのログインを禁止する cd /etc/ssh/ cp -p sshd_config sshd_config.org vi sshd_config PasswordAuthentication yes ↓ PasswordAuthentication no systemctl restart sshd これでパスワードで...
2017.3.26 日
Linuxは進化しすぎていろいろな設定方法がありすぎて気持ちが悪いのでここではシンプルな方法のみ。 コマンドプロンプトのホスト名を変更 hostnameファイルで変更 コマンドプロンプトのホスト名を変更 vi /etc/sysconfig/network .... HOSTNAME=centos7.example.com .... たぶん再起動しないとダメ。 hostnameファイルで変更 vi /etc/hostname .... 127.0.0.1 centos7.example.com .... .bashrcで変更 サーバー全体に反映させるんだったら、/etc/profileを変更した方がいいかもです。個別に設定するのだったら.bashrcか.bash_profileに設定するのがよ...
2017.3.26 日
CentOS7 インストール後の初期設定 CentOS7の便利な設定をしておく CentOS7 ホスト名の設定(変更)方法 SSHの設定 無料SSLを取得する Let’s Encrypt
2017.3.20 月
Let’s Encrypt 総合ポータル 普通のSSLと何が違うのかというのはいろんなサイトさんで説明しているので詳しいことは割愛。とはいえ、この無料SSLの最大の特徴は3ヶ月で自動的に無効になり更新が必要というところです。認証はDVのみ。無料にて完全自動化なので、ヘルプデスクとかお問い合わせとかが全くないので自力でやらないとだめ。以上が簡単ではありますが、この無料SSLの特徴になります。 取得ツールのインストール SSLの発行はGithubからツールをインストールして行います。 cd /usr/local/ git clone https://github.com/certbot/certbot certbotが落ちてくればOKです。 続いて、certbotが依存するパッケージ...