ソースコンパイルでサーバ構築 CentOS版 Part5
怒涛の五日目突入!
今日はMySQLです。
MySQLをソースでインストール
# 必要なパッケージをインストール yum -y install cmake yum -y install ncurses-devel # ソース展開用ディレクトリに移動 cd /usr/local/src/ mkdir mysql cd mysql # リンク http://dev.mysql.com/downloads/mysql/ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz # 展開 tar zxvf mysql-5.6.16.tar.gz # MySQL用のグループとユーザを作成 sudo groupadd mysqlsudo useradd -g mysql -s /usr/sbin/nologin mysql # 以下の条件でコンパイルします #----- # デフォルトのキャラクタセット = utf8 # デフォルトの照合順序 = utf8_general_ci # ストレージエンジンにInnoDB追加 #----- /usr/bin/cmake . \ -DCMAKE_INSTALL_PREFIX=/var/lib/mysql \ -DMYSQL_DATADIR=/var/lib/mysql/data \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DDISABLE_SHARED=1 \ -DENABLE_DTRACE=0 \ -DENABLE_GCOV=0 \ -DWITH_DEBUG=0 \ -DENABLE_DEBUG_SYNC=0 \ -DWITH_PIC=1 # makeしてmake install make && make install # 起動スクリプトを作成し、実行権限を付与 cp /var/lib/mysql/support_files/mysql.server /etc/init.d/mysql chown root:root /etc/init.d/mysql chmod a+x /etc/init.d/mysql
データベース準備
# データ格納ディレクトリの権限をmysqlに chown -R mysql:mysql /var/lib/mysql # データベース初期化 /var/lib/mysql/scripts/mysql_install_db --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data --user=mysql # コマンド郡設置 cd /usr/local/binln -s /var/lib/mysql/bin/mysqladmin mysqladminln -s /var/lib/mysql/bin/mysql mysqlln -s /var/lib/mysql/bin/mysqlcheck mysqlcheckln -s /var/lib/mysql/bin/mysqldump mysqldump # MySQL用設定をチューニング vim /etc/my.cnf #--- 追記内容 START my.cnf [mysqld] #skip-grant-tables port = 3306 datadir=/var/lib/mysql/data socket=/tmp/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server = utf8 skip-character-set-client-handshake log-error = /var/log/mysql/mysqld-error.log general_log = 1 general_log_file = /var/log/mysql/mysql.log slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1 max_connections = 50 key_buffer_size = 16M max_allowed_packet = 1M binlog_cache_size = 1M table_open_cache = 128 sort_buffer_size = 512K join_buffer_size = 512K thread_concurrency = 4 query_cache_size = 16M query_cache_limit = 512K tmp_table_size = 50M read_buffer_size = 256K read_rnd_buffer_size = 512K net_buffer_length = 8K #*** MyISAM Specific options myisam_sort_buffer_size = 1M # *** INNODB Specific options *** innodb_buffer_pool_size = 32M innodb_additional_mem_pool_size = 5M [mysqld_safe] log-error = /var/log/mysql/mysqld_safe-error.log pid-file=/var/run/mysqld.pid [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash default-character-set = utf8 [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [client] socket=/var/lib/mysql/mysql.sock #----- 追記内容 E N D # 起動 /etc/init.d/mysql start # 自動起動追加 chkconfig --add mysql chkconfig mysql on
phpMyAdminを準備(念のため)
# ソースをwget cd /var/www/src wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.1.7/phpMyAdmin-4.1.7-all-languages.tar.gz # ソース展開 cd /var/www/html tar zxvf ../src/phpMyAdmin-4.1.7-all-languages.tar.gz # リネーム mv phpMyAdmin-4.1.7-all-languages phpMyAdmin # 設定ファイル作成 cp config.sample.inc.php config.inc.php vim config.inc.php
ブラウザからアクセスしてみる
- my.cnfのsocketを調整した場合は変更が必要な可能性あり
# my.cnfで # socket=/var/lib/mysql/mysql.sock # としてしまった場合 vim /etc/php.ini #--- 変更内容 START php.ini mysql.default_socket = /var/lib/mysql/mysql.sock pdo_mysql.default_socket= /var/lib/mysql/mysql.sock mysqli.default_socket = /var/lib/mysql/mysql.sock #--- 変更内容 E N D
ソースコンパイルでサーバ構築 CentOS版 Part4
Part4です。 php-fpmの設定です。 - OS:CentOS6.4 - Web:Nginx + php-fpm + PHP - DB:MySQL
php-fpmの設定
# php-fpm.conf を作成 cp /usr/local/etc/php-fpm.conf.default /etc/php-fpm.conf # 起動スクリプト作成&実行権限付与 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm vim /etc/init.d/php-fpm #--- 変更内容 START php.fpm #php_fpm_CONF=${prefix}/etc/php-fpm.conf php_fpm_CONF=/etc/php-fpm.conf #--- 変更内容 E N D # 自動起動 chkconfig --add php-fpm vim /etc/nginx/nginx.conf #--- 追記内容 START nginx.conf #for PHP location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #--- 追記内容 E N D
表示確認
vim /etc/nginx/nginx.conf #--- 追記内容 START nginx.conf server { listen 80; server_name localhost; root /var/www/html; #--- 追記内容 E N D # 公開ディレクトリ作成 mkdir -p /var/www/html # 検証用PHP作成 vim /var/www/html/info.php #--- 追記内容 START info.php <?php phpinfo(); ?> #--- 追記内容 E N D
参考
ソースコンパイルでサーバ構築 CentOS版 Part3
今日で3日目になります。
前回はPHPをインストールしたので、今回はNginxのインストールを行います。
Nginxをソースコンパイル
# Nginx用のユーザーを作成 sudo useradd -s/sbin/nologin -d/usr/local/nginx -M nginx # ソース展開用ディレクトリに移動 cd /usr/local/src/ mkdir nginx cd nginx #stable 2014/02/16 wget http://nginx.org/download/nginx-1.4.5.tar.gz tar zxvf nginx-1.4.5.tar.gz cd nginx-1.4.5 # コンフィギュア ./configure --prefix=/etc/nginx \ --user=nginx --group=nginx \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_gzip_static_module \ --with-http_upstream_ip_hash_module # makeして、make install make make install
あとでnginxのコンフィギュアオプションを確認する方法
nginx -V
起動と終了の仕方(手動)
# 起動 /usr/local/nginx/sbin/nginx # 終了 /usr/local/nginx/sbin/nginx -s quit
Nginxの起動スクリプト
vim /etc/init.d/nginx
- スクリプトの中身
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
- 実行権限を付与し、自動起動設定
# 実行権限を付与 sudo chmod +x /etc/init.d/nginx # 自動起動 chkconfig --add nginx chkconfig nginx on
ソースコンパイルでサーバ構築 CentOS版 Part2
昨日に引き続き、ソースコンパイルでサーバを構築する手順を備忘録で残します。
必要パッケージをyumでインストールしたところから
PHPをソースコンパイル
# ソースを展開ディレクトリへ移動 cd /usr/local/src/ mkdir php cd php # 2014/06/01現在 wget http://jp1.php.net/get/php-5.5.13.tar.gz/from/this/mirror mv mirror php-5.5.13.tar.gz tar zxvf php-5.5.13.tar.gz cd php-5.5.13 # コンフィグュアオプションを指定 ./configure \ --enable-mbstring \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --enable-pcntl \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-openssl \ --with-pcre-regex \ --with-zlib \ --with-curl \ --with-mhash \ --with-xsl \ --with-mcrypt \ --with-pear \ --enable-exif \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --without-unixODBC \ --disable-posix \ --disable-sysvmsg \ --disable-sysvshm \ --disable-sysvsem \ --disable-debug \ --enable-intl \ --enable-zip \ --enable-posix \ --with-config-file-path=/etc # make & make install make make install
php.iniの設定を変える
cp -a php.ini-production /etc/php.ini vim /etc/php.ini
- php.iniの変更箇所
date.timezone = Asia/Tokyo
ソースコンパイルでサーバ構築 CentOS版 Part1
ソースコンパイルでサーバ構築します。
CentOSのインストールは終わってるところから
ネットワーク設定
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 変更前 ONBOOT=no # 変更後 ONBOOT=yes
/etc/init.d/network restart
SELINUXの無効化
vi /etc/selinux/config
- 変更
SELINUX=disabled
- コマンドで設定する場合(即時反映のため)
getenforce #チェック setenforce 0 #設定
アップデート
- epelをレポジトリに追加
rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
- yum アップデート
yum -y update
必要なライブラリなどをインストール
yum install -y wget yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel yum install -y gcc yum install -y libevent-devel libxml2-devel libjpeg-devel libpng-devel flex gcc-c++ yum install -y libmcrypt libmcrypt-devel libxslt libxslt-devel libicu-devel gd-devel autoconf yum install -y libcurl-devel yum install -y bison # 必要っぽい yum install -y re2c # 必要っぽい yum install -y vim # vimが使いたいので
今日はここまで。。。
Zabbixエージェントのインストール
zabbix の yumリポジトリの登録
rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm
インストール
yum -y install zabbix-agent
zabbix の yumリポジトリの無効化修正
vi /etc/yum.repos.d/zabbix.repo
[zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/2.0/rhel/6/$basearch/ enabled=1 ★←ココ ↓ enabled=0 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/ enabled=1 ★←ココ ↓ enabled=0
zabbixエージェントの設定(zabbixサーバーが他の場合、そのIPアドレスを設定 )
vi /etc/zabbix/zabbix_agentd.conf Server=127.0.0.1 ↓ Server=xxx.xxx.xxx.xxx(zabbixサーバーのIPアドレス)
zabbixエージェントの起動
service zabbix-agent start
zabbixエージェントの自動起動設定
chkconfig zabbix-agent on