Category "Apache"を表示しています。
2016.9.7 水
というこのタイトルはちょっと抽象度に欠けていて、本来は任意のプリケーションを任意の拡張子で実行するというものです。 index.aspxにアクセスするとこのファイルにかかれているphpが実行されるというものです。 .htaccessかhttpd.confみたいなファイルに以下を書きます。 AddHandler application/x-httpd-php .php .aspx 拡張子がhtmlの方が検索順位が有利になる的な話がそうとう昔にありましたが、そのときによくやっていた感じです。
2016.9.6 火
ネットワーク負荷・サーバー負荷に関してはかなり専門的分野だったり、エンジニアさん専門のコテコテ技術だったりするのでありまして、Web制作をしているクリエイターといえどもレンタルサーバーなんかの場合だと負荷分散っていってもゴリゴリと専門的な技術でもってカスタマイズする機会は殆どできないわけで、結局これらの技術は一般的に必要に迫られることは殆どないわけですが、ここではレンタルサーバーでも何とか負荷分散できる技術を二つ紹介します。前提としては.htaccessファイルが使えることと、独自ドメインの設定をしていて、DNSサーバーでゾーンファイルなどの設定変更が行えるというのが前提になります。ゾーンファイルを直接編集できなくても一部だけWEBページ上から編集可能であったりすることでもできたり、条件はい...
2016.9.5 月
Macの場合はTranmitなどを使っているとS3の接続は簡単にできるのですが、Windowsの場合は別途クライアントソフトを用意しないとダメです。というか何かもっと別の方法ありましたら教えて下さい。S3のクライアントソフトは以下のようなものがあります。 Gladinet DragonDisk CloudBerry Cyberduck CloudBerryのダウンロードと設定 とりあえずCloudBerryがよさそうなので使ってみます。無償版と有償版がありますが今のところ無償版で充分だと思います。 http://www.cloudberrylab.com/download-thanks.aspx?prod=cbes3free ダウンロードしたらActiveCodeなるものがブラウザーに表示さ...
2016.8.20 土
1秒間に15万アクセスの事案発生 PVから計算する というとバルス祭りよりも大きい爆弾的瞬間アクセス数になります。瞬間アクセス数でいうとLine広告もすごい。瞬間アクセス数万規模になります。たかがそこらのHomeページがそういったアクセス数を叩き出すことはまずありえないというのが実情で、実際はウソでした。Googleアナリティクスのリアルタイム計測で100,000以上の数字が見えている!っていうだけで、特にそれ以外になにものでもないというわけでした。 よくよくエンジニアに聞いてみると、 100,000PV/h たいしたこっちゃない。 なので、一秒間の瞬間風速を計算すると、 ≒ 1,666/m ≒ 27/s 1秒間のアクセス数は27です。普通です。ロリポップでもさばける。(かも。)webサーバ...
2016.8.18 木
SSH経由でscpコマンドを実行するには、ログインしてscpを実行する方法と、SSHの鍵にパスワードをかけないで自動的にログインしてscpを実行する方法があります。前者は作業者が手動で行う時、またはセキュリティー上そうしなければならない時に行います。後者はscpでファイルを転送するホストがLAN内にあるとかセキュリティー上パスワードを設定しなくてもいい場合にcronなどで自動的にバックアップを行う時などに便利です。いろいろ使いどころはあるのでいずれにしろ両方覚えておいた方がいいです。 前者はscpのコピー元からコピー先のホストにSSHでログインできる必要があります。公開鍵の設定などを事前に済ませておかなくてはなりません。SSHの接続の準備をしておきます。後者は同様に鍵の設定をしますが、鍵生成...
2016.8.18 木
圧縮とかアーカイブとか紛らわしい言葉がいっぱいありまして、圧縮=アーカイブみたいなことに世間ではなっていますが、本来は全然違います。圧縮はアーカイブでもないし、アーカイブは圧縮ではありません。それはなぜかというと、アーカイブはバラバラのファイルを1つの書庫にまとめることをさしています。これは、もうただ単に1つにまとめることで、複数のバラバラのファイルを1つにして持ち運びしやすくするだけのものです。開発中のログ関連を1つにまとめておいて、後からデバックしやすくするとか。アーカイブされたものは後からバラバラにすることもできます。 圧縮は、その名の通り圧縮してファイルサイズを本当に小さくしてしまいます。これはアーカイブとは全然関係ありません。1つのファイルを対象にもできるし、複数のファイルを対象に...
2016.8.15 月
WordPressとかSymfonyは軒並みルーティングしてしまうので普通にファイルを置こうと思うとちょっと困るのでそういうときは特定のディレクトリだけRewriteの除外をするのがよいです。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !^/poipoi/(.*)$ ←これ追加 RewriteRule . /in...
2016.8.15 月
mod rewriteは結構奥が深いです。通所のリダイレクト処理であるならばそれほどでもないのですが、深まれば底なしです。mod rewriteが通常のリダイレクトと違うのはApacheサイドの作業なのでURLを保持したままリダイレクトするということです。実際のファイルの階層構造では行ったり来たり、ジャンプしたり、端折ったり、無視したり…といろいろやっていますが、URL上では酷くクールに見えるというわけです。 mod rewriteの機能の特徴的な部分は、 あたかもマルチドメイン的な振る舞いをする。(あたかもではなく、そのままマルチドメインになるわけですが…) 動的なファイルをHTMLファイルなどに見せかけることができる。 ファイルやディレクトリ以外でもApacheの...
2016.8.15 月
ポートで判別する ポート80で来た場合はhttpsにリダイレクト RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] ポート8443に来た場合はhttpにリダイレクト RewriteEngine on RewriteCond %{SERVER_PORT} 8443 RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] SSLアクセラレーター(LB配下の場合とか) LBなどで冗長化されている場合は、リダイレクトループになったりしてかなりひどい目に合いました。 LBの機能に...
2016.8.9 火
こういう形式でURLをつくってあげると、ユーザー名、パスワードを入力しなくとも認証できます。 URL: http://example.com/hoge/huga/ username: USERNAME password: PASSOWRD の場合、 http://USERNAME:PASSOWRD@example.com/hoge/huga/ とはいえ、これ平文で流れるのでSSL配下でやった方がいいですね。ほんとうは。 いろいろ使いどころはあると思うのですが、認証のゆるい画像の直リン防止やそういうのかな。
2016.8.4 木
findでファイル名を検索 findはファイル名を検索します。ほんとにごく頻繁に使う便利なコマンドです。ディレクトリとファイル名を指定して検索しますが、例によってfind / -name “*”こういうコマンドはナンセンスです。検索したいディレクトリに移動してその下位ディレクトリを再帰的に検索するのかベターかと思います。 $ find . -name "*.html" ファイル数を数える ファイル数を数えるコマンドとかあったかもわからないけど、面倒なので書きだして行数数える。diffとる時なんかはこうやって書き出して比べてみるといいです。余分なファイルとか足りないファイルがあったりなかったり。 $ find . -name "*.html" &gt; html...
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/ https://saba.omnioo.com/ ファイル(じゃなくてURLかな)をリダイレクトする # Redirect Redirect permanent /hoge/huga.html https://saba.omnioo.com/hoge.html htmlでリダイレクト なんらかのメッセージを出した後にリダイレクトさせる場合はhtmlでもやれます。秒数をcontent内で指定してあげます。 <html> &l...
2016.6.3 金
すべてのPCはLinuxになってほしいです。 なんか変なソフトいっぱいインストールするよりコマンドでやったほうがいいです。 ファイルをzipにする $ zip test.zip test.txt ディレクトリをzipにする $ zip -r test.zip ./test パスワード付きのzipにする カレントディレクトリでやらないとフォルダーが階層になって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...