2013年1月29日火曜日

apacheのバーチャルホストとWordPressのマルチサイトを使う

apacheのバーチャルホストとWordPressのマルチサイトを利用する場合は、VirtualHostの一番先頭にWordPressのVirtualHostを定義すること。
未定義のホスト名の場合、先頭の定義が使用されるため。

2012年12月29日土曜日

httpd.conf : Apache2+mod_fastcgi+php-fpm

Apache + mod_fastcgi + php-fpm Server version: Apache/2.2.15 (Unix)
ServerTokens Prod

KeepAlive On

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

ServerAdmin root@localhost
ServerName www.luiukko.jp:80

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    Options -Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ServerSignature Off

2012年12月28日金曜日

SL6+mysql+php+apache+mod_fastcgi+php-fpm

WordPressをインストールするために、必要なモジュールをインストールしていきます。

mysql

yum install mysql-server mysql
chkconfig mysqld on
次に/etc/my.cnfを編集します。ファイルの内容は、VPS 2GB用のmy.cnfを参考にしてください。
service mysqld start
/usr/bin/mysql_secure_installation

PHP 5.3 + php-fpm

PHP 5.3をインストールします。
yum install php54 php54-common php54-mysql php54-mbstring php54-gd php54-xml php54-fpm
/etc/php.iniを編集します。内容は、VPS 2GB用のphp.iniを参考にしてください。 mod_fastcgiをインストールします。
yum install mod_fastcgi
mod_fastcgiを有効にします。 /etc/httpd/conf.d/fastcgi.conf
User apache
Group apache

LoadModule fastcgi_module modules/mod_fastcgi.so

FastCgiExternalServer /var/www/fcgi-bin/php-fpm -socket /var/run/php-fpm.sock
AddHandler php-fastcgi .php
ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
Action php-fastcgi /fcgi-bin/php-fpm
AddType application/x-httpd-php .php
DirectoryIndex index.php
php.confを無効にする。
$ mv php.conf php.conf.bak
php-fpmをUnix Socketでリッスンするように設定します。
listen = /var/run/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0666
apacheの設定で、ExecCGIを有効にする。 /etc/httpd/conf/httpd.conf

    Options +ExecCGI

サービスをリスタートする。
# service php-fpm restart
# service httpd restart

Permission denied: FastCGI: failed to connect to server "/var/www/fcgi-bin/php-fpm": connect() failed

原因は、SELinuxであることまでは分かりましたが、有効にしたまま動作するようにする方法は分かりません。 しばらくは、SELinuxを無効にしておきます。
# getenforce
Enforcing
# setenforce 0

2012年12月24日月曜日

VPS 2GB用のphp.ini

お名前.com VPSの2GBプラン用のphp.iniファイルです。
post_max_size = 15M
upload_max_filesize = 15M

allow_url_fopen = On

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = "Asia/Tokyo"

VPS 2GB用のmy.cnf

お名前.com VPSの2GBプラン用のmy.cnfファイルです。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server = utf8
skip-name-resolve
skip-innodb
default-storage-engine=MyISAM

interactive_timeout = 50
join_buffer = 1M
key_buffer = 250M
max_connections = 100
max_heap_table_size = 32M
myisam_sort_buffer_size = 96M
query_cache_limit = 4M
query_cache_size = 250M
query_prealloc_size = 65K
query_alloc_block_size = 128K
read_buffer_size = 1M
read_rnd_buffer_size = 768K
sort_buffer_size = 1M
table_cache = 4096
thread_cache_size = 1024
tmp_table_size = 32M
wait_timeout = 500

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set = utf8

[isamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

お名前.com VPSにSL6.3をインストールした時のメモ

お名前.comのVPSサーバーにSL6をインストールした時のメモ。
cat /etc/redhat-release
Scientific Linux release 6.3 (Carbon)

ID関連

一般ユーザーを作って、sshを使ったrootログインを制限して、suできるユーザーを限定する。
useradd hoge
passwd hoge
usermod -G wheel hoge
vi /etc/ssh/sshd_config
Port 2022
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin no
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server
service sshd restart
vi /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid
auth            include         system-auth
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         optional        pam_xauth.so
ついでにロケールを変更。
vi /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"

IPv6関連

IPv6が有効になっているかを確認。
ifconfig -a
eth0      Link encap:Ethernet  HWaddr 52:54:01:00:62:10  
          inet addr:49.212.122.248  Bcast:49.212.123.255  Mask:255.255.254.0
          inet6 addr: fe80::5054:1ff:fe00:6210/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
IPv6を無効にする。
echo 'options ipv6 disable=1' >/etc/modprobe.d/disable-ipv6.conf
chkconfig ip6tables off
reboot

APIPA関連

APIPAが有効になっているかを確認する。
netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
49.212.122.0    0.0.0.0         255.255.254.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         49.212.122.1    0.0.0.0         UG        0 0          0 eth0
netowkを編集して無効にする。
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=v103-3-18-170.myvps.jp
GATEWAY=49.212.122.1
NOZEROCONF=yes
service network restart

yumリポジトリ関連

yumのプラグインを追加。
yum install yum-plugin-fastestmirror yum-plugin-priorities
sl.repoとsl-other.repoのプライオリティを1に設定し最優先にする。
cd /etc/yum.repos.d
vi sl.repo
それぞれのセクションの最後に以下の行を追加
priority=1
EPELをリポジトリに追加する。
yum install epel-release
IUS Yumリポジトリを追加する
wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-10.ius.el6.noarch.rpm
rpm -Uvh ius-release-1.0-8.ius.el6.noarch.rpm
RPMforgeを追加する。
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
全てのパッケージをアップデートしておきます。
yum update

iptables

iptablesを一括設定するファイルを作成しておきます。 ここでは、sshd, http, smtpを開けておきます。
#!/bin/sh
/sbin/iptables -F
/sbin/iptables -X

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

/sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -s 192.168.0.0/16 -j DROP

/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 2022 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/etc/rc.d/init.d/iptables save