2009年3月29日日曜日

hosts.deny hosts.allow

vi /etc/hosts.deny
ALL:ALL
*全て拒否した上で

vi /etc/hosts.allow
ALL:127.0.0.1
ALL:.xxx.ocn.ne.jp
*上記IPとリモートホストを許可

SSHだけだったら
sshd:

SSH&FTPだったら
ALL:

2009年3月18日水曜日

ディレクトリのファイルサイズ

# du -s -m /var/www

www以下の総容量をM(メガ)で表示

2009年3月17日火曜日

sarのインストール

# yum install -y sysstat

sar 1日の履歴出力

sar 1 3 ←1秒おきに3回出力

logファイルを毎日ローテに変更

# vi /etc/logrotate.d/httpd
/var/log/httpd/*log {
daily #毎日ローテ追加
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null true
endscript
}





 # vi /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
   daily #毎日ローテ追加
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

logファイルを空にする

cp /dev/null access_log
cp /dev/null error_log

2009年3月16日月曜日

viでコピペ

yyで1行をコピー
pでペースト

2009年3月15日日曜日

SSHで.htaccessを表示

#ls -la

crontabに登録

# crontab -e

MAILTO=""  ←メール破棄。これしないとmaillogにたまる。

0 5 * * * /bin/sh /var/www/cron/backup.sh
午前5時にbackup.shを実行

15 5 * * * /bin/sh /var/www/cron/backup.sh
午前5時15分にbackup.shを実行

*/10 * * * * /bin/sh /var/www/cron/backup.sh
10分おきに実行

0 */1 * * * /bin/sh /var/www/cron/backup.sh
毎時0分に1時間おきに実行


viと同様にZZで保存か:q!で保存破棄

ファイル検索

#find -name "apc.php"
#find -name "*.ini"

APCインストール

php5.4以下の場合

# yum install php-pecl-apc

# vi /etc/php.d/apc.ini
extension = apc.so
apc.enabled = 1
apc.shm_size = 128M
apc.ttl = 3600
apc.user_ttl = 3600
apc.gc_ttl = 7200
apc.stat = 1

# /etc/init.d/httpd restart
#apache再起動で反映

引用元 : PHPアクセラレータまとめ


APC管理画面の設置

# find / -name apc.php
/usr/share/doc/php-pecl-apc-3.1.2/apc.php

# cd /usr/share/doc/php-pecl-apc-3.1.2
# cp apc.php /hogehoge/public_html/apc.php

引用元 : いまさらAPCをインストールして、PHPの実行を高速化してみた








不正ログインの確認

#lastb -10
/var/log/btmpの中身を最後から10件表示
btmpはログイン失敗ログ


#last -10
最後のログインした10件表示

FTP専用ユーザー作成

# useradd -s /sbin/nologin ユーザー名

# passwd ユーザー名

FTPでアクセスできるが、sshでログインできないユーザーが作成される

2009年3月14日土曜日

ディレクトリ作成とオーナー変更

ウェブサイト追加時に、サイト名のディレクトリを作成し、オーナーを変更する。

新規サイト : example.jp
オーナー : admin

#mkdir example.jp

#chown -R admin example.jp

オプション-Rは「ディレクトリ以下、すべてのファイル、ディレクトリの所有者を変更」

#ll

llでオーナー所有者が変更しているのを確認

2009年3月10日火曜日

シェルスクリプトsh作成の注意

シェルスクリプトをアップロード後にdos2unixすることでwindowsからunixに改行コードを変換

# dos2unix backup.sh

/bin/bash^M: bad interpreter: No such file or directory.

上記エラーは改行コードの問題なのでdos2unixで対処

データベースにアクセスできるユーザーを作成

全てのデータベースに全てのアクセス権限を持った新規ユーザー(ユーザ:satoru パスワード:12345)を作成

mysql> grant all privileges on *.* to satoru@localhost identified by '12345';


特定のデータベース(testdb)にのみアクセス権限を持った新規ユーザー(ユーザー:satoru パスワード:12345)を作成

mysql> grant all privileges on testdb.* to satoru@localhost identified by '12345';

2009年3月7日土曜日

mysqldump

バックアップの場合
$ mysqldump データベース名 -u root -p --opt > ダンプファイル名


文字コード指定
$ mysqldump データベース名 -u root -p --default-character-set=utf8 > ダンプファイル名


リストアの場合
$mysql -u root -p データベース名 < ダンプファイル名

2009年3月6日金曜日

Google Apps DNS設定

           MX   ASPMX.L.GOOGLE.COM     1
           MX   ALT1.ASPMX.L.GOOGLE.COM   5
           MX   ALT2.ASPMX.L.GOOGLE.COM   5
           MX   ASPMX2.GOOGLEMAIL.COM    10
           MX   ASPMX3.GOOGLEMAIL.COM    10
           MX   ASPMX4.GOOGLEMAIL.COM    10
           MX   ASPMX5.GOOGLEMAIL.COM    10
           A     111.111.111.111
www       A      111.111.111.111
i           A     111.111.111.111
mail        CNAME   ghs.google.com
googlexx1234  CNAME   google.com

PHP4からPHP5に移行した時の注意

$HTTP_GET_VARS→$_GET

$HTTP_POST_VARS→$_POST

$HTTP_SERVER_VARS→$_SERVER

$HTTP_COOKIE_VARS→$_COOKIE

vsftpdで.htaccessを表示

#vi /etc/vsftpd/vsftpd.conf

force_dot_files=YES

#service vsftpd restart

2009年3月5日木曜日

php.iniでエラー表示設定

#vi /etc/php.ini

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

■php5.3だと
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_errors = On


#service httpd restart

MySQLで重複レコードを抽出

SELECT 列1, 列2, count(*) FROM 表 GROUP BY 列1,列2 HAVING count(*)> 1;

SELECT * FROM 表 GROUP BY 列1,列2 HAVING count(*)> 1;

参考:重複レコードを取得する

特定のカラムで文字列の一括変更

update table set title=replace(title,'高等学校','高校');

table = テーブル名
title = カラム名