部署网站平台
安装MySQL
编译安装MySQL-5.1
# ./configure --prefix=/usr/local/mysql--with-charset=utf8 --enable-assembler --with-extra-charsets=all--with-plugins=all
# make -j8 //多核心编译 # make install # cp support-files/mysql.server/etc/init.d/mysqld //为mysql提供SysV启动脚本; # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld # useradd –r mysql # chown -R mysql /usr/local/mysql # ./mysql_install_db --user=mysql //初始化; # cat /etc/my.cnf
# vim /etc/my.cnf
[client]
port = 10861
socket = /tmp/mysql.sock
[mysqld]
port = 10861
socket = /tmp/mysql.sock
#skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size =8M
myisam_sort_buffer_size= 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
max_connect_errors =2000
max_user_connections =2000
max_error_count = 2000
wait_timeout = 300
max_connections = 2000
skip-federated
log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
#safe-updates
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
安装MySQL5.6
# tar xf mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz-C /usr/local/ # ln -s/usr/local/mysql-5.6.10-linux-glibc2.5-x86_64/ /usr/local/mysql # useradd -r mysql # cd /usr/local/mysql # chown -R mysql . # mkdir /data/db # chown -R mysql.mysql /data/db/ # scripts/mysql_install_db --user=mysql--datadir=/data/db/ //初始化; # grep-E -v "^( )*#|^$" /usr/local/mysql/my.cnf
[mysqld]
server_id = 1
port = 3306
socket = /tmp/mysql.sock
datadir = /data/db
skip-name-resolve
max_user_connections = 2000
max_connections = 2000
log-bin = mysql-bin
expire_logs_days = 7
binlog_format = mixed
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# cp support-files/mysql.server/etc/init.d/mysqld # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld
安装Apache-2.4.6
安装apr-1.4.6
# tar xf apr-1.4.6.tar.gz # cd apr-1.4.6 # ./configure --prefix=/usr/local/apr # make && make install
安装apr-util-1.4.1
# tar xf apr-util-1.4.1.tar.gz # ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/ # make && make install
安装pcre-8.32
# tar xf pcre-8.32.tar.gz # cd pcre-8.32 # ./configure --prefix=/usr/local/pcre # make && make install
安装httpd-2.4.6
# tar xf httpd-2.4.6.tar.gz # cd httpd-2.4.6 # ./configure \ --prefix=/usr/local/apache \ --sysconfdir=/etc/httpd/ \ --enable-so \ --enable-ssl \ --enable-rewrite \ --with-zlib \ --with-pcre=/usr/local/pcre/ \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/ \ --enable-modules=most \ --enable-mpms-shared=all \ --with-mpm=event # cp build/rpm/httpd.init /etc/init.d/httpd # chmod +x /etc/init.d/httpd # vim /etc.init.d/httpd
CONFFILE=/etc/httpd/httpd.conf
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}
# service httpd start Starting httpd: [ OK ]
安装Nginx-1.4.7
# tar xf nginx-1.4.7.tar.gz # ./configure \ --prefix=/usr\ --sbin-path=/usr/sbin/nginx\ --conf-path=/etc/nginx/nginx.conf\ --error-log-path=/var/log/nginx/error.log\ --http-log-path=/var/log/nginx/access.log\ --pid-path=/var/run/nginx/nginx.pid\ --lock-path=/var/lock/nginx.lock\ --user=www\ --group=www\ --with-http_ssl_module\ --with-http_flv_module\ --with-http_stub_status_module\ --with-http_gzip_static_module\ --http-client-body-temp-path=/var/tmp/nginx/client/\ --http-proxy-temp-path=/var/tmp/nginx/proxy/\ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\ --with-pcre # mkdir –p /var/tmp/nginx/{client,proxy,fcgi} # chown –R www.www/var/tmp/nginx # make && make install # 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
# Checkthat 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' -`
options=`$nginx-V 2>&1 | grep 'configure arguments:'`
foropt 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
sleep1
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
# chmod +x /etc/init.d/nginx # chkconfig --add nginx
安装PHP
# ./configure \ --prefix=/usr/local/php \ --with-openssl \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --enable-sockets \ --with-mcrypt \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-bz2 \ --enable-maintainer-zts--with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --enable-fpm \ --with-gd
# make && make install # cp php.ini-production /etc/php.ini # cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # chmod +x /etc/init.d/php-fpm # chkconfig --add php-fpm # cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf # vim /usr/local/php/etc/php-fpm.conf # service php-fpm start Starting php-fpm done # tar xf xcache-3.0.4.tar.gz
# ./configure --enable-xcache--enable-xcache-coverager --enable-xcache-optimizer--with-php-config=/usr/local/php/bin/php-config # 注意: --enable-xcache # 启用xcache --enable-xcache-vocerager # 附加特性 --enable-xcache-optimizer # 启用操作码优化 # make && make install # tar zxvf ImageMagick.tar.gz # cd ImageMagick-6.5.1-2/ # make clean # ./configure # make && make install
整合Apache与PHP
# vim /etc/httpd/httpd.conf
ServerRoot"/usr/local/apache"
Listen80
LoadModuleauthn_file_module modules/mod_authn_file.so
LoadModuleauthn_core_module modules/mod_authn_core.so
LoadModuleauthz_host_module modules/mod_authz_host.so
LoadModuleauthz_groupfile_module modules/mod_authz_groupfile.so
LoadModuleauthz_user_module modules/mod_authz_user.so
LoadModuleauthz_core_module modules/mod_authz_core.so
LoadModuleaccess_compat_module modules/mod_access_compat.so
LoadModuleauth_basic_module modules/mod_auth_basic.so
LoadModulereqtimeout_module modules/mod_reqtimeout.so
LoadModulefilter_module modules/mod_filter.so
LoadModulemime_module modules/mod_mime.so
LoadModulelog_config_module modules/mod_log_config.so
LoadModuleenv_module modules/mod_env.so
LoadModuleheaders_module modules/mod_headers.so
LoadModulesetenvif_module modules/mod_setenvif.so
LoadModuleversion_module modules/mod_version.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModulempm_event_module modules/mod_mpm_event.so
LoadModuleunixd_module modules/mod_unixd.so
LoadModulestatus_module modules/mod_status.so
LoadModuleautoindex_module modules/mod_autoindex.so
LoadModuledir_module modules/mod_dir.so
LoadModulealias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
<IfModuleunixd_module>
Userwww
Groupwww
</IfModule>
ServerAdminyou@example.com
ServerName127.0.0.1
<Directory/>
AllowOverride none
Require all denied
</Directory>
<Directory"/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModuledir_module>
DirectoryIndex index.phpindex.html index.htm
</IfModule>
<Files".ht*">
Require all denied
</Files>
ErrorLog"logs/error_log"
LogLevelwarn
<IfModulelog_config_module>
LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t\"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log"common
</IfModule>
<IfModulealias_module>
ScriptAlias /cgi-bin/"/usr/local/apache/cgi-bin/"
</IfModule>
<IfModulecgid_module>
</IfModule>
<Directory"/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModulemime_module>
TypesConfig /etc/httpd/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddTypeapplication/x-httpd-php .php
AddType application/x-httpd-php-source.phps
</IfModule>
Include /etc/httpd/extra/httpd-vhosts.conf
<IfModuleproxy_html_module>
Include/etc/httpd/extra/proxy-html.conf
</IfModule>
<IfModulessl_module>
SSLRandomSeedstartup builtin
SSLRandomSeedconnect builtin
</IfModule>
# vim /etc/httpd/extra/httpd-vhost.conf
<VirtualHost*:80>
DocumentRoot /data/htdocs/xxx_bbs
ServerName bbs.xxx.com
ErrorLog"/data/logs/apache/bbs.xxx.com.error"
SetEnvIf Request_URI "^/ok\.htm$"dontlog
<Directory />
AllowOverride FileInfo
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
ProxyRequests off
ProxyPassMatch ^/(.*)\.php$fcgi://127.0.0.1:9000/data/htdocs/xxx/$1.php
</VirtualHost>
# vim /data/htdocs/xxx_bbs/.htaccess
RewriteEngineOn
RewriteBase/
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^article-([0-9]+)-([0-9]+)\.html$portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^forum-(\w+)-([0-9]+)\.html$forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^group-([0-9]+)-([0-9]+)\.html$forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^blog-([0-9]+)-([0-9]+)\.html$home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond%{QUERY_STRING} ^(.*)$
RewriteRule^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
RewriteCond%{http_host} ^xxx.com [NC]
RewriteRule^(.*)$ [L,R=301]
ErrorDocument404 /404.shtml
RewriteCond%{HTTP_REFERER} !^$ [NC]
RewriteCond%{HTTP_REFERER} !baidu.com [NC]
RewriteCond%{HTTP_REFERER} !google.com [NC]
RewriteCond%{HTTP_REFERER} !google.com.hk [NC]
RewriteCond%{HTTP_REFERER} !xxx.com [NC]
RewriteRule.*\.(gif|jpg)$ [R,NC,L]
整合Nginx与PHPgame
# vim /etc/nginx/nginx.conf
worker_processes 4;
events{
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user[$time_local] "$request" '
# '$status $body_bytes_sent"$http_referer" '
# '"$http_user_agent""$http_x_forwarded_for"';
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-javascripttext/css application/xml;
gzip_vary on;
server {
listen 80;
server_name bbs.xxx.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /data/htdocs/xxx_bbs;
index index.html index.htm;
location ~* \.php$ {
root /data/htdocs/xxx_bbs;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
include /etc/nginx/rewrite.conf;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# vim /etc/nginx/fastcgi_params
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;
# vim /etc/nginx/rewrite.conf
rewrite^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$$1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite^([^\.]*)/forum-(\w+)-([0-9]+)\.html$$1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3last;
rewrite^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$$1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
rewrite^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e$request_filename) {
return 404;
}
转载于:https://blog.51cto.com/junwang/1578977