Nginx PHP MySqlコンパイルインストール
CentOS 5.6プラットフォームのコンパイルインストール.システムにgcc/gcc-c++コンパイラがインストールされていることを確認します.
1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61
関連依存開発ライブラリのインストール:autoconf curl freetype gd jpegsrc libiconv libmcrypt libxml 2 mhash ncurses openssl opensll-devel pcre-devel zlib zlib-devel
1.Nginxコンパイルインストール#groupadd www作成wwwユーザグループ#useradd-g www-s/sbin/nologin-M www作成wwwユーザグループ#mkdir/www作成/www Webサイトディレクトリ#chmod+w/www/wwwディレクトリへの書き込み権限#chown-R www:www/www Webサイトのルートディレクトリ/www所有者と所属グループをwwwユーザーとグループに設定
[./configureコンパイルパラメータ]--prefix=/usr/local/nginx Nginxインストールパス--user=www nginx起動実行に使用するユーザー.このユーザーは既に存在する必要があります.--group=www nginxは、すでに存在する必要がある実行に使用されるユーザグループを開始します.--with-http_realip_module --with-http_addition_module --with-http_gzip_static_moduleはgzip圧縮機能を開き、ページを圧縮します.--with-http_random_index_module --with-http_stub_status_module --with-http_sub_module --with-http_dav_module
Nginxを設定します.confプロファイルは、次の内容を変更または追加します.
nginx起動スクリプトを作成します.システムサービスとして追加し、電源を入れて自動的に起動するように設定します.スクリプトの内容は次のとおりです.
以上のスクリプトをnginxファイルとして保存し、/etc/initにコピーします.dディレクトリの下.次のコマンドを実行します.
# chmod 755/etc/init.d/nginx設定nginx起動スクリプト実行可能権限#chkconfig--add nginx追加nginxシステムサービス#chkconfig nginx onオープンnginxサービスシステム自動起動#chown-R www:www/usr/local/nginx設定nginxインストールディレクトリ権限所有者と所属グループはwww
[手動でNginxコマンドを起動]#service nginx start
2.MySqlコンパイルインストール
#groupadd mysql mysql作成mysqlユーザーグループ#useradd-g mysql-s/sbin/nologin-M mysql作成mysqlユーザーをmysqlユーザーグループに追加
[./configureコンパイルパラメータ]--prefix=/usr/local/mysql mysqlインストールパス--localstatedir=/var/data DATAデータベースの場所.--with-mysqld-user=mysql mysqlユーザーとしてmysqlデータベースを実行します.--Enable-assemblerは、いくつかの文字関数のアセンブリモード(パフォーマンスの最適化)を使用します.with-big-tablesは、4 Gより大きいデータベースのサポートを有効にします.--with-charset=utf 8データベース符号化文字セット.複数のエンコーディング文字セットの間をカンマで区切ります.--Enable-static静的コンパイルは、クライアントとサービス側を静的にコンパイルし、13%のパフォーマンスを向上させます.--with-client-ldflags=-all-static--with-mysqld-ldflags=-all-static--with-ssl SSLセキュリティ転送プロトコルのサポートを開始します.、--with-embedded-server組み込みサーバの構築--enable-local-infile
#chown-R mysql:mysql/usr/local/mysql MySql関連ディレクトリの権限を設定#cp/usr/local/mysql/share/mysql/my-medium.cnf/usr/local/mysql/my.cnfコピーMySqlを作成するプロファイル#/usr/local/mysql/bin/mysql_install_db--user=mysql mysql初期化データベース#cp/usr/local/mysql/share/mysql/mysqlをmysqlユーザーとして確立する.server/etc/init.d/mysql Mysql起動スクリプトを作成し、実行可能権限#chmod 755/etc/initを設定します.d/mysql#chkconfig--add mysql MySqlをシステムサービスに追加し、起動自動起動に設定します#chkconfig mysql on#service mysql start Mysql#/usr/local/mysql/bin/mysqladmin-u root password 123456 MySqlのrootパスワードを123456に設定します
3.PHPコンパイルインストール
[./configure構成パラメータ]--prefix=/usr/local/php PHPインストールパス--with-config-file-path=/etc PHPプロファイルパス--with-mysql=/usr/local/mysql MySqlインストールパス--with-mysqli=/usr/local/mysql/bin/mysql_configはmysqliのサポートを開始します--enable-fpm--with-fpm-user=www wwwユーザーとしてPHPを実行します--with-fpm-group=www wwwユーザーグループとしてPHPを実行します--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-gd--enable-gd-native-ttf --with-libxml-dir --with-curl --enable-safe-mode --with-xmlrpc --with-openssl --with-mhash --with-mcrypt --enable-bcmath --enable-shmop --enable-sysvsem --with-curlwrappers --enable-mbstring --enable-sockets --enable-magic-quotes --with-pear --enable-sysvshm --enable-zip
[PHPをコンパイルしてインストール]#make ZEND_EXTRA_LIBS='-liconv' # make install # cp php.ini-production/etc/php.ini phpをコピーして修正する.iniプロファイル
[php.iniプロファイルの内容を変更:]
[php-fpmのプロファイルを作成および変更]
# mv/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
変更内容:
[php-fpm起動サービススクリプトを作成して追加]#vi/etc/init.d/php-fpm
# chmod 755/etc/init.d/php-fpm#chkconfig--add php-fpm PHPをシステムサービスに追加し、電源を入れて自動的に起動するように設定します#chkconfig php-fpm on#chown-R www:www/usr/local/php PHP関連ファイルディレクトリに権限を設定します
[手動起動PHPコマンド]#service php-fpm start
!サービスが起動できない場合は、システムファイアウォールを閉じます.
1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61
関連依存開発ライブラリのインストール:autoconf curl freetype gd jpegsrc libiconv libmcrypt libxml 2 mhash ncurses openssl opensll-devel pcre-devel zlib zlib-devel
1.Nginxコンパイルインストール#groupadd www作成wwwユーザグループ#useradd-g www-s/sbin/nologin-M www作成wwwユーザグループ#mkdir/www作成/www Webサイトディレクトリ#chmod+w/www/wwwディレクトリへの書き込み権限#chown-R www:www/www Webサイトのルートディレクトリ/www所有者と所属グループをwwwユーザーとグループに設定
[./configureコンパイルパラメータ]--prefix=/usr/local/nginx Nginxインストールパス--user=www nginx起動実行に使用するユーザー.このユーザーは既に存在する必要があります.--group=www nginxは、すでに存在する必要がある実行に使用されるユーザグループを開始します.--with-http_realip_module --with-http_addition_module --with-http_gzip_static_moduleはgzip圧縮機能を開き、ページを圧縮します.--with-http_random_index_module --with-http_stub_status_module --with-http_sub_module --with-http_dav_module
Nginxを設定します.confプロファイルは、次の内容を変更または追加します.
user www www; //nginx www www
worker_processes 8; //
gzip on; // gzip
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
server {
listen 80; // nginx 80
server_name localhost; // , www.baidu.com
location / {
root /www; //web
index index.php index.html index.htm; //
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /www; // php
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
// flash 1 。
location ~* ^.+\.(gif|jpg|jpeg|png|bmp|swf)$
{
root /www;
access_log off;
expires 1d;
}
// CSS 1 。
location ~* ^.+\.(js|css)?$
{
root /www;
access_log off;
expires 1h;
}
nginx起動スクリプトを作成します.システムサービスとして追加し、電源を入れて自動的に起動するように設定します.スクリプトの内容は次のとおりです.
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# this script create it by jackbillow at 2007.10.15.
# it is v.0.0.2 version.
# if you find any errors on this scripts,please contact jackbillow.
# and send mail to jackbillow at gmail dot com.
#
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /usr/local/nginx/logs/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
以上のスクリプトをnginxファイルとして保存し、/etc/initにコピーします.dディレクトリの下.次のコマンドを実行します.
# chmod 755/etc/init.d/nginx設定nginx起動スクリプト実行可能権限#chkconfig--add nginx追加nginxシステムサービス#chkconfig nginx onオープンnginxサービスシステム自動起動#chown-R www:www/usr/local/nginx設定nginxインストールディレクトリ権限所有者と所属グループはwww
[手動でNginxコマンドを起動]#service nginx start
2.MySqlコンパイルインストール
#groupadd mysql mysql作成mysqlユーザーグループ#useradd-g mysql-s/sbin/nologin-M mysql作成mysqlユーザーをmysqlユーザーグループに追加
[./configureコンパイルパラメータ]--prefix=/usr/local/mysql mysqlインストールパス--localstatedir=/var/data DATAデータベースの場所.--with-mysqld-user=mysql mysqlユーザーとしてmysqlデータベースを実行します.--Enable-assemblerは、いくつかの文字関数のアセンブリモード(パフォーマンスの最適化)を使用します.with-big-tablesは、4 Gより大きいデータベースのサポートを有効にします.--with-charset=utf 8データベース符号化文字セット.複数のエンコーディング文字セットの間をカンマで区切ります.--Enable-static静的コンパイルは、クライアントとサービス側を静的にコンパイルし、13%のパフォーマンスを向上させます.--with-client-ldflags=-all-static--with-mysqld-ldflags=-all-static--with-ssl SSLセキュリティ転送プロトコルのサポートを開始します.、--with-embedded-server組み込みサーバの構築--enable-local-infile
#chown-R mysql:mysql/usr/local/mysql MySql関連ディレクトリの権限を設定#cp/usr/local/mysql/share/mysql/my-medium.cnf/usr/local/mysql/my.cnfコピーMySqlを作成するプロファイル#/usr/local/mysql/bin/mysql_install_db--user=mysql mysql初期化データベース#cp/usr/local/mysql/share/mysql/mysqlをmysqlユーザーとして確立する.server/etc/init.d/mysql Mysql起動スクリプトを作成し、実行可能権限#chmod 755/etc/initを設定します.d/mysql#chkconfig--add mysql MySqlをシステムサービスに追加し、起動自動起動に設定します#chkconfig mysql on#service mysql start Mysql#/usr/local/mysql/bin/mysqladmin-u root password 123456 MySqlのrootパスワードを123456に設定します
3.PHPコンパイルインストール
[./configure構成パラメータ]--prefix=/usr/local/php PHPインストールパス--with-config-file-path=/etc PHPプロファイルパス--with-mysql=/usr/local/mysql MySqlインストールパス--with-mysqli=/usr/local/mysql/bin/mysql_configはmysqliのサポートを開始します--enable-fpm--with-fpm-user=www wwwユーザーとしてPHPを実行します--with-fpm-group=www wwwユーザーグループとしてPHPを実行します--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-gd--enable-gd-native-ttf --with-libxml-dir --with-curl --enable-safe-mode --with-xmlrpc --with-openssl --with-mhash --with-mcrypt --enable-bcmath --enable-shmop --enable-sysvsem --with-curlwrappers --enable-mbstring --enable-sockets --enable-magic-quotes --with-pear --enable-sysvshm --enable-zip
[PHPをコンパイルしてインストール]#make ZEND_EXTRA_LIBS='-liconv' # make install # cp php.ini-production/etc/php.ini phpをコピーして修正する.iniプロファイル
[php.iniプロファイルの内容を変更:]
register_globals=Off register_globals=On //
date.timezone = Asia/Shanghai //
zend_optimizer.optimization_level=15 // Zend
zend_extension="/usr/local/Zend/ZendGuardLoader.so" //Zend
[php-fpmのプロファイルを作成および変更]
# mv/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
変更内容:
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = error
emergency_restart_interval = 3d
user = www
group = www
listen = 127.0.0.1:9000
[php-fpm起動サービススクリプトを作成して追加]#vi/etc/init.d/php-fpm
#!/bin/sh
#chkconfig: - 85 15
#description: php-fpm is PHP FastCGI Process Manage.
#processname:php-fpm
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/usr/local/php
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
# chmod 755/etc/init.d/php-fpm#chkconfig--add php-fpm PHPをシステムサービスに追加し、電源を入れて自動的に起動するように設定します#chkconfig php-fpm on#chown-R www:www/usr/local/php PHP関連ファイルディレクトリに権限を設定します
[手動起動PHPコマンド]#service php-fpm start
!サービスが起動できない場合は、システムファイアウォールを閉じます.