fz-qqq's diary

テキストマイニング、機械学習など

Linux (Cent OS) でサーバ構築する際に毎回やることまとめ

1. 初期設定

  1. yum update
  2. 日本語対応
    • vim /etc/sysconfig/i18n
      • LANG="C" -> LANG="ja_JP.UTF-8"
  3. useradd -m username, passwd username
  4. sudoの有効化
    • usermod -G wheel username
    • visudo
      • %wheel ALL=(ALL) ALL # コメントイン
  5. dotファイルのコピー(.ssh/.vim/.vimrc/.zsh/.zshrc。ただし.ssh内はauthorized_keys、id_rsa.pubのみ)
  6. zshへ変更
    • chsh -s /bin/zsh (zshが無かった場合はyum install zsh)
    • 有効になってるか確かめるため一度sshのログインをし直す
  7. sshの設定(ポート番号変更、パスワードログイン禁止、ルートログイン禁止)
    • vim /etc/ssh/sshd_config
      • Port YOUR_PORT_NUMBER # コメントインして好きなポート番号に変更
      • PasswordAuthentication no # yesからnoに変更
      • PermitRootLogin no # yesからnoに変更
    • service sshd restart # 以後はsshログイン時に -p YOUR_PORT_NUMBER をつけるようにする
  8. ファイアウォールiptables)の設定
    • vim /etc/sysconfig/iptables
      • -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT の下に
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT を追加
    • service iptables restart
    • iptables -L

2. Webサーバ(Apache)の設定

  1. httpdのインストール・設定
    • yum install httpd
    • chkconfig httpd on # httpd自動起動設定
    • vim /etc/httpd/conf/httpd.conf
      • ServerName の設定をコメントイン
      • ServerTokens OS -> ServerTokens Prod
      • ServerSignature On -> ServerSignature Off
      • の下の Options Indexes FollowSymLinks -> Options -Indexes FollowSymLinks
    • service httpd configtest
    • service httpd start
  2. IP.ADD.RE.SSへブラウザでアクセスしてApacheのページが出るか確認
  3. chown -R username:username /var/www/html
  4. VirtualHostの設定
<VirtualHost *:80>
  ServerName dev.example.com
  DocumentRoot "/var/www/dev.example.com/public_html"
  DirectoryIndex index.html index.php
  ErrorLog /var/log/httpd/dev.example.com_error_log
  CustomLog /var/log/httpd/dev.example.com_access_log combined
  AddDefaultCharset UTF-8
  <Directory "/var/www/dev.example.com/public_html">
    AllowOverride All
  </Directory>
</VirtualHost>
    • vim /etc/httpd/conf/httpd.conf # Virtual Hostの有効化
      • NameVirtualHost *:80 # コメントイン
    • service httpd configtest
    • service httpd restart

3. よく利用するパッケージ・アプリケーションのインストール

  1. tmux(/usr/local/srcなどに入れる)
  2. dropbox(各ユーザのホームディレクトリに入れる)
  3. gcc 4.8.2(gccの最新版のソースからのインストール)
  4. sshfs

4. PHPの設定

  1. 必要なパッケージのインストール
  2. /etc/php.iniの編集
    • error_log = /var/log/php.log # コメントインして保存場所も変更
    • expose_php = Off # コメントイン
    • date.timezone = Asia/Tokyo # コメントインしてAsia/Tokyoを追記
    • マルチバイトの設定
      • mbstring.language = Japanese # コメントイン
      • mbstring.internal_encoding = UTF-8 # コメントインしてUTF-8へ変更
      • mbstring.http_input = auto # コメントイン
      • mbstring.detect_order = auto # コメントイン
  3. service httpd restart

5. MySQLの設定

  1. yum install mysql-server
  2. MySQLのディレクトリの変更(/home/mysqlへ変更する手順)
    • /etc/init.d/mysqld status でMySQLが止まってることを確認
    • 新しいデータディレクトリの作成
    • デフォルトデータベースの作成
  3. /etc/my.cnfの設定
    • 以下の部分を下記のように変更する
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock

[client]
socket=/home/mysql/mysql.sock
  • [mysqld_safe]の直前に以下をコピペ
character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
  • service mysqld start
  • MySQL上で確認
    • SHOW VARIABLES LIKE 'datadir';
    • SHOW VARIABLES LIKE 'socket';
  • chkconfig mysqld on

6. Pythonの環境構築

  1. Python2.7のDL、インストール
  2. distributeのDL、インストール
  3. pipのインストール
    • easy_install-2.7 pip

7. Perlの環境構築

  1. Perlbrewのインストール・Perlの利用するバージョンへの変更
    • curl -L http://install.perlbrew.pl | bash
    • 以下を.zshrcへ追記
      • export PERLBREW_ROOT=$HOME/perl5/perlbrew
      • export PERL5LIB=$HOME/perl5/lib/perl
      • source ~/perl5/perlbrew/etc/bashrc
    • perlbrew available
    • perlbrew install 5.18.2
    • perlbrew switch perl-5.18.2
  2. cpanm のインストール・各種ライブラリのインストール
    • cpan App::cpanminus
    • cpanm Amon2 Carton Teng Reply

図解でわかる Linuxサーバ構築・設定のすべて

図解でわかる Linuxサーバ構築・設定のすべて