2013年8月5日月曜日

phpとか %d とか %s とかの話

%dとか、なに
何それ

と言うわけで調べました

sprintf


http://c-brains.jp/blog/wsg/09/12/07-172920.php



//sprintf(フォーマットを定義する文字列, [差し込む変数1, [差し込む変数2 ...]]);

$format = "%sだと%sが%sます。";

$aaaa = '毎日(日)曜日';
$bbbb  = '僕';
$cccc = '喜び';

$message = sprintf($format, $aaaa, $bbbb, $cccc);

echo $message;


ちょっと色味が悪いけど
【出力結果】

毎日(日)曜日だとます。

参考URLにもありますが
$message = "{$weekday}は{$author}が{$blog}っす。";

でも良い。
個人的に下の方が書きやすいんだけど
なんか使い道あるのかな?


そして、このフォーマットを定義する文字列に挿入する変換指定子(%で始まる要素。文字列を差し込む場合は %s となります。

えーと文字列を扱う時には%sにしろってこと?

順番を指定(%の次の1、2という数字)することができる点が、この関数の便利なところです。
%d\1とかで$aaa $bbb $cccを指定できるっぽい


$format = "%1\$sが%2\$sで%4\$sが%3\$sです。";

【1 $aaa  = '';
【2 $bbb = '';
【3 $ccc = '';
【4 $ddd = 'あなた';
                                        1     2       3       4
$message = sprintf($format, $aaa, $bbb, $ccc, $ddd);

【出力結果】
1     2     4          3
あなたです。


ちなみに
                                          4      3      2       1
$message2 = sprintf($format, $ddd ,$ccc ,$bbb , $aaa);

【出力結果】
あなたです。

になった

てことは
sprintfの順番と%1が紐付いてるってことっすね

まあ当然なんですが。
忘れやすいのでメモ



ちなみに
さっきのを%dにすると
$format = "%dだと%dが%dます。";

0だと0が0ます。
になる。



【追加】
%d10進数
%u符号無し10進数
%o符号無し8進数
%x符号無し16進数
%X符号無し16進数(大文字表記)
%e指数形式の浮動小数点
%E%eと同じ(大文字表記)
%f固定小数点形式の浮動小数点
%g%eまたは%fと同じ
%G%eまたは%fと同じ(大文字表記)
%b符号無し2進数
%c指定した文字コードに対応した文字
%s文字列
%p値のポインタ
%n文字数を指定した変数に格納
%%%の文字そのもの(\と同様の使い方)
















2013年5月23日木曜日

iptablesの話



centosをインストールし、httpdをyumしてきました。
外部に向けて公開使用と思ったのですがうまくつながらない。
ポートが開いていない様だ。
何故。。。

色々調べた結果
iptablesが原因なのではないかという予想を立てる。
iptablesを止める
/etc/init.d/iptables stop
するとポートが通る

…うん。完全にそれだね。
/etc/init.d/iptables start
で再び起動し、

vim /etc/sysconfig/iptables

開くと
だいたいこんな感じ
↓はネットから持ってきたやつ
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEP
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited




これにhttpのポートをあけてやる
ついでだからFTPも?

#■↓ HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#■↓ FTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

一応これで良いらしい!
--dport 80 って書いてあるし!
保存して
【restart】

そしてポート確認君で80番ポートを・・・
開かないって言うね。

その後色々試した。
本当に色々試した。
が、分からず。
iptable壊れてるのかなー、再インストールかなーとか思ってたのですが

ずーーーーっとネットで調べて、遊んで調べて、の結果
1つの記事にたどり着きました。

http://g-taki.com/wordpress/web/5883.html

まるっとコピペ

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain INPUTがフィルターの流れ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
つまりこの間に、httpやhttpsといった外部からつなげたいポートを許可する設定を書くって訳だ。



4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
ん?

4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
んん?

reject?
ふむふむ

で、rejectってなに?

http://chidipy.jpn.com/server/iptables/iptables.htm

iptables -A FIREWALL1 -j REJECT --reject-with icmp-host-prohibited   ← 先に許可したポート以外全て不許可にする

んーなるほどね。

で、うちのiptablesは?

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d hogehoge -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEP
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

えーと、【先に】許可したポート以外すべて不許可にするだから。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

後に書かれてるものは不許可?


…てことはさ

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d hogehoge -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
#↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
#↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

こうすれば通るんじゃない?

保存してrestart


確認君で80を確認…通った!!

通った通った!
  ポートが通った!
駄スレも立った!
      \|/
⊂⌒⊃   ― ● ―
  ⊂⊃  /|\
     ⊂⊃  ⊂⊃
/~\へ/~\へヘ/~\
ハ`ハハハハ`ハハ`ハハハハハ`ハハハハ
" """" """ """" """"
∥=∥=∥=∥=∥=∥=∥
" "∧_∧" """ """" "
" (´∀`) "e@@e"""
"⊂  ⊃" (・∀・)_ノ
○(  ノ""とと__つ
"" )_)) "" " "" ""ミ
"" "" ∧∧" """ __
" "" (∀・;) "" | ∥
""" ⊂⊂⌒ヽ"" |_∥
"" プル )) )○∠_/)
"" (( (_(_ノ ))プル◎
||" ""||" ""||" ""||
||二二||二二||二二||



iptables恐るべし

今回参考にしたサイト

http://tech.hitsug.net/?CentOS/iptables

http://g-taki.com/wordpress/web/5883.html

http://chidipy.jpn.com/server/iptables/iptables.htm

http://krakenbeal.blogspot.jp/2012/03/centos62iptables.html

2013年4月22日月曜日

cronのお話


EC2からメールが着たんだけど・・・
You recently reached a limit on the volume of email you were able to send out of SMTP port 25 on your instance:

あなたは最近、あなたのインスタンスでSMTPポート25の外に送信することができましたメールの量の制限に達した:

というメールが来た。

メール出してねえよ!?
とか思って/var/log/maillog   を見たら何かしら送って失敗してる形跡がある
しかもrootに?

色々調べたら、
cronなるものが定期的にメールを送っているらしい
取り急ぎどこぞのサイトを見て

/etc/crontab
を閲覧した結果
#MAILTO=root
というのが記述されていた
とりあえずこいつをコメントアウトしてやることにしる!

http://network.station.ez-net.jp/server/linux/service/crond/mail.asp



上を読んで
ああ、コメントアウトじゃだめなのね

MAILTO=""
コメントアウトじゃだめなんですか。orz

コベンドゥア゛ルドゥジャダベナンディスカ
オンドゥルルラギッタンディスカー!?


…はい、修正した場所です



crontab -u USERNAME -e

crontab -u root -e

/etc/crontab
/etc/anacrontab

以上の3つでMAILTO=""を追加してやった。
次の記事ではcronについて調べたいなー

あ、cron再起動する方法

/etc/init.d/crond stop
/etc/init.d/crond start

これで起動停止できます。


メール、、、来ないといいなぁ。。。

2013年4月5日金曜日

EC2 httdインストール

最初に、
yum list installedで何のパッケージが入っているか調べる。


色々入っているがapache2は無い。

一応、初期状態のyumリストを作成しておく。


yum list installed > yum_list_2013_hogehoge.txt

今回使ったのはリダイレクト >
パイプ処理についてはもっと理解してから書きます。

参考


リダイレクトとは
コマンドの実行結果を次のコマンドに受け渡して実行させる手段。

[tanaka@web1 ~]$ date > home_df.log 
[tanaka@web1 ~]$ df /home >> home_df.log



どちらもやることはhome_df.logに出力すること

>>>の違いは

>
出力先の元の内容を破棄して新しい出力に置き換えるリダイレクト処理によって、前回の出力結果は消去されてしまいます。

>>
「追記のリダイレクト処理」を行うように命令を変更します。
らしい。
1回目以降は>>にすると良いみたいですね。


次、apache インストール



■Apache2.2 yum install
今回は、すべてのパッケージをインストールします
※通常は不必要なパッケージを除いてインストールします。
▼パッケージリストの取得
# yum list | grep httpd
# yum list | grep php
▼Apache2.2のインストール
# yum -y install httpd*
■Apache設定
※念の為、設定ファイルはバックアップをとっておく事
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.def
# vi /etc/httpd/conf/httpd.conf
————————————————–

とりあえずapacheはインストール完了

conffileについては後日



▼起動と停止の方法
/etc/init.d/httpd start

▼自動起動設定
# chkconfig httpd on
# chkconfig –list httpd

debianとの違いは
/etc/init.d/apache2
/etc/init.d/httpd
パッケージ名が違うだけっぽい気がします。
confなどのファイルディレクトリはまだ見てません。



2013年4月4日木曜日

EC2の言語変更


http://blue21.ddo.jp/cloud/aws/aws_ec2/aws_ec2_alinux5.html


本語環境を設定

Amazon Linux の初期状態は、言語環境が "en_US.UTF-8" になっています。



$ cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"

なってます。


$ locale -a | grep ja

grepでjaファイルがあるか確認


ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

ありました。


OSのデフォルトを "ja_JP.utf8" に変更します。編集には root 権限が必要なので sudo を使います。

$ sudo vi /etc/sysconfig/i18n
$ cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"





これでログインし直せば、コマンドのエラーメッセージは日本語表示されます。


日本語のmanページが見たい場合は、以下のように、yum で日本語版をインストールします。


# sudo yum install man-pages-ja

man コマンドはオンラインマニュアルページを表示します.
引数としてコマンド等などの単語を指定することで使い方などの説明が表示されます.


日本語になったのでOK

完了

Amazon EC2

色々あって、centOS環境が欲しくなったのでメモ

最初にうっかりミスってcentOSをマーケットから購入した時にkey pareを設定し忘れてログインできなくなった。
orz

知り合いに聞いたら、Amazon Linux AIMを使えば良い
ベースがcentOSでいらんもの入ってない分色々覚えれるとの事

というわけで早速用意しました。


ええとまずする事
rootのパス


sshでログインすると
login as: root
Authenticating with public key "imported-openssh-key"
Please login as the ec2-user user rather than root user.
と怒られる
rootでログインするなec2-userで入れ、という意味らしい。

早速ec2-userでログインする

sudoがデフォで入っているようなので

$sudo passwd

New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.


一応ユーザーを作っておこう
作業ユーザの作成
rootになって

$adduser hogehoge
$passwd hogehoge
パスワード入力:



公開鍵と秘密鍵の作成

次に公開鍵と秘密鍵を作成します。ホームディレクトリに.sshディレクトを作成して、その中にファイル名 id_rsa として鍵を作成します。

#cd /home/domains #mkdir .ssh #ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /home/domains/.ssh/id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
この二つはただエンターを押してみた



公開鍵が id_rsa.pub、秘密鍵が id_rsa になります。


#chown -R webadmin:webadmin .ssh
#chmod 700 .ssh
#mv .ssh/id_rsa.pub .ssh/authorized_keys
#chmod 600 .ssh/authorized_keys
#mv .ssh/id_rsa /home/ec2-user
#chmod 666 /home/ec2-user/id_rsa

ファイルの所有権、パーミッションを変更して、公開鍵はauthorized_keysに名前を変更します。秘密鍵はクライアントにダウンロードする必要がありますので、ec2-userのホームディレクトに移動させます。

秘密鍵をPuTTYフォーマットに変換


これを行わないとpoderosaで認識してくれなかった。orz
というわけでputtyごった煮をインストール後
Putty鍵作成でkeyをへんかんしてやった
やったった。


して、ssh接続すると・・・成功していたのでありました。


その後、
rootでvisudoして
hoge  ALL=(ALL)       ALL
を追記

次回からhogeでログインすることにする。
完了



2013年3月22日金曜日

FTP インストール

FTPがないのでionqubeの確認もままならん世の中とは。
なのでVSFTPDをインストールします。



EVERノートから引っ張り出してきます。

sudo apt-get install vsftpd


vsftpの設定


設定が完了するまで、vsftpを停止します。
sudo /etc/init.d/vsftpd stop
Stopping FTP server: vsftpd.


匿名ユーザーでのログインは禁止し、サーバーにアカウントのあるユーザーだけがログインできるようにします。
設定ファイルは以下
/etc/vsftpd.conf

sudo vi /etc/vsftpd.conf


修正する内容匿名ユーザーのログインの禁止
anonymous_enable=YES
      ↓
anonymous_enable=NO



サーバーにアカウントのあるユーザーのログインを許可
#local_enable=YES
      ↓
local_enable=YES



アップロードをするので書き込みを許可する
#write_enable=YES
      ↓
write_enable=YES



書き込み時のパーミッションの設定
#local_umask=022
      ↓
local_umask=022



アスキーモードでのアップロードを許可
#ascii_upload_enable=YES
      ↓
ascii_upload_enable=YES


アスキーモードでのダウンロードを許可
#ascii_download_enable=YES
      ↓
ascii_download_enable=YES



ログインユーザーはchroot環境とする(ホームディレクトリより上の階層はアクセス不可)
#chroot_local_user=YES
      ↓
chroot_local_user=YES


chrootlistの指定
#chroot_list_file=/etc/vsftpd.chroot_list
      ↓
chroot_list_file=/etc/vsftpd.chroot_list

ディレクトリ単位の削除を許可
#ls_recurse_enable=YES
      ↓
ls_recurse_enable=YES

追加する内容
userlistをログイン許可リストとする(記載されていないユーザーはログインできない)
userlist_deny=NO

userlistの指定
userlist_file=/etc/vsftpd.user_list

タイムスタンプをローカル時刻とする
use_localtime=YES

パッシブモードを有効にする
pasv_promiscuous=YES


chroot対象外ユーザーの設定ホームディレクトリより上の階層へのアクセスを許可するユーザーのリストファイルを作成します。
# vi /etc/vsftpd.chroot_list

パーミッションを設定します。
sudo chmod 600 /etc/vsftpd.chroot_list
ログイン可能ユーザーの設定ログインを許可するユーザーを設定します。サーバーにアカウントがあっても、このファイルに記載されていないユーザーはログインができません。
sudo vi /etc/vsftpd.user_list

これもパーミッションを設定します。
sudo chmod 600 /etc/vsftpd.user_list


vsftpの起動FTPサーバーを起動します。クライアントマシンからFTPクライアントソフトやFTPコマンドで、接続ができれば完了です。
# /etc/init.d/vsftpd start

確認の為FTP接続

___
/ノ^,  ^ヽ\
/ (・))  (・)) ヽ
/ ⌒(__人__)⌒::: l  < 成功
⊂ ̄ヽ_|   |r┬-|    |
<_ノ_ \   `ー'´    /
ヽ  ̄V ̄ ̄ ⌒,
/____,、ノ /
/    (__/
(  (   (
ヽ__,\_,ヽ
(_/(_/

vsftpd.chroot_list
vsftpd.user_list

二つのファイルを忘れる可能性があるので、大事なファイルなどは別ファイルに置いておく事にしおようと思う。

mkdir /user_mk_file
上のdirに作成、vsftpd.chroot_list vsftpd.user_list
2つのファイルをmvし、
vim /etc/vsftpd.conf

chroot_list_file=/etc/vsftpd.chroot_list
userlist_file=/etc/vsftpd.user_list

のディレクトリを変更

再起動後動くか実験した結果きちんと動いたのでOK

--------------------------------------------------------------------------
さて、整理
vsftpd.user_list
はFTP接続できるユーザを書き込むファイル。
vsftpd.chroot_list
は、自DIRより上に行けるユーザーを書き込むFILEだと認識しています

http://blog.sugulab.com/?p=1635


chroot は「上層ディレクトリにアクセスする権限」ではなく、「上層ディレクトリにアクセスさせない制限」らしい。


chroot_local_user=YES
と追記した場合、「ローカルユーザーは全員 chroot
#上の階層には行けない設定で
尚且つ、
/etc/vsftpd/chroot_list
に書かれているユーザーだけは上層に行ける設定

例:
--------------------------------------------------
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/●●/vsftpd.chroot_list
--------------------------------------------------
としなければならない。
起動しなかったのは
chroot_list_enable=YESが抜けていたからです。




その前に、vsftpd.user_listからアカウントを消して接続したら入れるですけど・・・?もう一度ネットで検索してみる事にする
http://linuxserver.jp/%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89/ftp/vsftpd%E3%81%A7%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90.php


vsftpdで特定のユーザーのFTPサーバーへのアクセスを禁止する場合は、設定ファイルの「userlist_enable」ディレクティブを”YES”に設定します。
そもそも
userlist_deny=ではないっぽい
先に
userlist_enableを設定するみたいです。

例:ブラックリスト方式
*----------------------------------------------------------
userlist_enable=YES
userlist_deny=YES
userlist_file=※ユーザーリストファイルを指定
ユーザリストに書かれたユーザはログインが禁止される。
*----------------------------------------------------------


例:ホワイトリスト方式
*----------------------------------------------------------
userlist_enable=YES
userlist_deny=NO
userlist_file=※ユーザーリストファイルを指定
ユーザリストに書かれたユーザだけがログインできる。
*----------------------------------------------------------

主に使うのはホワイト方式だと思います。

早速試してみます。

成功
そして、chmodeの設定に戻ります。


そして /etc/vsftpd.chroot_list のパスを間違っていた為
♯500could not read chroot()のエラーを出してしまったが、解決し終了
検索で出てきたサイト
http://network.station.ez-net.jp/server/ftp/vsftpd/chroot.asp


お疲れ様でした。




ionCube

ionCubeのインストール



http://temog.info/archives/vps/serversmanvps-php-5-3-3-%E3%81%A7-blueonyx-%E3%82%92%E4%BD%BF%E3%81%86.html





ずっと探してたものを発見

前回ヒストリーを作ったと思ったんだけど失念してました。

ionCubeとは

PHPプログラム)を暗号化するセキュリティソフトです。

ソフトを利用して暗号化されています。プログラムを実行するためには、ionCubeローダーというプログラムが必要になります。

だってさ。

Accelerator(実行速度アップ) と

Encoder(ソース暗号化)の2種類がある





今回入れたいのは正にローダーです。

Acceleratorってすげーな



手順を追って、、、

webから持ってくるのか・・・

まだFTP入れてないんだよね。。。

なのでここはwgetしてみよう。



wgetの使いかたは別の記事で書きますね。

とりあえずなんかあるかわからんので

$ su root -
パスワード:
wget すると普通にhtmlを拾ってくるぞ・・・
だめか・・・

---------------------------------------------------------------------------
http://www.asial.co.jp/ioncube/encoder/install_loaders.php

http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?Ubuntu%2FServer%2FWeb%2FGroupOffice

$ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
$ tar zxvf ioncube_loaders_lin_x86-64.tar.gz
$ sudo mv ioncube /usr/local/
さっくり解凍

PHP5 に IonCube Loader の場所を指定する。
 php -vでバージョンを調べる
PHP 5.3.3-7
 http://www.asial.co.jp/ioncube/encoder/install_loaders.php
これを参考に php.iniの場所を調べる

->/etc/php5/apache2/php.ini
ここに↓を追加 
zend_extension=/usr/local/ioncube/ioncube_loader_lin_<●phpのバージョン●>.so




apacheを再起動して完了っすね。

ionCube

ionCubeのインストール



http://temog.info/archives/vps/serversmanvps-php-5-3-3-%E3%81%A7-blueonyx-%E3%82%92%E4%BD%BF%E3%81%86.html





ずっと探してたものを発見

前回ヒストリーを作ったと思ったんだけど失念してました。

ionCubeとは

PHPプログラム)を暗号化するセキュリティソフトです。

ソフトを利用して暗号化されています。プログラムを実行するためには、ionCubeローダーというプログラムが必要になります。

だってさ。

Accelerator(実行速度アップ) と

Encoder(ソース暗号化)の2種類がある





今回入れたいのは正にローダーです。

Acceleratorってすげーな



手順を追って、、、

webから持ってくるのか・・・

まだFTP入れてないんだよね。。。

なのでここはwgetしてみよう。



wgetの使いかたは別の記事で書きますね。

とりあえずなんかあるかわからんので

$ su root -
パスワード:
wget すると普通にhtmlを拾ってくるぞ・・・
だめか・・・

---------------------------------------------------------------------------
http://www.asial.co.jp/ioncube/encoder/install_loaders.php

http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?Ubuntu%2FServer%2FWeb%2FGroupOffice

$ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
$ tar zxvf ioncube_loaders_lin_x86-64.tar.gz
$ sudo mv ioncube /usr/local/
さっくり解凍

PHP5 に IonCube Loader の場所を指定する。
 php -vでバージョンを調べる
PHP 5.3.3-7
 http://www.asial.co.jp/ioncube/encoder/install_loaders.php
これを参考に php.iniの場所を調べる

->/etc/php5/apache2/php.ini
ここに↓を追加 
zend_extension=/usr/local/ioncube/ioncube_loader_lin_<●phpのバージョン●>.so




apacheを再起動して完了っすね。

2013年3月21日木曜日

php mysql

http://greenleaf.sakuraweb.com/index.php?PHP5%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%20-Debian-


今回の参考
http://nantokaworks.com/?p=756

sudo apt-get install php5
基本ライブラリが入ったのかな?


取得:1 http://ftp.jp.debian.org/debian/ squeeze/main libonig2 i386 5.9.1-1 [134 kB]
取得:2 http://ftp.jp.debian.org/debian/ squeeze/main libqdbm14 i386 1.8.77-4 [147 kB]
取得:3 http://ftp.jp.debian.org/debian/ squeeze/main php5-suhosin i386 0.9.32.1-1 [80.8 kB]
取得:4 http://security.debian.org/ squeeze/updates/main apache2-mpm-prefork i386 2.2.16-6+squeeze11 [2,292 B]
取得:5 http://security.debian.org/ squeeze/updates/main php5-common i386 5.3.3-7+squeeze15 [548 kB]
取得:6 http://security.debian.org/ squeeze/updates/main libapache2-mod-php5 i386 5.3.3-7+squeeze15 [2,890 kB]
取得:7 http://security.debian.org/ squeeze/updates/main php5 all 5.3.3-7+squeeze15 [1,058 B]
取得:8 http://security.debian.org/ squeeze/updates/main php5-cli i386 5.3.3-7+squeeze15 [2,859 kB]
6,663 kB を 23秒 で取得しました (287 kB/s)                                    
dpkg: apache2-mpm-worker: 依存関係に問題があります。しかし要求に従い削除しています:
 apache2 は以下に依存 (depends) します: apache2-mpm-worker (= 2.2.16-6+squeeze11) | apache2-mpm-prefork (= 2.2.16-6+squeeze11) | apache2-mpm-event (= 2.2.16-6+squeeze11) | apache2-mpm-itk (= 2.2.16-6+squeeze11) ...しかし:
  パッケージ apache2-mpm-worker は削除されようとしています。
  パッケージ apache2-mpm-prefork はまだインストールされていません。
  パッケージ apache2-mpm-event はまだインストールされていません。
  パッケージ apache2-mpm-itk はまだインストールされていません。
(データベースを読み込んでいます ... 現在 29491 個のファイルとディレクトリがインストールされています。)
apache2-mpm-worker を削除しています ...
Stopping web server: apache2[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost *:ポート番号 has no VirtualHosts
 ... waiting .
未選択パッケージ apache2-mpm-prefork を選択しています。
(データベースを読み込んでいます ... 現在 29486 個のファイルとディレクトリがインストールされています。)
(.../apache2-mpm-prefork_2.2.16-6+squeeze11_i386.deb から) apache2-mpm-prefork を展開しています...
apache2-mpm-prefork (2.2.16-6+squeeze11) を設定しています ...
Starting web server: apache2[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost *:ポート番号 has no VirtualHosts
.
未選択パッケージ libonig2 を選択しています。
(データベースを読み込んでいます ... 現在 29491 個のファイルとディレクトリがインストールされています。)
(.../libonig2_5.9.1-1_i386.deb から) libonig2 を展開しています...
未選択パッケージ libqdbm14 を選択しています。
(.../libqdbm14_1.8.77-4_i386.deb から) libqdbm14 を展開しています...
未選択パッケージ php5-common を選択しています。
(.../php5-common_5.3.3-7+squeeze15_i386.deb から) php5-common を展開しています...
未選択パッケージ libapache2-mod-php5 を選択しています。
(.../libapache2-mod-php5_5.3.3-7+squeeze15_i386.deb から) libapache2-mod-php5 を展開しています...
未選択パッケージ php5 を選択しています。
(.../php5_5.3.3-7+squeeze15_all.deb から) php5 を展開しています...
未選択パッケージ php5-cli を選択しています。
(.../php5-cli_5.3.3-7+squeeze15_i386.deb から) php5-cli を展開しています...
未選択パッケージ php5-suhosin を選択しています。
(.../php5-suhosin_0.9.32.1-1_i386.deb から) php5-suhosin を展開しています...
man-db のトリガを処理しています ...
libonig2 (5.9.1-1) を設定しています ...
libqdbm14 (1.8.77-4) を設定しています ...
php5-common (5.3.3-7+squeeze15) を設定しています ...
libapache2-mod-php5 (5.3.3-7+squeeze15) を設定しています ...

Creating config file /etc/php5/apache2/php.ini with new version
Reloading web server config: apache2[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21  2013] [warn] NameVirtualHost *:ポート番号 has no VirtualHosts
.
php5 (5.3.3-7+squeeze15) を設定しています ...
php5-cli (5.3.3-7+squeeze15) を設定しています ...

Creating config file /etc/php5/cli/php.ini with new version
update-alternatives: /usr/bin/php (php) を提供するために 自動モード で /usr/bin/php5 を使います。
php5-suhosin (0.9.32.1-1) を設定しています ...
*---------------------------------------------------------------------


■apacheを再起動
sudo /etc/init.d/apache2 restart

再起動したら確認
sudo vim /var/www/test_jp/index.php

確認したらファイルは削除しておく。
*---------------------------------------------------------------------


MYSQLのインストール
sudo apt-get install mysql-server

Restarting web server: apache2
[Thu Mar 21 2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21 2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21 2013] [warn] NameVirtualHost *:ポート番号 has no VirtualHosts
 ... waiting [Thu Mar 21 2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no VirtualHosts
[Thu Mar 21 2013] [warn] NameVirtualHost ***.***.***.***:ポート番号 has no Virtual(.../libnet-daemon-perl_0.43-1_all.deb から) libnet-daemon-perl を展開しています...
未選択パッケージ libplrpc-perl を選択しています。
(.../libplrpc-perl_0.2020-2_all.deb から) libplrpc-perl を展開しています...
未選択パッケージ libdbi-perl を選択しています。
(.../libdbi-perl_1.612-1_i386.deb から) libdbi-perl を展開しています...
未選択パッケージ libmysqlclient16 を選択しています。
(.../libmysqlclient16_5.1.66-0+squeeze1_i386.deb から) libmysqlclient16 を展開しています...
未選択パッケージ libdbd-mysql-perl を選択しています。
(.../libdbd-mysql-perl_4.016-1_i386.deb から) libdbd-mysql-perl を展開しています...
未選択パッケージ mysql-client-5.1 を選択しています。
(.../mysql-client-5.1_5.1.66-0+squeeze1_i386.deb から) mysql-client-5.1 を展開しています...
未選択パッケージ mysql-server-core-5.1 を選択しています。
(.../mysql-server-core-5.1_5.1.66-0+squeeze1_i386.deb から) mysql-server-core-5.1 を展開しています...
man-db のトリガを処理しています ...
mysql-common (5.1.66-0+squeeze1) を設定しています ...
未選択パッケージ mysql-server-5.1 を選択しています。
(データベースを読み込んでいます ... 現在 29941 個のファイルとディレクトリがインストールされています。)
(.../mysql-server-5.1_5.1.66-0+squeeze1_i386.deb から) mysql-server-5.1 を展開しています...
未選択パッケージ libhtml-template-perl を選択しています。
(.../libhtml-template-perl_2.9-2_all.deb から) libhtml-template-perl を展開しています...
未選択パッケージ mysql-server を選択しています。
(.../mysql-server_5.1.66-0+squeeze1_all.deb から) mysql-server を展開しています...
man-db のトリガを処理しています ...
libnet-daemon-perl (0.43-1) を設定しています ...
libplrpc-perl (0.2020-2) を設定しています ...
libdbi-perl (1.612-1) を設定しています ...
libmysqlclient16 (5.1.66-0+squeeze1) を設定しています ...
libdbd-mysql-perl (4.016-1) を設定しています ...
mysql-client-5.1 (5.1.66-0+squeeze1) を設定しています ...
mysql-server-core-5.1 (5.1.66-0+squeeze1) を設定しています ...
mysql-server-5.1 (5.1.66-0+squeeze1) を設定しています ...
Stopping MySQL database server: mysqld.
130321 [Note] Plugin 'FEDERATED' is disabled.
130321  InnoDB: Initializing buffer pool, size = 8.0M
130321  InnoDB: Completed initialization of buffer pool
130321  InnoDB: Started; log sequence number 0 44233
130321  InnoDB: Starting shutdown...
130321 14:45:43  InnoDB: Shutdown completed; log sequence number 0 44233
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
libhtml-template-perl (2.9-2) を設定しています ...
mysql-server (5.1.66-0+squeeze1) を設定しています ...
*-------------------------------------------------------------


MYSQL再起動
/etc/init.d/mysql restart
apacheの再起動
/etc/init.d/apache2 restart

特に設定することがないまま終了。
いずれ必要になるのかな?

2013年3月20日水曜日

apache2 その3

 _| ̄|_    //ヽ\
 |      '|/ / ノ  "´ ̄ ̄''''‐-...ノヽ
 |__|'' ̄!  !    /            丶 |
   ,‐´ .ノ''   /  ,ィ             \
   ヽ-''"   7_//         _/^ 、 `、
┌───┐  /          / 、_(o)_,;j ヽ|
|┌─,  .|  /.           -   =-{_(o)
└┘ ノ ノ   |/        ,r' / ̄''''‐-..,>
   //   {         i' i    _   `ヽ
          ̄フ       i' l  r' ,..二''ァ ,ノ
   n      / 彡       l  /''"´ 〈/ /
   ll     _ > .  彡    ;: |  !    i {
   l|       \ l 彡l     ;. l |     | !
   |l      トー-.   !.    ; |. | ,. -、,...、| :l
   ll     |彡     l    ; l i   i  | l
   ll     iヾ 彡     l   ;: l |  { j {
   |l     { 彡|.      ゝ  ;:i' `''''ー‐-' }
. n. n. n  l 彡   ::.   \ ヽ、__     ノ
  |!  |!  |!   l彡|    ::.     `ー-`ニ''ブ
  o  o  o   l      :.         |


上手くいかない・・・
2個とも同じものを見てしまう・・・

NameVirtualHost ●.●.●:80
<VirtualHost *:80>
ServerAdmin info@test.jp
ServerName test.jp
DocumentRoot /var/www/tests

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/tests/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>



NameVirtualHost ●.●.●.●:81

ServerAdmin info@hogehoge.co.jp
ServerName hogehoge.co.jp
DocumentRoot /var/www/hogehoge

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

何が問題なんだろう。。。
http://pokotsun.mydns.jp/?p=770

新しい記事を読み込む
一旦hogehoge.o.jpの方を解除
test.jpを残し、編集


結果、自分の頭がどうかしてた。


そもそもの考え方がイカンかった。


NameVirtualHost 27.96.63.134:80
<VirtualHost *:80>
ServerAdmin info@hogehoge.co.jp
ServerName hogehoge.co.jp
DocumentRoot /var/www/hogehoge_co
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/hogehoge_co/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
/span>
ErrorLog ${APACHE_LOG_DIR}/hogehoge_co_error.log
/span>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
/span>
CustomLog ${APACHE_LOG_DIR}/hogehoge_co_access.log combined
</VirtualHost>

<VirtualHost *:80>
ServerAdmin info@test.co.jp
ServerName test.co.jp
DocumentRoot /var/www/test_co

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test_co/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/test_co_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/test_co_net_access.log combined
</VirtualHost>


今回書いたのがこれ
今まで、NAMEベースって言うのはポートでどのサイトかを判別していると思ってたけど <VirtualHost *:80>


<VirtualHost *:81>

どうも違うのね
振り分けてるのはServerName hogehoge.co.jp
これだと判断する。
今度はここを双方のドメインにしつつポートを揃えて、なおかつ設定ファイル。この場合は/sites-available/test.jpファイル1枚で作成してみた。
結果、

                      /
                    /
                       ` ー
                       _,.>
                      r "
     うごいた!        \    _
                         _ r-''ニl::::/,ニ二 ーー-- __
                     .,/: :// o l !/ /o l.}: : : : : : :`:ヽ 、
                   /:,.-ーl { ゙-"ノノl l. ゙ ‐゙ノノ,,,_: : : : : : : : : :ヽ、
               __l>ゝ、,,ヽ /;;;;;;;;;;リ゙‐'ー=" _゛ =、: : : : : : : :ヽ、
              /  _________`゙ `'-- ヾ_____--⌒     `-: : : : : : : :
...-''"│    ∧  .ヽ.  ________   /   ____ ---‐‐‐ーー    \: : : : :
    !   /   .ヽ  ゙,ゝ、      /  ________rー''" ̄''ー、    `、: : :
    .l./     V   `'''ー-、__/__r-‐''"゛     ̄ ̄   \   ゙l: : :
                   l     .,.. -、、 _ ‐''''''''-、    l   !: :
                  |   /    .| .!     `'、  |   l: :
                      l   |     .l,,ノ     |  !   !: :
                       / '゙‐'''''ヽ、 .,,,.. -''''''''^^'''-、/  l   !: :
             r―- ..__l___    `´            l   /   /: :
                \      `゙^''''''―- ..______/_/   /: : :
                `


チクショウ、チクショウorz


------------------------------------------------------------------------------
続き

1枚の設定ふぁいるで動いたので

今度は再び2枚に戻す

ファイルを作り sudo a2ensite hogehoe
で設定ファイルのシンボリックを貼る。

sudo /etc/init.d/apache2 restart
でアパッチを再起動

問題なく分けられてる!!!!



以上で設定を完了します。


いずれNAMEベースのデメリットとかも勉強していこうと思う。

http://uturo1.nevernothing.jp/apache2namebase/


2013年3月19日火曜日

apache2 その2

前回の記事を元に
sites-available
sites-enabled
を編集していけば良い事が分かった。

なので~
今回はバーチャルホストの設定に進んでみることにする。

今回参考にするサイト一覧

http://d.hatena.ne.jp/UDONCHAN/20101027/1288155504
http://linuxer.seesaa.net/article/41624641.html

http://sj6.org/apache2%E3%81%AE%E7%90%86%E8%A7%A3%E3%82%92%E6%B7%B1%E3%82%81%E3%82%8B/

http://www.infra.jp/debian/apache2_ab.html
http://hishou.ddo.jp/modules/pico/index.php?content_id=19



まずはsites-available
サイト定義ファイルが置かれるディレクトリに置かれているdefaultをバックアップ
sudo cp default default_2013_03_18
その後編集するファイルをコピー
sudo cp default domain_s
以降domain_sを変更していく事にする。
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
以下説明
NameVirtualHost
ネームベースのバーチャルホスト (一つの IP アドレスに複数のウェブサイト)を設定したいときに必要となるもの
そんなときはIPを指定するのですが、現在は*でOK。
つまり、192.168.100.999:80 みたいにして書くのかしら。

<virtualhost>~</virtualhost>
特定のバーチャルホストに対してのみ適用されるディレクティブ群を括るためのもの
バーチャルホストを設定する場合は*の部分にIPアドレスを入力しますが、
こちらも*でOK。
他にこの階層に記述してあるものを見てみます。

---------------------------------------------------------------------------------
以下サイトに記載されていたもの
ServerAdmin webmaster@localhost
    -->管理者のメールアドレスです。
DocumentRoot /var/www/
    -->ドキュメントルートの場所です。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
-->対象ディレクトリに mod_cgi の cgi-script ハンドラで処理される CGI スクリプトがある場合、ドキュメントを ローカルファイルシステムの DocumentRoot 以外の場所に保管することができます。
この場合は、/cgi-bin/ ディレクトリから処理対象CGIが呼び出された場合、/usr/local/cgi_bin ディレクトリにあるファイルが呼び出されます。

うん、意味不明・・・

ErrorLog /var/log/apache2/error.log
    -->サーバがエラーログを収集する場所を指定しています。
LogLevel warn
-->ログに記録するメッセージのレベルを設定します。

emerg,alert,crit,error,warn,notice,info,debugの8種で、運用時はnotice,warn、テスト時はinfo,debugを指定することが多い。
CustomLog /var/log/apache2/access.log combined
-->サーバへのリクエストログを収集する場所を指定します。

2番目の引数はログの書式で、よく使われるものは以下のとおり。

Common Log Format (CLF)
    "%h %l %u %t \"%r\" %>s %b"
バーチャルホスト付き Common Log Format
    "%v %h %l %u %t \"%r\" %>s %b"
NCSA extended/combined ログ書式
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
Referer ログ書式
    "%{Referer}i -> %U"
Agent (ブラウザ) ログ書式
    "%{User-agent}i"

ServerSignature On
-->サーバが生成するドキュメントに付与するフッタの設定で、on|Off|Emailがあり、
OnにするとServerNameに書かれた行を追加し、EmailはさらにServerAdminを追加します。
Alias /doc/ "/usr/share/doc/"
-->ドキュメントを ローカルファイルシステムの DocumentRoot 以外の場所に保管することができます。
この場合は、/doc/ ディレクトリからファイルが呼び出された場合、/usr/share/doc/ ディレクトリにあるファイルが呼び出されます。

あとは、ServerNameを追加します。
ServerName
-->サーバが自分自身を示すホスト名とポートです。例えば、www.example.com:80のように設定します。

ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
    #FollowSymlinks:ディレクトリ内でシンボリックリンクをたどれるようなる

AllowOverride None
    #.htaccess で許可されるディレクティブの種類を設定します。以下のキーワードから設定します。
        ALL:.htaccessの全てのディレクティブを許可
        None:.htaccessが無効
        AuthConfig:認証に関するディレクティブの使用を許可
        FileInfo:ドキュメントタイプを制御するためのディレクティブの使用を許可
        Indexes:ディレクトリインデックスを制御するためのディレクティブの使用を許可
        Limit:ホストへのアクセス制御を行うためのディレクティブの使用を許可
        Options:特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可
 




Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
    #サーバのある領域にアクセスできるホストを制御します。
        設定できる値は、ドメイン(とその一部)やIPアドレス
        (とその一部)、ネットワーク/ネットマスク の対、ネットワーク/nnn CIDR 指定が設定できます。
        例> Allow from 10.1.2.3

#Deny
#Allowと同様の形式でアクセスを拒否するホストを制御します。


       


        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny

    #デフォルトのアクセス可能な状態と、Allow と Deny が評価される順番を制御します。
    #Deny,Allow:Denyが Allowの前に評価。アクセスはデフォルトで許可。
    #Allow,Deny:AllowがDenyの前に評価。アクセスはデフォルトで拒否。
    #Mutual-failure:Allow,Denyと同様で、非推奨設定。



Allow from all
       


        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined




混乱してきた。
とりあえず設定を反映させてみよう 
----------------------------------------------------------------

はい、だめー。。。

後半へ続く

2013年3月18日月曜日

apache2

apache2インストール

sudo apt-get install apache2

Apache2の設定ファイルとしては、/etc/apache2/apache2.confが元の設定ファイルとなります。この設定ファイル内の中で、以下の記述がありました。
Debianのapache2は独自ルール
設定ファイルは
/etc/apache2/apache2.conf
基本設定
/etc/apache2/ports.conf
ポート設定
使用するポートをこのファイルに設定します。一般的な80番とか443番とかを設定します。
/etc/apache2/mods-available/
モジュールファイルが置かれるディレクトリ
このディレクトリには、モジュール設定ファイルが置かれています。モジュール定義ファイルは、2種類(xxxx.load、xxxxx.conf)が存在します。 loadファイルは、モジュールの取り込みの設定が、confファイルには、モジュールの設定について書かれています。設定を反映させるために は、「a2enmod ファイル名(拡張子は付けない)」実行する必要があります。また、設定を取り消すには、「a2dismod ファイル名(拡張子は付けない)」を実行します。
/etc/apache2/mods-enabled/
使用するモジュールへのリンクファイルが置かれるディレクトリ
このディレクトリ内には、ファイルは存在しません。「/etc/apache2/mods-available/」内のモジュール定義ファイルのシンボ リックリンクが存在するだけです。このディレクトリにシンボリックリンクがあるモジュールのみ有効となります。前述の「a2enmod」 「a2dismod」の実行でシンボリックリンクの作成や削除が実行されます。
/etc/apache2/conf.d/」内のファイル
このディレクトリ内のファイルについては、置かれたファイルの内容が設定に追加されます。
使用目的としては、Debianのパッケージが使用しているようです。
apache-docなどのパッケージをインストールすると、それらに対応したApacheの設定ファイルが置かれるようです。
/etc/apache2/sites-available/
サイト定義ファイルが置かれるディレクトリ
サイト定義ファイルの保存場所です。サイト定義ファイルとは、NameベースやIPベースのバーチャルホストの使用を前提としたサイトごとの定義ファイルです。 このディレクトリにファイルを置くだけでは、設定は、変わりません。設定を反映するには、「a2ensite ファイル名」を実行する必要があります。また、設定を取り消すには、「a2dissite ファイル名」を実行します。
/etc/apache2/sites-enabled/
使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ
 このディレクトリ内には、ファイルは存在しません。「/etc/apache2/sites-available/」内のサイト定義ファイルのシンボリッ クリンクが存在するだけです。このディレクトリにシンボリックリンクがあるサイトのみ有効となります。前述の「a2ensite」「a2dissite」 の実行でシンボリックリンクの作成や削除が実行されます。

■参考
http://www.uetyi.mydns.jp/wordpress/apache-setting/entry-146.html


<<参考>>
http://server.riopi.net/apache-1.html


/etc/apache2/apache2.conf
User www-data
Group www-data

設定を確認し,必要であれば独自のユーザ名・グループ名に変更します.
ただし,たとえ変更するにしても,rootやログインユーザのアカウントに設定することは避けるべき
万が一,悪意ある攻撃等によりサーバへ侵入された場合,システム全体を乗っ取られる可能性も考えられるため
ここは怖いので確認だけして放置

■ざっくり説明

availableとかenabledって?
sites-availableの方に設定自体を書き込む
有効化したいものだけsites-enabledの方にシンボリックリンクする。
設定ファイルと、その設定の有効無効を分離している。
つまりsites-enabledのシンボリックをはずすと設定ファイルは残るけど、機能が効かなくなる。
という、便利だけど微妙に使いどころに困る設定。
慣れるとこっちの方が良いのかもしらん。

2013年3月14日木曜日

iptables2

http://blog.infinity-es.com/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps%E3%81%AB%E3%82%88%E3%82%8B%E3%80%80%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%85%A5%E9%96%807-iptables%E8%A8%AD%E5%AE%9A%E3%80%80/


↑そもそもiptableとはなんぞやってことから




http://www.turbolinux.co.jp/products/server/11s/user_guide/iptablesboot.html
今回の参考

iptablesってのは再起動すると消える
それを保存?する為に今回の作業が必要らしい。

それとこれ
http://d.hatena.ne.jp/mercysluck/20120211/p1
http://d.hatena.ne.jp/mercysluck/20121212


どうすればいいんだ( ̄Д ̄;)

とりあえず
/etc/iptables/rules.v4
/etc/iptables/rules.v6
を採用
と思ったらファイルが無いって言う
これはブログの人が作ったやつ?だと思うので



http://jitsu102.hatenablog.com/entry/2012/04/29/062417

こっちを採用

chkconfig iptables on
こっちを打ってもコマンドは見つかりませんって言われるので・・・



とりあえずiptables-persistentをインストール
aptitude install iptables-persistent

まずバックアップ
sudo cp rules rules_bk
■ルールの設定ファイルを作成
sudo vi /etc/iptables/iptables.rules

前回適用した設定を流し込み
sudo iptables-save > /etc/iptables/rules

そして戻してみる

# iptables-restore < /etc/iptables/iptables.rules

ファイル名が違うので正しくは

# iptables-restore < /etc/iptables/rules
確認として
iptables -L





一度リセットしてみる
iptables -F

すると
iptables -L
===============================================================
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
===============================================================

そしてもう一度
iptables-restore < /etc/iptables/rules

iptables -L
===============================================================
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:smtp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp-data
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:20
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:fsp

===============================================================
ちゃんと入ってる。
バラスィー

ルールを/etc/iptables/rulesに反映させて、iptables-persistentを起動します。

# iptables-save > /etc/iptables/rules←さっきと同じことを・・・
# /etc/init.d/iptables-persistent start

iptables-persistentは起動時に/etc/iptables/rulesを適用してくれるらしい。
スバラスィー


http://jitsu102.hatenablog.com/entry/2012/04/29/062417
今回の参考

iptables

<<参考>>
http://homeserver.seesaa.net/article/5049375.html


外からターミナルをつなぐ為に後日設定しよう
http://yakinikunotare.boo.jp/orebase/index.php?Linux%2F%A5%D5%A5%A1%A5%A4%A5%A2%A1%BC%A5%A6%A5%A9%A1%BC%A5%EB%A4%CE%C0%DF%C4%EA


結果
#■設定確認

sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source      destination

Chain FORWARD (policy ACCEPT)
target     prot opt source      destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source      destination

-------------------------------------------------------------------
説明
Chain INPUT (Policy ACCEPT)
target  prot opt source     destination
Chain FORWARD (Policy ACCEPT)
target  prot opt source     destination
Chain OUTPUT (Policy ACCEPT)
target  prot opt source     destination

・Chain INPUT:入ってくるパケットの設定
・Chain FORWARD:転送するパケットの設定
・Chain OUTPUT:出ていくパケットの設定
Policy ACCEPT となっておりデフォルトでは全て許可されています。


-------------------------------------------------------------------
まったく同じ(゚◇゚;)mgd?
何も設定してないから当たり前だよね。。。






sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 21 -j ACCEPT
#■↓追加した結果

========================================================================
Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
========================================================================


#■WEB(80ポート) /WEBサーバーへの通過を許可
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 80 -j ACCEPT
↓追加した結果
========================================================================
Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
========================================================================

POP(110ポート) /受信メールの許可
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 110 -j ACCEPT
↓■追加した結果
========================================================================
Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:pop3
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
========================================================================


SMTP(25ポート) /送信メールの許可
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 25 -j ACCEPT



Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:smtp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination       

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      




■FTP用
sudo iptables -A OUTPUT -p tcp -m state --state NEW --dport 20 -j ACCEPT
sudo iptables -A OUTPUT -p udp -m state --state NEW --dport 20 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
sudo iptables -A OUTPUT -p udp -m state --state NEW --dport 21 -j ACCEPT


■結果
-L は一覧で, -nはIPアドレスから,DNSで逆引きしない設定。なくても良いがあれば表示が速くなる
sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:25

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination       

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination       
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:20
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:21


この状態だと最初全開放してるっぽいので意味が無いんじゃないかとか思ってみる。。。( ゚д゚)ポカーン

"-A"はappendの略で追加のoptionコマンドです。設定したルールを削除する場合は"-A"の部分を"-D"(delete)にします。



■追記
http://murayama.hatenablog.com/entry/20100206/1265444193

iptablesの初期化

iptables --flushコマンドを実行します。

[root@localhost ~]# iptables --flush

iptables --listの実行結果から設定情報が初期化されたのがわかります。



http://sato-si.at.webry.info/200703/article_2.html
ルールのクリアー
iptables -F

接続があったとき,全て受け付ける
iptables -P INPUT ACCEPT

ルーター用のものなので,受け付けない
iptables -P FORWARD DROP

こちらから,他のサーバへの接続をするのは,全て受け付ける
iptables -P OUTPUT ACCEPT

無効なときの設定を保存
/etc/init.d/iptables save inactive
■結果
/etc/init.d/iptables: そのようなファイルやディレクトリはありません
効かない・・・だと?


続く