您的位置:首页 > 运维架构 > Nginx

centos5.5安装nginx0.8.54,mysql5.5.8,php5.3.4

2011-01-10 15:52 781 查看
yum -y install gcc gcc-c++ autoconf
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel
libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2
glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl
openssl-devel openldap openldap-devel nss_ldap openldap-clients
openldap-servers

wget http://nginx.org/download/nginx-0.8.54.tar.gz
wget http://cn.php.net/get/php-5.3.4.tar.gz/from/this/mirror
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.8.tar.gz/from/http://mysql.he.net/
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0"

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0"

wget http://pecl.php.net/get/memcache-2.2.6.tgz
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0"

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.11.tar.gz
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz
wget http://ftp.gnu.org/gnu/bison/bison-2.4.3.tar.gz
tar zxvf libiconv-1.13.1.tar.gz

cd libiconv-1.13.1/

./configure --prefix=/usr/local

make

make install

cd ../

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8/

./configure

make

make install

/sbin/ldconfig

cd libltdl/

./configure --enable-ltdl-install

make

make install

cd ../../

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9/

./configure

make

make install

cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a

ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la

ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so

ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8/

/sbin/ldconfig

./configure

make

make install

cd ../

tar zxvf cmake-2.8.3.tar.gz

cd cmake-2.8.3/

./configure --prefix=/usr

gmake

gmake install

cd ../

tar zxvf bison-2.4.3.tar.gz

cd cd bison-2.4.3

./configure

make

make install

/usr/sbin/groupadd mysql

/usr/sbin/useradd -g mysql mysql

mkdir -p /data/mysqldb

chown -R mysql:mysql /data/mysqldb

tar zxvf mysql-5.5.8.tar.gz

cd mysql-5.5.8

cmake
. -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql
-DMYSQL_DATADIR=/data/mysqldb -DWITHOUT_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1
-DSYSCONFDIR=/etc/ -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=on

make

make install

/usr/local/webserver/mysql/scripts/mysql_install_db --basedir=/usr/local/webserver/mysql/ --datadir=/data/mysqldb --user=mysql

vim /etc/my.cnf

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

port = 3306

socket = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size= 16M

thread_concurrency = 1

basedir = /usr/local/webserver/mysql

datadir = /data/mysqldb

default-storage-engine = myisam

log-bin=mysql-bin

binlog_format=mixed

server-id = 1

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

cp /usr/local/webserver/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

/etc/rc.d/init.d/mysqld start

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

drop

user
root@127.0.0.1;

drop

user
root@localhost.localdomain;

drop

user

''
@localhost.localdomain;

drop

user

''
@localhost;

drop

user

'root'
@
'::1'
;

drop user
''
@
'%'
;

exit

tar zxvf php-5.3.4.tar.gz

cd php-5.3.4

./configure
--prefix=/usr/local/webserver/php
--with-config-file-path=/usr/local/webserver/php/etc
--with-mysql=/usr/local/webserver/mysql
--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config
--with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir
--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml
--disable-rpath --disable-safe-mode --enable-bcmath --enable-shmop
--enable-sysvsem --enable-inline-optimization --with-curl
--with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring
--with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl
--with-mhash --enable-pcntl --enable-sockets --with-ldap
--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear

mkdir /usr/local/webserver/mysql/include/mysql

chown -R mysql:mysql /usr/local/webserver/mysql/include/mysql

ln -s /usr/local/webserver/mysql/include/* /usr/local/webserver/mysql/include/mysql/

vim /etc/ld.so.conf

添加/usr/local/webserver/mysql/lib/

ldconfig

make ZEND_EXTRA_LIBS='-liconv'

make install

cp php.ini-production /usr/local/webserver/php/etc/php.ini

cd ../

tar zxvf memcache-2.2.6.tgz

cd memcache-2.2.6

/usr/local/webserver/php/bin/phpize

./configure --with-php-config=/usr/local/webserver/php/bin/php-config

make

make install

cd ../

tar jxvf eaccelerator-0.9.6.1.tar.bz2

cd eaccelerator-0.9.6.1/

/usr/local/webserver/php/bin/phpize

./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config

make

make install

cd ../

vim /usr/local/webserver/php/etc/php.ini

extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"

extension = "memcache.so"

always_populate_raw_post_data=On

[eaccelerator]

zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"

eaccelerator.shm_size="64"

eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="3600"

eaccelerator.shm_prune_period="3600"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

mkdir -p /usr/local/webserver/eaccelerator_cache

/usr/sbin/groupadd www

/usr/sbin/useradd -g www www

mkdir -p /data/htdocs/bbs

mkdir -p /data/htdocs/ad

chmod +w /data/htdocs/bbs

chmod +w /data/htdocs/ad

chown -R www:www /data/htdocs/ad

chown -R www:www /data/htdocs/bbs

cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf

vim /usr/local/webserver/php/etc/php-fpm.conf

[global]

pid = /usr/local/webserver/php/logs/php-fpm.pid

error_log = /usr/local/webserver/php/logs/php-fpm.log

log_level = notice

emergency_restart_threshold = 10

emergency_restart_interval = 1m

process_control_timeout = 5s

daemonize = yes

[www]

listen = 127.0.0.1:9000

listen.backlog = -1

listen.allowed_clients = 127.0.0.1

user = www

group = www

pm = static

pm.max_children = 64

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 1024

request_terminate_timeout = 0s

request_slowlog_timeout = 0s

slowlog = logs/slow.log

rlimit_files = 65535

rlimit_core = 0

chroot =

chdir =

catch_workers_output = yes

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

/usr/local/webserver/php/sbin/php-fpm

tar zxvf pcre-8.11.tar.gz

cd pcre-8.11/

./configure

make && make install

cd ../

tar zxvf nginx-0.8.54.tar.gz

cd nginx-0.8.54/

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install

cd ../

mkdir -p /data/logs/

chmod +w /data/logs/

chown -R www:www /data/logs/

rm -f /usr/local/webserver/nginx/conf/nginx.conf

vim /usr/local/webserver/nginx/conf/nginx.conf

user www www;

worker_processes 6;

error_log /data/logs/nginx_error.log crit;

pid /usr/local/webserver/nginx/nginx.pid;

worker_rlimit_nofile 65535;

events {

use epoll;

worker_connections 65535;

}

http {

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 8m;

sendfile on;

tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

server {

listen 80;

server_name bbs.test.com;

index index.html index.htm index.php;

root /data/htdocs/bbs;

location ~ .*/.(php|php5)?$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}

location ~ .*/.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {

expires 7d;

}

log_format access '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

access_log /data/logs/access_bbs.log access;

}

server {

listen 80;

server_name ad.test.com;

index index.php;

root /data/htdocs/ad;

location ~ .*/.(php|php5)?$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}

log_format adlogs '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

access_log /data/logs/access_ad.log adlogs;

}

server

{

listen 80;

server_name status.3j3w.com;

location / {

stub_status on;

access_log off;

}

}

}

vim /usr/local/webserver/nginx/conf/fcgi.conf

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

ulimit -SHn 65535

/usr/local/webserver/nginx/sbin/nginx

vim /etc/rc.local

ulimit -SHn 65535

/usr/local/webserver/php/sbin/php-fpm

/usr/local/webserver/nginx/sbin/nginx

vim /etc/sysctl.conf

# Add

net.ipv4.tcp_max_syn_backlog = 65536

net.core.netdev_max_backlog = 32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

#net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800

#net.ipv4.tcp_fin_timeout = 30

#net.ipv4.tcp_keepalive_time = 120

net.ipv4.ip_local_port_range = 1024 65535

/sbin/sysctl -p

vim /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

#!/bin/bash

# This script run at 00:00

# The Nginx logs path

logs_path="/data/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/

mv
${logs_path}access_bbs.log ${logs_path}$(date -d "yesterday"
+"%Y")/$(date -d "yesterday" +"%m")/access_bbs_$(date -d "yesterday"
+"%Y%m%d").log

mv ${logs_path}access_ad.log ${logs_path}$(date -d
"yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_ad_$(date -d
"yesterday" +"%Y%m%d").log

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

crontab -e

00 00 * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

SIGINT, SIGTERM 立刻终止

SIGQUIT 平滑终止

SIGUSR1 重新打开日志文件

SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:

kill -SIGINT `cat /usr/local/webserver/php/logs/php-fpm.pid`

php-fpm 重新打开日志文件:

kill -SIGUSR1 `cat /usr/local/webserver/php/logs/php-fpm.pid`

php-fpm 重启:

kill -SIGUSR2 `cat /usr/local/webserver/php/logs/php-fpm.pid`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: