Category "Backend"を表示しています。
2016.8.4 木
データベースの削除についてディレクターや営業さんとの誤解がすごくてすごくてちょっとコラム的な記事にしてみました。タイトルはデータベースの削除になりますが、肝はデータ自体の削除と抹消という話になります。 データは通常HDDに永続的に保存されるので、データの保存という定義はHDDに保存されているというものでよいかと。メモリに一時的に駐屯しているデータについては電源引っこ抜いたりすれば何とかなるので、データ保持の定義からは抜いておきます。 とはいえここではDBに格納されているデータ(MySQL)を例にしてすすめます。 1. WEBページ上から消える DBから引っ張りだしたデータがWEBページ上で利用される、または表示されるという仕組みを使っている場合、WEBページ上から消えると素人さんはデータを削...
2016.8.2 火
滅多に自分でシェルを書かないのでよくわからなくなったので整理します。 command para1 para2 para3 というのがあると、シェルの中では、 #!/bin/bash # 実行時に指定された引数の数、つまり変数 $# の値が 3 でなければエラー終了。 if [ $# -ne 3 ]; then echo "指定された引数は$#個" 1>&2 echo "実行するには3個の引数が必要" 1>&2 exit; fi # here document cat <<__EOT__ $1 $2 $3 $#個 __EOT__ exit;
2016.7.2 土
/proc/meminfoで確認します。ただのファイルなので、catとかviとかで開いて見ます。 $ cat /proc/meminfo というような感じです。 MemTotal: 2097152 kB MemFree: 1903832 kB Buffers: 0 kB Cached: 0 kB SwapCached: 0 kB Active: 0 kB Inactive: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 2097152 kB LowFree: 1903832 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 260 kB Writeback: 0 kB AnonPages: 0 kB Mapped:...
2016.6.21 火
さくらのVPSの文字コード設定が不親切。他のOSはわからんけどCentOSを選択するとデフォルトで日本語が文字化けします。文字コード設定をUTF-8にしないと駄目です。 $ echo $LANG c これだと文字化けする。 $ echo $LANG ja_JP.UTF-8 こういう風に設定されるようにしないと日本語が文字化けする。 viで以下のファイルを設定します。 # vi /etc/sysconfig/i18n LANG="c" ↓ LANG="ja_JP.UTF-8" 修正して保存したらサーバー再起動します。(再起動忘れがち)
2016.6.19 日
レンタルサーバーはyumとかrpmとかapt-getみたいなものが使えないので、PHPライブラリーのPEARを設定する際には手動で配置することになるのでやや面倒です。ロリポでは2016年現在PHP Version 5.6.21が使えるのでこれで設定。 やるべきことは、 PEARのインストールツール(http://pear.php.net/go-pear)を使って、PEARライブラリを任意のWEBディレクリにインストールする。(必要なライブラリーは同様のツールで追加可能です。) インクルードパスを設定して、includeしたりrequireできるようにする。 の2点だけなので、面倒は面倒ですが、やってしまえばそれでおしまいです。 http://tips.recatnap.info/instal...
2016.6.17 金
Satisfy AnyをつかってIPで許可されなかった場合だけBasic認証にする Order Deny,Allow Deny from all Allow from 192.168.1 Allow from 192.168.2 AuthUserFile /var/www/.htpasswd AuthGroupFile /dev/null AuthName StaffOnly AuthType Basic require valid-user Satisfy Any IPで許可されなかった人だけBasic認証がかかります。関係者はパスなしそれ以外はアイパスありみたいな感じになるのではないでしょうか。結構便利だけど、ネットワークから離れて外からアクセスするときに必ずログイン情報を忘れているとい...
2016.6.9 木
OSの確認(Linuxディストリビューション) CPUスペックの確認 メモリ容量の確認 HDD容量確認 Apacheの設定確認(設定情報、文字コード、モジュール) SSHの確認 MTAの確認 MySQLの確認 Perlのバージョン確認(Perlモジュールの確認(インクルードパスを調べる)) PHPのバージョン確認 ログインシェルの確認 OS確認 Debian GNU/Linux $ cat /etc/debian_version 4.0 Ubuntu あるいは、 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.0...
2016.6.8 水
Linux系のマシンではrootとそのほかのユーザーに分かれていてroot以下はそれぞれの権限内での操作しかできないようになっています。それぞれいろいろ設定しておく必要があります。 ユーザーの作成 基本的なコマンドは以下の通りです。usermodとかほとんど使わないです。 command useradd ユーザー作成 usermod 更新 userdel ユーザー削除 passwd パスワード作成・変更 新規ユーザー作成 新規でユーザーを作成すると/home以下に作成したユーザーの専用ディレクトリが自動的に作成されます。 # useradd test /home/testが作成されているはずです。 # ls /home ec2-user test ←作成されている また、passwdファイル...
2016.6.7 火
最近はこういうのがあるのでとても便利 https://htaccess.cman.jp/explain/redirect.html 301リダイレクト ディレクトリ以下をリダイレクトする # Redirect Redirect permanent /hoge/ http://saba.omnioo.com/ ファイル(じゃなくてURLかな)をリダイレクトする # Redirect Redirect permanent /hoge/huga.html http://saba.omnioo.com/hoge.html htmlでリダイレクト なんらかのメッセージを出した後にリダイレクトさせる場合はhtmlでもやれます。秒数をcontent内で指定してあげます。 <html> <...
2016.6.3 金
すべてのPCはLinuxになってほしいです。 なんか変なソフトいっぱいインストールするよりコマンドでやったほうがいいです。 ファイルをzipにする $ zip test.zip test.txt ディレクトリをzipにする $ zip -r test.zip ./test パスワード付きのzipにする $ zip -e -r test.zip ./test
2016.5.11 水
そもそもCPANがインストールされていない場合は、yumでインストール。 yum -y install cpan Perlの非常に便利なモジュール群をインストールするには通常CPANからダウンロードしてくるのが一番よいアイディアです。以下のコマンドで殆どOKです。モジュール名をそのまま指定してインストールします。 # perl -MCPAN -e shell Terminal does not support AddHistory. 一番最初はyes/no聞かれるのでとりあえずはyesでよいです。これでたぶんCPANにログインしたみたいな状態になります。 cpan shell -- CPAN exploration and modules installation (v1.7601) Rea...
2016.5.9 月
dfコマンド 全体のHDD総量を測るのがdfコマンドです。最近は容量が大きいので-hでもってGB単位で表示するのが1番よいかなと思います。オプションなしだとデフォルトでKB単位で表示されます。-hがGB、-mがMB、-kがKBというオプションになります。 # df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 16G 7.9G 7.0G 53% / tmpfs 499M 0 499M 0% /dev/shm ディレクトリ単位の容量はこんなduコマンドを使います。オプション-sでサマリー、-hでGB単位表示です。続けて指定のディレクトリパスを書けばOKです。 # du -sh hogehoge 1.6G omnioo ファイル単...
2016.5.2 月
ファイルサーバーは何だかんだでとても楽でいいです。2TB級のHDDが安価な世の中になったのでファイルサーバーは尚更便利な世の中になってきました。私は家族の写真とかそういうものを置くために作ってます。ローカルPCもとんでもない容量がある今現在ですが、みんなで使うサーバーとしてはLAN内に1つあるととても重宝します。 Sambaのインストール # apt-get -y install samba 共有ディレクトリの作成 # mkdir /var/samba # chown nobady:nogroup /var/samba # chmod 777 /var/samba 設定ファイルの編集 vi /etc/samba/smb.conf 編集する項目はかなり少ないです。いわゆるワークグループを作成し...
2016.4.21 木
topコマンドというのがあって、現在のサーバーの状態をリアルタイムで表示してくれます。 top - 13:02:28 up 17 days, 20:31, 1 user, load average: 0.53, 0.54, 0.49 Tasks: 70 total, 3 running, 67 sleeping, 0 stopped, 0 zombie Cpu(s): 14.6%us, 0.7%sy, 0.0%ni, 84.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3932160k total, 2380716k used, 1551444k free, 131892k buffers Swap: 0k total, 0k used, 0k free...
2016.4.14 木
ln -s ./top/index.html ./index.html ln -s <実体ファイルパス> <シンボリックリンクのファイルパス>という風になっています。-sオプションを忘れずに。 毎回忘れるんだけど、手前が実体ファイル、後ろがリンク。
2016.4.11 月
ppk形式がかなり鬱陶しい今日このごろです。 id_rsaからppk puttygen.exeを起動 [Load] をクリックしてid_rsa をロード ロードできたら、[Save private key] をクリックしてppkファイルを保存
2016.4.3 日
コマンドのエイリアスは、ユーザーディレクトリ内に.bashrcで作成します。私自身が最低限必要のは以下ぐらいでしょうか。 /home/USERDIR以下に隠しファイルで.bash_profileまたは.bashrcを新規で作成するか、既存のファイル内に追加します。(ひょっとしたら既存のファイル内のコメントアウトを外す作業になるかもしれません。) またOSによっては、.bash_profileに書かないと効かない場合もあるかもです。 alias ll='ls -al' alias la='ls -A' alias l='ls -CF' プロンプトも使いづらいことがあるので、[USER@HOSTNAME 00:00 $]みたいな形式にしておく。 PS1='\[\e[37m\]bluma@\u \...
2016.3.28 月
keyの作成 SSLのCSRの発行は最初にkeyを作ってその文字列からCSRを発行します。keyにはパスワードをかけることができてCSRと共通になります。最近のSSL証明書はたいてい2048で作成するので以下のようなコマンドになります。 openssl genrsa -rand rand.dat -des3 2048 > user_key.pem パスフレーズ(パスワード)なしで設定する時は以下のコマンドになります。パスワードなしにして特にセキュリティー的に云々は殆ど関係ないです。最近のVPSクラウドとかだとメンテナンス時に再起動とか勝手にかけられるのでパスワードなしの方が無難です。Apache再起動時にパスワードが必要になるので、自動起動ができなくなります。 openssl genr...
2016.3.28 月
httpでアクセスしているのに勝手にhttpsにリダイレクトしてしまうという現象。httpヘッダに怪しげなものを発見。 Strict-Transport-Security “max-age=31536000; includeSubDomains” 怪しげでもなんでもないのですが、sslを設定の際に、ssl.conf内で、以下のようにヘッダーに設定していました。(とはいっても、いつものルーチンワークであんまり見てなかったのですが、デフォルトでこのような設定がなされているssl.confもあるというわけです。) Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" .htacc...
2016.3.26 土
データベーススペシャリスト試験(DB)[Database Specialist Examination]というのがあったりして、何をテストするんだかという感じですが、データベースにはそれぞれの概念にそれぞれの名前がついています。その中に外部キー制約というものがあります。 その前に主キー制約というものがあります。これは、あるひとかたまりのデータを識別できるようにするためのデータの整理方法です。住所録を考えましょう。田中太郎さんがいたとします。彼は一個人でありますが、世の中には同姓同名がたくさんおります。田中太郎さんはもしかたら複数人いるかもしれません。その際に同じ住所録に二人の人間を登録すると識別ができなくなります。彼は全く別々の顔しているに違いないし全く別々の人生を歩んでいます。しかも東京都...
2016.3.23 水
Laravel5 (Wordpress) # nonsense .DS_Store .AppleDouble .LSOverride *~ # Laravel vendor/ node_modules/ # Laravel 5 & Lumen specific bootstrap/cache/ storage/ .env.*.php .env.php .env .env.example # Wordpres *.log public/.htaccess public/note/wp-config.php public/note/wp-content/advanced-cache.php public/note/wp-content/backup-db/ public/note/wp-...
2016.3.22 火
SSHとFTP SSH接続はWEB製作なんかに携わっている人でも以外に知らないというか使ったことがないということがあって、一般的に広まってしまったのはFTP接続なのです。実際にシステム関連の仕事をやっているとFTPなんていう接続プロトコルは必要ないです。なくなってしまっても全然差し支えない。でもSSHがなくなってしまうとこれはもう世界のネットワークが死んでしまうという代物というのがSSH接続です。 SSHがFTPと何が違うのかというと、 通信が暗号化される 鍵認証でパスワード認証なんかよりも強力(すぎる) ファイル転送は予備的な機能で、基本はコマンド送信のプロトコル WinSCPなんかでファイルの転送をしている人も多いかと思いますが、あれは内部でSSH接続でSCPコマンドというコピーコマンド...
2016.3.20 日
サーバーサイドでも直接sassが使えないと結構不便ということで、インストールしてみた。 まずはrubyのインストール yum install -y ruby rubygems ruby-devel libffi-devel gcc gem install sass gem install ffi gem install compass これでいいっぽい。くそみたいに時間がかかる。
2016.3.20 日
何も準備なしにいきなり接続したら、 $ ssh sampleuser@example.com Permission denied (publickey). なので接続できるようにする設定です。予めSSHサーバーが構築されていて、sampleuserアカウントがあるという前提での話になります。 SSHのエラーについてはこちらを御覧ください。 秘密鍵と公開鍵の生成 $ ssh-keygen -t rsa -b 4096 -C "hoge@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/sampleuser/.ssh/id_rsa): /Users/sa...
2016.3.18 金
SSL証明書はなんであんなに高価なんですかね。仕事でつかっている限り10万円って全然高くないんですが、これ個人だと結構痛い金額です。SSL証明書取得の手続きも面倒です。 CentOS6でSSLの設定をする CentOS6ってmod_sslがデフォルトで入ってないんですかね。「yum list installed | grep mod_ssl」で確認。入ってないです。 # yum -y install mod_ssl インストールをすると/etc/httpd/conf.dにssl.confという新しいファイルが作成されていますので、これを編集します。 # vi /etc/httd/conf.d/ssl.conf SSL証明書などのパスとSSLを有効にするDocumentRootの設定をする D...
2016.3.11 金
原因がよくわからないのだけどNFSクライアントの設定をしたサーバーを再起動したら起動できなくなってしまった。 .... NFS サービスを起動中: [ OK ] NFS mountd を起動中: [失敗] NFS デーモンを起動中: svc: failed to register nfsdv2 RPC service (errno 110). svc: failed to register nfsaclv2 RPC service (errno 110). nfsd: last server has exited, flushing export cache rpc.nfsd: writing fd to kernel failed: errno 110 (Connection timed ...
2016.3.11 金
https://github.com/github/gitignore Wordpressとかフレームワークとかのignoreファイルとかはここからひっぱってくるととてもいいです。pullばっかり。
2016.3.11 金
rsyncはとても便利です。開発環境の内容を一発で本番環境にアップロードするとかいうときにはとても便利です。Gitでpullするのもいいけどrsyncもいいです。各個人の開発環境からみんなで動作検証とかする開発ステージング環境へ反映するときはGitの方がいいけど、本番とミラーリングしているステージング環境なんかを本番に同期するにはrsyncの方がいい。というのはGitにはディレクトリパーミッションを保持する機能がないのです。rsyncにはあります。 またcronなんかで定期的に同期をとるにもrsyncはとてもいいです。更に双方のディレクトリの差分を事前にとることもできます。これはGitの方が便利かな。 基本的な使い方 rsync -a /from /to ディレクトリを丸ごとコピーする際には...
2016.3.9 水
この時代にsedなんか使っている人がいるんだかいないんだかですが、やっぱり軽くていいです。置換ソフトは数あれど、比較的巨大なファイルも難なく一発置換してくれるのが、sedです。grepなんかと一緒に使ったりします。結構使う頻度多いかもです。Jeditで6MB超のファイルを置換したらフリーズしてしまうのでサーバ上で置換しました。 sed -e s/<置換対象文字列>/<置換語の文字列>/g <置換対象ファイル> <置換後のファイル> 今回はMySQLのDBからダンプしたファイルのURLをすべて置換というので、使いました。 sed -e s/www.example.com/home.example.com/g DB.sql > DB2.sql...
2016.3.9 水
nfsで外部ホストの領域をマウントする方法いろいろです。まずはネットワークでサーバーとクライアントがつながっていることが前提となります。私はVLANの設定を忘れていて手前で四苦八苦していた経験ありです。少なくともSSHで接続できて、それぞれのFWやIP制限などを確認しておきましょう。 現状マウントされているDiskの確認 # df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 30G 2.8G 26G 10% / tmpfs 497M 0 497M 0% /dev/shm none 497M 40K 497M 1% /tmp 192.168.0.2:/var/home/user 296G 1.1G 280G 1% /home...