说明:
1.官网采用LAMP框架,nginx做前端轮询代理
2、移除系统自带的rpm包的http mysql php
yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y
3 安装必备的开发包
/usr/bin/yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel \
ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel \
gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel \
libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libxml2 \
libmhash-devel mysql-devel libxslt libxslt-devel curl tcl expect
4.同步系统时间:
vim /etc/ntp.conf
server 3.cn.pool.ntp.org
server 3.asia.pool.ntp.org
server 0.asia.pool.ntp.org
chkconfig ntpd on
service ntpd restart
5.IP分配
nginx:192.168.201.4 192.168.201.5 192.168.201.6 192.168.201.7
apache:192.168.201.123---192.168.201.138
-
一.nginx搭建
-
1.下载源码包nginx-1.4.2
-
2.安装nginx
-
./configuer --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module & make & make install
-
3.配置文件如下
-
user nobody;
-
worker_processes 8;
-
pid logs/nginx.pid;
-
-
events {
-
use epoll;
-
worker_connections 65535;
-
}
-
-
http {
-
-
# 设置一个共享内存区域reqnum,以用于限制每个客户端IP可以并发连接的请求数
-
# limit_conn_zone $binary_remote_addr zone=reqnum:10m;
-
# 每个客户端IP每分钟只允许5个连接
-
# limit_req_zone $binary_remote_addr zone=reqone:10m rate=10r/m;
-
include mime.types;
-
default_type application/octet-stream;
-
-
sendfile on;
-
tcp_nopush on;
-
tcp_nodelay on;
-
keepalive_timeout 60;
-
server_tokens off;
-
-
log_format wwwlog '$remote_addr - $remote_user [$time_local] "$request" '
-
'$status $body_bytes_sent "$http_referer" '
-
'"$http_user_agent" $http_x_forwarded_for';
-
access_log /usr/local/nginx/logs/access.log wwwlog;
-
-
gzip on;
-
gzip_min_length 1k;
-
gzip_buffers 4 16k;
-
gzip_http_version 1.1;
-
gzip_comp_level 3;
-
gzip_types text/plain application/x-javascript text/css applicati
-
on/xml;
-
gzip_vary on;
-
-
server_names_hash_bucket_size 128;
-
client_header_buffer_size 32k;
-
client_max_body_size 300m;
-
client_body_buffer_size 512k;
-
large_client_header_buffers 4 32k;
-
-
proxy_connect_timeout 60;
-
proxy_send_timeout 120;
-
proxy_read_timeout 120;
-
proxy_buffer_size 16k;
-
proxy_buffers 4 64k;
-
proxy_busy_buffers_size 128k;
-
proxy_temp_file_write_size 128k;
-
-
index index.php index.htm index.html default.php default.htm defaul
-
t.html index.php3;
-
-
upstream os_server {
-
# ip_hash;
-
# server 192.168.201.122:80 weight=1;
-
server 192.168.201.123:80 weight=1;
-
server 192.168.201.124:80 weight=1;
-
server 192.168.201.125:80 weight=1;
-
server 192.168.201.126:80 weight=1;
-
server 192.168.201.127:80 weight=1;
-
server 192.168.201.128:80 weight=1;
-
server 192.168.201.129:80 weight=1;
-
server 192.168.201.130:80 weight=1;
-
server 192.168.201.131:80 weight=1;
-
server 192.168.201.132:80 weight=1;
-
server 192.168.201.133:80 weight=1;
-
server 192.168.201.134:80 weight=1;
-
server 192.168.201.136:80 weight=1;
-
server 192.168.201.137:80 weight=1;
-
server 192.168.201.138:80 weight=1;
-
}
-
upstream m_server {
-
# ip_hash;
-
# server 192.168.201.122:80 weight=1;
-
server 192.168.201.123:80 weight=1;
-
server 192.168.201.124:80 weight=1;
-
server 192.168.201.125:80 weight=1;
-
server 192.168.201.126:80 weight=1;
-
server 192.168.201.127:80 weight=1;
-
server 192.168.201.128:80 weight=1;
-
server 192.168.201.129:80 weight=1;
-
server 192.168.201.130:80 weight=1;
-
server 192.168.201.131:80 weight=1;
-
server 192.168.201.132:80 weight=1;
-
server 192.168.201.133:80 weight=1;
-
server 192.168.201.134:80 weight=1;
-
server 192.168.201.136:80 weight=1;
-
server 192.168.201.137:80 weight=1;
-
server 192.168.201.138:80 weight=1;
-
}
-
upstream weixin_server {
-
# ip_hash;
-
server 192.168.201.35:80 weight=1;
-
server 192.168.201.34:80 weight=1;
-
}
-
-
upstream op_server {
-
# ip_hash;
-
server 192.168.201.35:80 weight=1;
-
# server 192.168.201.34:80 weight=1;
-
}
-
#---------------------------www.lqxshop.com-----------------------
-
server {
-
listen 80;
-
server_name www.shop.com www.ilqx.cn www.chenggongfang.com wx.lqxshop.c
-
om;
-
#限制每个连接的带宽大小
-
#limit_rate 40k;
-
#限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数不
-
得超过burst指定
-
#limit_req zone=reqone burst=50;
-
#使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
-
#limit_conn reqnum 20;
-
location / {
-
proxy_set_header HTTP_REFERER $http_referer;
-
proxy_pass http://os_server;
-
proxy_set_header Host $host;
-
proxy_set_header X-Real-IP $remote_addr;
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
index index.html index.php index.htm index.jsp;
-
}
-
}
-
-
#--------------------------------m.lqxshop.com----------------------
-
server {
-
listen 80;
-
#限制每个连接的带宽大小
-
#limit_rate 40k;
-
#限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数不
-
得超过burst指定
-
#limit_req zone=reqone burst=50;
-
#使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
-
#limit_conn reqnum 20;
-
server_name m.shop.com m1.shop.com m2.shop.com;
-
location / {
-
proxy_pass http://m_server;
-
proxy_set_header HTTP_REFERER $http_referer;
-
proxy_set_header Host $host;
-
proxy_set_header X-Real-IP $remote_addr;
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
index index.html index.htm index.jsp;
-
}
-
}
-
-
#--------------------------------weixin.lqxshop.com----------------------
-
server {
-
listen 80;
-
#限制每个连接的带宽大小
-
#limit_rate 40k;
-
#限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数
-
得超过burst指定
-
#limit_req zone=reqone burst=50;
-
#使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
-
#limit_conn reqnum 20;
-
server_name weixin.shop.com;
-
location / {
-
proxy_pass http://weixin_server;
-
proxy_set_header HTTP_REFERER $http_referer;
-
proxy_set_header Host $host;
-
proxy_set_header X-Real-IP $remote_addr;
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
index index.html index.htm index.jsp;
-
}
-
}
-
-
-
#--------------------------------op.lqxshop.com----------------------
-
server {
-
listen 80;
-
#限制每个连接的带宽大小
-
#limit_rate 30k;
-
#限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数
-
得超过burst指定
-
#limit_req zone=reqone burst=50;
-
#使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
-
#limit_conn reqnum 20;
-
server_name op.shop.com;
-
location / {
-
proxy_pass http://op_server;
-
proxy_set_header HTTP_REFERER $http_referer;
-
proxy_set_header Host $host;
-
proxy_set_header X-Real-IP $remote_addr;
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
index index.html index.htm index.jsp;
-
}
-
}
-
-
}
-
-
-
二.APP(Apache+php)搭建
-
1、移除系统自带的rpm包的http mysql php
-
yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y
-
2 安装必备的开发包
-
/usr/bin/yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel \
-
ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel \
-
gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel \
-
libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libxml2 \
-
libmhash-devel mysql-devel libxslt libxslt-devel curl tcl expect
3.同步系统时间:
-
vim /etc/ntp.conf
-
server 3.cn.pool.ntp.org
-
server 3.asia.pool.ntp.org
-
server 0.asia.pool.ntp.org
-
chkconfig ntpd on
-
service ntpd restart
-
4.安装Apache:
-
##############安装需要的插件:apr、apr-util、pcre、libmcrypt######################################
-
cd /usr/local/src/
-
cd apr-1.4.8################(rm: cannot remove `libtoolT': No such file or directory///////修改configure文件,+++++把RM='$RM'改为RM='$RM -f'+++++)
-
./configure --prefix=/usr/local/apr && make && make install
-
cd ../apr-util-1.5.2/
-
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ && make && make install
-
cd ../pcre-8.33/
-
./configure --prefix=/usr/local/pcre --enable-utf8 && make && make install
-
cd ../libmcrypt-2.5.8/
-
./configure --prefix=/usr/local/libmcrypt && make && make install
-
###################开始安装Apache,并修改开启启动##################################################
-
cd ../httpd-2.4.6/
-
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/
-
make && make install
-
/usr/local/apache/bin/apachectl start
-
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
-
vim /etc/init.d/httpd(第二行添加注释信息,添加为系统服务)
-
# chkconfig: 35 61 61
-
# description: Apache
-
chkconfig --add httpd
-
chkconfig httpd on
-
5.安装php:
-
cd ../php-5.5.3/
-
./configure --prefix=/usr/local/php --mandir=/usr/local/share/man --infodir=/usr/local/share/info --with-apxs2=/usr/local/apache/bin/apxs --enable-cgi --with-mysql --with-config-file-path=/usr/local/php/etc --with-pdo-mysql --with-mysqli --enable-zip -enable-sockets --enable-soap --enable-pcntl --enable-mbstring --enable-intl --enable-calendar --enable-bcmath --enable-exif --with-mcrypt --with-mhash --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --with-libxml-dir --with-curl --with-zlib --with-openssl --with-kerberos=shared --with-gettext=shared --with-xmlrpc=shared --with-mcrypt=/usr/local/libmcrypt
-
make && make install
-
-
装载XXX模块
-
-
-
cd /usr/local/httpd-2.2.22/modules/generators/
-
/usr/local/apache/bin/apxs -i -a -c mod_cgi.c
-
-
6.apache和php结合:
-
vim /usr/local/apache/conf/httpd.conf
-
查找AddType application/x-gzip .gz .tgz,在该行下面添加
-
AddType application/x-httpd-php .php
-
查找DirectoryIndex index.html 把该行修改成
-
DirectoryIndex index.html index.htm index.php
-
测试apache和php是否整合成功,下面我们测试apache和php是否整合成功,在apache文档跟目录下新建一个小小的php程序
-
cd /usr/local/apache/htdocs
-
vi index.php //在index.php文件中写入下面三行
-
<?php
-
phpinfo();
-
?>
-
重启apache服务
-
/sbin/service httpd restart
-
访问,在浏览器中输入http://localhost(ip地址)/index.php 出现php信息界面则说明整合成功
-
elinks http://localhost/index.php
-
成功的页面
-
-
三.mysql搭建
-
-
10 11
-
软件源代码包存放位置 /opt
-
软件解压位置 /usr/local/src
-
源码包编译安装位置(prefix) /usr/local/
-
脚本以及维护程序存放位置 /script
-
数据库文件位置: /data/mysql/
-
数据库日志位置: /data/log
-
数据库备份目录: /data/backup
-
-
1.卸载默认的mysql及apache的rpm包
-
yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y
-
yum install ntp
-
service ntpd stop
-
ntpdate cn.pool.ntp.org
-
service ntpd start
-
chkconfig --level 2345 ntpd on
-
-
2.安装依赖包
-
yum install gcc gcc-c++ make cmake ncurses-devel vim -y
-
cd /opt
-
tar zxvf cmake-2.8.5.tar.gz -C /usr/local/src
-
cd /usr/local/src
-
cd cmake-2.8.5/
-
./configure
-
make && make install
-
cd /opt
-
-
3.编译安装mysql
-
tar zxvf mysql-5.5.23.tar.gz -C /usr/local/src/
-
cd /usr/local/src/mysql-5.5.23
-
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-
-DMYSQL_DATADIR=/data/mysql \
-
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-
-DENABLED_LOCAL_INFILE=1 \
-
-DDEFAULT_CHARSET=utf8 \
-
-DDEFAULT_COLLATION=utf8_general_ci \
-
-DEXTRA_CHARSETS=all
-
make && make install
-
groupadd -r -g 3306 mysql
-
useradd -u 3306 -g mysql -r -M -s /sbin/nologin mysql
-
mkdir -p /data/mysql/
-
mkdir -p /data/log/
-
chown -R mysql:mysql /data/
-
chown -R mysql:mysql /usr/local/mysql/*
-
cp support-files/my-huge.cnf /etc/my.cnf
-
-
4.初始化
-
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql & //初始化数据库
-
-
5.启动项
-
cp support-files/mysql.server /etc/init.d/mysqld
-
chmod +x /etc/init.d/mysqld
-
/chkconfig --add mysqld
-
chkconfig --level 2345 mysqld on
-
service mysqld start
-
netstat -tnlp |grep 3306
-
-
6.相关命令
-
# cd /usr/local/bin //进入用户的默认搜索路径下建立mysql命令的软连接,可以直接执行mysql命令
-
# ln -s /usr/local/mysql/bin/mysql mysql
-
# ln -s /usr/local/mysql/bin/mysqldump mysqldump
-
# ln -s /usr/local/mysql/bin/mysqladmin mysqladmin
-
# ln -s /usr/local/mysql/bin/mysqlbinlog
-
vim /etc/my.cnf ,在[mysqld]配置参数下面添加下面几行(大概37行下面),根据服务
-
skip-external-locking
-
key_buffer_size = 256M
-
max_allowed_packet = 500M
-
table_open_cache = 2048
-
sort_buffer_size = 8M
-
read_buffer_size = 4M
-
read_rnd_buffer_size = 16M
-
myisam_sort_buffer_size = 128M
-
-
###添加
-
log-error=/data/log/mysql.err.log
-
skip-name-resolv
-
max_connections = 3000
-
max_connect_errors = 2000
-
-
slow_query_log
-
long_query_time = 2
-
slow_query_log_file = /data/log/slow.log
-
-
bulk_insert_buffer_size = 64M
-
query_cache_type = 1
-
query_cache_size =256M
-
query_cache_limit = 4M
-
ft_min_word_len = 2
-
join_buffer_size = 16M
-
innodb_file_per_table
-
log-bin-trust-function-creators=1
-
myisam_repair_threads = 1
-
innodb_log_files_in_group = 3
-
thread_cache_size = 8
-
# Try number of CPU's*2 for thread_concurrency
-
thread_concurrency = 8
-
-
innodb_buffer_pool_size = 2G //修改这个参数为物理内存的80%
-
-
:wq //保存退出
-
rm -rvf /data/mysql/ib* myslq-bin* //删除原来的默认文件
-
service mysqld restart
-
mysql -u root
-
Mysql> grant all privileges on *.* to lqx@'%' identified by 'shlqx1!';
-
Mysql>flush privileges;