サブドメインのZohoメールのMXレコード設定方法

サブドメイン複数をMXレコード登録

a mail ${自分サーバのIPアドレス}
a testmail ${自分サーバのIPアドレス}
mx mx.zohomail.com. 10 mail
mx mx2.zohomail.com. 20 mail
mx mx.zohomail.com. 15 testmail
mx mx2.zohomail.com. 25 testmail

サブドメイン増やしたら、メールが届かなくなったので(そりゃそうだ)

Nokogiriでスクレイピング

C:\>ruby -v
ruby 2.0.0p247 (2013-06-27) [i386-mingw32]

タイトルをスクレイピングして取得する。

#! ruby -Ku

p "文字化けしないか確認しておく"

require "open-uri"
require "nokogiri"

url = "http://snit.hatenadiary.jp/"
charset = nil
html = open(url) do |f|
  charset = f.charset
  f.read
end
doc = Nokogiri::HTML.parse(html, nil, charset)
p doc.title

実行

C:\>ruby sample3.rb
"文字化けしないか確認しておく"
"snit21の日記"

最初の定義がないとそもそも日本語が文字化けする。

#! ruby -Ku

参考

http://nokogiri.org/

http://ginzanomama.hatenablog.com/entry/2013/02/27/162828

http://morizyun.github.io/blog/ruby-nokogiri-scraping-tutorial

PHPとMySQL5.6の接続

socketファイルがバラバラで、 PHPからMySQLに接続するだけなのにずいぶんハマった。

MySQLのステータス確認

mysql> mysql \s
--------------
mysql  Ver 14.14 Distrib 5.6.12, for debian6.0 (x86_64) using  EditLine wrapper

Connection id:    	1
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.6.12-log MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			14 sec

Threads: 1  Questions: 5  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.357
--------------

MySQL設定ファイル

vi /etc/my.cnf
[client]
default-character-set=utf8
socket = /var/run/mysqld/mysqld.sock

[mysqld]
basedir = /opt/mysql/server-5.6
datadir = /data/mysql
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
skip-name-resolve
lower_case_table_names = 1
default-storage-engine = InnoDB
socket = /var/run/mysqld/mysqld.sock

general_log=1
general_log_file=/var/log/mysql/general.log
log_error=/var/log/mysql/error.log
pid-file=/var/log/mysql/mysql.pid
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time =1

innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_flush_method=O_DIRECT
query_cache_size=128M
query_cache_limit=2M
query_cache_min_res_unit=4k
query_cache_type=1
tmp_table_size=128M
max_heap_table_size=128M
table_open_cache=1024
max_allowed_packet=1M
sort_buffer=256K
read_buffer_size=256K
read_rnd_buffer_size=256K
join_buffer_size=256K
key_buffer_size=16M
max_connections=256
thread_cache=256
wait_timeout=60

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

phpinfo()を確認してphp.iniを修正。

Configuration File (php.ini) Path    /etc/php5/fpm
Loaded Configuration File    /etc/php5/fpm/php.ini

pdo_mysql.default_socket    /var/run/mysqld/mysqld.sock
mysql.default_socket    /var/run/mysqld/mysqld.sock
mysqli.default_socket    /var/run/mysqld/mysqld.sock

php5-fpm、再起動

/etc/init.d/php5-fpm restart

参考 http://treeapps.hatenablog.com/entry/2013/02/10/my.conf%E3%81%AE%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AE%E3%81%9B%E3%81%84%E3%81%A7%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8BMySQL5.6%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%AA%E3%81%84%E4%BB%B6

lighttpdの設定(編集中)

sudo apt-get install lighttpd
vi /etc/lighttpd/lighttpd.conf 

#server.document-root        = "/var/www"
server.document-root        = "/usr/share/lighttpd"

# Nginxポートと重複するのでずらす
server.port                 = 81

fastcgiの設定

vi /etc/lighttpd/conf-available/15-fastcgi-php.conf
・・・
"socket" => "/var/run/php-fpm/php-fpm.sock",

再起動

/etc/init.d/lighttpd restart

NginxからPHP-FPMをsocket通信にする。

※編集中
いろいろインストール

sudo apt-get install php5-fpm php5-cli -y

spawn-fcgi 稼働スクリプトを生成

vi /usr/bin/php-fastcgi 

#! /bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi

sudo chmod 755 /usr/bin/php-fastcgi

fastcgi起動スクリプト

vi /etc/init.d/php-fastcgi

#!/bin/bash

### BEGIN INIT INFO
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: php-fastcgi script
# Description:       php-fastcgi script
### END INIT INFO

# env
SCRIPT=/usr/bin/php-fastcgi
USER=www-data
RETVAL=0
PIDFILE=/var/run/php5-cgi.pid

# start or stop
case "$1" in
  start)
    su - $USER -c $SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  stop)
    killall -9 php5-cgi
    echo '' > $PIDFILE
    RETVAL=$?
  ;;
  restart)
    killall -9 php5-cgi
    su - $USER -c $SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  *)
    echo "Usage: php-fastcgi {start|stop|restart}"
    exit 1
  ;;
esac

fastcgi起動

sudo chmod 755 /etc/init.d/php-fastcgi
sudo update-rc.d php-fastcgi defaults
sudo service php-fastcgi start

Nginx設定ファイル

vi /etc/nginx/nginx.conf

        # Upstream to abstract backend connection(s) for PHP.
        upstream php {
                #this should match value of "listen" directive in php-fpm pool
                server unix:/var/run/php-fpm/php-fpm.sock;
#               server 127.0.0.1:9000;
        }
        

/var/run/php-fpm/ディレクトリが無いときは作成しておく。
php-fpm設定

vi php-fpm.conf

listen = /var/run/php-fpm/php-fpm.sock;

Nginxを再起動して設定を有効にする。

参考

http://www.lonelycoder.be/nginx-php-fpm-mysql-phpmyadmin-on-ubuntu-12-04/

http://php6.tumblr.com/post/32584609668

Ubuntu 12.04.4 にMySQL5.6をdebパッケージからインストール

ここからダウンロード。Debian Linuxから選ぶ。 http://dev.mysql.com/downloads/mysql/

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-debian6.0-x86_64.deb

インストール

sudo dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
sudo apt-get upgrade
sudo apt-get install libaio1

ユーザ追加

sudo groupadd mysql
sudo useradd -r -g mysql mysql
sudo chown -R root:root /opt/mysql
sudo chown -R mysql:mysql /opt/mysql/server-5.6

MySQL初期設定

sudo install -o mysql -g mysql -d /data/mysql
sudo -u mysql /opt/mysql/server-5.6/scripts/mysql_install_db --user=mysql --datadir=/data/mysql

設定ファイル。MySQL5.6で文字コードの設定方法などが変わっているようなので、要確認

sudo vi /etc/my.cnf

[mysqld]
basedir = /opt/mysql/server-5.6
datadir = /data/mysql

パスを通す。

sudo vi /etc/profile.d/mysql.sh 

PATH="/opt/mysql/server-5.6/bin:$PATH"
MANPATH="/opt/mysql/server-5.6/man:$MANPATH"

実行権限。実行するだけでは有効にならない。再度ログインが必要。

sudo chmod 755 /etc/profile.d/mysql.sh

実行する

mysql

セキュリティ対策。rootのパスワードの設定と不要なテーブルを削除。

mysql_secure_installation

参考 http://ledsun.hatenablog.com/entry/2013/06/26/184850 http://weblog.riywo.com/post/35522896526

NginxでWordPressを使う

参照

http://codex.wordpress.org/Nginx

 

親切に解説している方のブログ

http://engineer.aistear.info/336

 

fastcgiの設定参考

http://jedipunkz.github.io/blog/2012/03/07/wordpress-wo-nginx-plus-fastcgi-degao-su-hua/

 

nginx

http://wiki.nginx.org/WordPress

チューニング用に

http://dogmap.jp/2013/04/16/sakura-vps-performance-tuning/