自宅サーバーを一新

やっとこさ自宅サーバーを直した。落雷でハードディスクエラーになってconfigureできない状態だったので、ハードディスクを買ってきてOS入れ直した。OS替えようかなとかも考えたけど、結局FedoraCore6にした。出たばっかりだし。
あと、作ったものとかを置く場所が欲しいなと思っていたら、id:spiritlooseさんに自宅サーバーにするべきと薦められたので、作ってみた。まぁ確かに自宅サーバーだと何でもありだから便利。


http://clonedoppelganger.net/


まだ何にもないけれど、何か作ったらここに置くとしよう。
ApacheとかMySQLとかは大体入れて、あとはSubversion入れれば一通り終わりかな。というところで、インストールメモを貼っておくと。

  • いろいろyum
$ sudo yum install zsh
$ chsh -s /bin/zsh
$ sudo yum install screen
$ sudo yum install w3m
$ sudo chmod 777 /usr/local/src
$ mkdir ~/download
$ cd ~/download
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.2.3.tar.gz
$ cp httpd-2.2.3.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf httpd-2.2.3.tar.gz
$ cd httpd-2.2.3
$ ./configure \
--prefix=/usr/local/proxy \
--enable-headers \
--enable-proxy \
--enable-ssl \
--enable-rewrite
$ make
$ sudo make install
$ cd ~/download
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.0.59.tar.gz
$ cp ./httpd-2.0.59.tar.gz /usr/local/src/
$ cd /usr/local/src/
$ tar zxvf ./httpd-2.0.59.tar.gz
$ cd ./httpd-2.0.59
$ ./configure \
--enable-so \
--enable-shared=yes
$ make
$ sudo make install
$ cd ~/download
$ wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz
$ cp ruby-1.8.5.tar.gz /usr/local/src/
$ cd /usr/local/src/
$ tar zxvf ruby-1.8.5.tar.gz
$ cd ruby-1.8.5
$ ./configure
$ make
$ sudo make install
$ cd ~/download
$ wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
$ cp ./mod_ruby-1.2.6.tar.gz /usr/local/src/
$ cd /usr/local/src/
$ tar zxvf ./mod_ruby-1.2.6.tar.gz
$ cd mod_ruby-1.2.6
$ ./configure.rb \
--enable-eruby \
--with-apxs=/usr/local/apache2/bin/apxs
$ make
$ sudo make install
$ sudo vim /usr/local/apache2/conf/httpd.conf
# add start
LoadModule ruby_module /usr/local/apache2/modules/mod_ruby.so
<IfModule mod_ruby.c>
  RubyRequire apache/ruby-run
  <Files *.rbx>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
  </Files>
</IfModule>
# add end
<Directory "/usr/local/apache2/htdocs">
  # add start
  options +ExecCGI
  # add end
$ sudo /usr/sbin/groupadd mysql
$ sudo /usr/sbin/useradd -g mysql mysql
$ sudo /usr/bin/passwd mysql
$ cd ~/download
$ wget ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.0/mysql-5.0.27.tar.gz
$ cp mysql-5.0.27.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf mysql-5.0.27.tar.gz
$ cd mysql-5.0.27
$ ./configure \
--prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-extra-charsets=all \
--with-mysqld-user=mysql \
--with-mysqld-ldflags=-all-static \
--with-unix-socket-path=/tmp/mysql.sock \
--with-innodb \
--enable-local-infile \
--enable-assembler \
--enable-thread-safe-client
$ make
$ sudo make install
$ sudo chown -R mysql:mysql /usr/local/mysql
$ sudo vi /usr/local/mysql/bin/mysqld_safe
# comment out
echo "Starting $MYSQLD daemon with databases from $DATADIR"
$ su - mysql
$ cd /usr/local/mysql
$ mkdir var
$ cd var
$ ../bin/mysql_install_db
$ exit
$ sudo cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
$ sudo /usr/local/mysql/bin/mysqladmin -uroot password xxxx
$ sudo /usr/local/mysql/bin/mysqladmin -uroot -pxxxx reload
$ sudo /usr/local/mysql/bin/mysql -uroot -p
mysql> use mysql
mysql> delete from user where user='';
mysql> flush privileges;
mysql> quit
  • libxml
$ cd ~/download
$ wget ftp://xmlsoft.org/libxml2/libxml2-2.6.26.tar.gz
$ cp libxml2-2.6.26.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf libxml2-2.6.26.tar.gz
$ cd libxml2-2.6.26
$ ./configure
$ make
$ sudo make install
  • libmcrypt
$ cd ~/download
$ wget http://umn.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.7.tar.gz
$ cp libmcrypt-2.5.7.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf libmcrypt-2.5.7.tar.gz
$ cd ./libmcrypt-2.5.7
$ ./configure --disable-posix-threads
$ make
$ sudo make install
$ cd ~/download
$ wget http://jp.php.net/distributions/php-5.2.0.tar.gz
$ cp php-5.2.0.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf php-5.2.0.tar.gz
$ cd php-5.2.0
$ ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mcrypt \
--enable-roxen-zts \
--enable-zend-multibyte \
--enable-track-vars \
--enable-mbstring \
--enable-mbregex
$ make
$ sudo make install
$ sudo cp php.ini-recommended /usr/local/php/lib/php.ini
$ sudo vim /usr/local/apache2/conf/httpd.conf
# add
AddType application/x-httpd-php .php
# add
DirectoryIndex index.html index.php
  • ZendOptimizer
$ cd ~/download
$ cp ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz /usr/local/src/
$ cd /usr/local/src
$ tar zxvf ./ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
$ cd ./ZendOptimizer-3.0.1-linux-glibc21-i386
$ sudo ./install-tty
/usr/local/php/lib/
yes
/usr/local/apache2/bin/apachectl
yes

若干補足。自宅サーバーなので、/usr/local/srcの権限を777にしているけれど、一般的にはsuして作業する方が自然かと。最後だけsudoでやりたい面倒臭がり用です。
Apacheを2台入れてるのは、フロントを80番ポートのプロキシにしているため。後は別のポートで○○専用Apacheを増殖させていくのが便利。
ZendOptimizerだけは普通にWindowsでダウンロードしたので、wgetしてない。最後のは対話で何と答えたかを書いている。


[追記]
Subversionもインストールした。やり方は前に書いたのと同じ。


[追記 2]
ZendOptimizer 3.0.1はPHPの5.2.xには対応してなかったorz。Zendがアップグレードしたら入れ直す。