- 高可用负载均衡:Keepalived+Nginx
- Lnmp、Tomcat、Discuz论坛、dedecms企业网站、Zrlog博客
- 数据库主从,读写分离
- 监控Zabbix、Nfs,共享静态文件
- 分发系统
软件环境:
Nginx:1.14.0
Php:5.6.33
mysql:5.6.35 /maridb:5.5.61
Tomcat:8.0
Discuz:x3.3
Zrlog:1.7.1 http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
dedecms:5.7 http://www.dedecms.com/products/dedecms/downloads/
安装mariadb
1、 cd /usr/local/src //切换到下载源码包的目录
[root@aminglinux ~]# cd /usr/local/src
2、官网下载 :mariadb-galera-5.5.61-linux-x86_64.tar.gz上传到/usr/local/src目录
3、解压:tar zxvf mariadb-galera-5.5.61-linux-x86_64
4、解压的包移动到/usr/local/mariadb下
[root@aminglinux src]# mv mariadb-galera-5.5.61-linux-x86_64 /usr/local/mariadb [root@aminglinux src]# cd /usr/local/mariadb
5、useradd mysql //创建一个mysql用户
[root@aminglinux mysql]# useradd mysql
6、mkdir /data/ //创建一个目录,是为了存放mysql的数据,把数据目录放到这个目录下
[root@aminglinux mysql]# mkdir /data/
7、编译安装./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
[root@aminglinux mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb [root@aminglinux mariadb]# echo $? 0
8、cp support-files/my-small.cnf /usr/local/mariadb/my.cnf 拷贝配置文件
[root@aminglinux mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf [root@aminglinux mariadb]# ls bin data include lib my.cnf README scripts sql-bench COPYING EXCEPTIONS-CLIENT INSTALL-BINARY man mysql-test README-wsrep share support-files
9、拷贝启动脚本到/etc/init.d/mariadb并编辑:
- cp support-files/mysql.server /etc/init.d/mariadb
- vim /etc/init.d/mariadb //定义basedir、datadir、conf以及启动参数
[root@aminglinux mariadb]# cp support-files/mysql.server /etc/init.d/mariadb [root@aminglinux mariadb]# vim /etc/init.d/mariadb # If you change base dir, you must also change datadir. These may get # overwritten by settings in the MySQL configuration files. basedir=/usr/local/mariadb 定义basedir datadir=/data/mariadb 定义datadir conf=$basedir/my.cnf 自定义参数(配置文件在/etc下不用定义这个参数)
- 配置启动命令:在一般模式下,搜索 /start 启动命令
在 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &中,增加--defaults-file="$conf"; 最后为 $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
10、编辑指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb
[root@aminglinux mariadb]# vim /usr/local/mariadb/my.cnf # The MySQL server [mysqld] datadir= /data/mariadb port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M
11、启动/etc/init.d/mariadb start
[root@aminglinux mariadb]# /etc/init.d/mariadb start Starting MariaDB.180804 00:46:16 mysqld_safe Logging to '/data/mariadb/aminglinux.err'. 180804 00:46:16 mysqld_safe Starting mysqld daemon with databases from /data/mariadb ... SUCCESS! [root@aminglinux mariadb]# ps aux |grep mysql root 6623 0.0 0.1 113308 1668 pts/0 S 00:46 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file= --datadir=/data/mariadb --pid-file=/data/mariadb/aminglinux.pid mysql 6775 0.2 8.2 665212 83148 pts/0 Sl 00:46 0:00 /usr/local/mariadb/bin/mysqld --defaults-file= --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/aminglinux.err --pid-file=/data/mariadb/aminglinux.pid --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1 root 6845 0.0 0.0 112720 984 pts/0 S+ 00:47 0:00 grep --color=auto mysql
PHP安装
1、进入目录:cd /usr/local/src/
2、下载PHP5.6.33包:wget http://cn2.php.net/distributions/php-5.6.33.tar.gz
3、解压:tar zxvf php-5.6.33.tar.gz
4、创建账号:useradd -s /sbin/nologin php-fpm
5、进入目录:cd php-5.6.33
6、编译PHP5.6:
[root@localhost src]# cd php-5.6.33 [root@localhost php-5.6.33]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mariadb --with-mysqli=/usr/local/mariadb/bin/mysql_config --with-pdo-mysql=/usr/local/mariadb --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
需注意mariadb路径
7、然后:make && make install
PHP安装可能会遇到缺少的包:
- yum install -y gcc //gcc
- yum install -y libxml2-devel //XML2
- yum install -y openssl-devel //缺少OpenSSL
- yum install -y bzip2-devel //缺少BZip2
- yum install -y libjpeg-devel //缺少libjpeg
- yum install -y libpng-devel //缺少libpng-devel
- yum install -y freetype-devel //缺少freetype-devel
- yum install -y libcurl-devel //缺少libcurl-devel
- yum install -y epel-release && yum install -y libmcrypt-devel //缺少libmcrypt-devel
8、检查php-fpm核心文件及安装目录结构
9、从源码包里拷贝配置文件php.ini到php-fpm/etc/目录下:cp php.ini-production /usr/local/php-fpm/etc/php.ini
编辑php-fpm.conf配置文件
- 配置文件参考:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/php-fpm.conf?public=true
[root@aminglinux php-5.6.33]# vim /usr/local/php-fpm/etc/php-fpm.conf [global] #定义全局参数 pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock #监听地址,也可以写:listen = 127.0.0.1::9000,本地监听,也可以监听其他IP:port #此处格式会影响配置Nginx和PHP结合时Nginx寻址PHP的路径 listen.mode = 666 #当监听的为socket文件时该部分才生效,用于指定.sock文件的权限 user = php-fpm group = php-fpm #定义php-fpm服务的用户 pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
10、配置启动脚本
添加启动脚本到系统配置: [root@localhost php-5.6.33]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 更改文件权限: [root@localhost php-5.6.33]# chmod 755 /etc/init.d/php-fpm 添加到系统服务: [root@localhost php-5.6.33]# chkconfig --add php-fpm 设置开机启动: [root@localhost php-5.6.33]# chkconfig php-fpm on 启动php-fpm服务: [root@localhost php-5.6.33]# service php-fpm start Starting php-fpm done
Nginx安装
1、cd /usr/local/src/ //进入目录
2、wget http://nginx.org/download/nginx-1.14.0.tar.gz //下载Nginx包
3、tar zxvf nginx-1.14.0.tar.gz 解压包
[root@aminglinux ~]# cd /usr/local/src/ [root@aminglinux src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz --2018-08-04 10:19:58-- http://nginx.org/download/nginx-1.14.0.tar.gz 正在解析主机 nginx.org (nginx.org)... 95.211.80.227, 206.251.255.63, 2606:7100:1:69::3f, ... 正在连接 nginx.org (nginx.org)|95.211.80.227|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:1016272 (992K) [application/octet-stream] 正在保存至: “nginx-1.14.0.tar.gz” 100%[==============================================================================>] 1,016,272 237KB/s 用时 4.3s 2018-08-04 10:20:03 (230 KB/s) - 已保存 “nginx-1.14.0.tar.gz” [1016272/1016272]) [root@aminglinux src]# ls 5.5.html cmake-2.8.7.tar.gz index.html nginx-1.14.0.tar.gz 5.5.html.1 httpd-2.2.9 mariadb-galera-5.5.61-linux-x86_64.tar.gz php-5.6.33 cmake-2.8.7 httpd-2.2.9.tar.gz mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz php-5.6.33.tar.gz [root@aminglinux src]# tar zxvf nginx-1.14.0.tar.gz
4、配置编译安装:
- cd nginx-1.14.0
- ./configure --prefix=/usr/local/nginx
- make && make install
5、修改、检查配置文件;脚本参考:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
[root@aminglinux nginx]# vim /etc/init.d/nginx
6、编辑启动脚本,修改为755权限;加入开机启动列表,设置开机启动:启动nginx服务
[root@aminglinux nginx]# chmod 755 /etc/init.d/nginx [root@aminglinux nginx]# ls -l /etc/init.d/nginx -rwxr-xr-x. 1 root root 1141 8月 4 10:27 /etc/init.d/nginx [root@aminglinux nginx]# chkconfig --add nginx [root@aminglinux nginx]# chkconfig nginx on 注意:正在将请求转发到“systemctl enable nginx.service”。 Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. [root@aminglinux nginx]# /etc/init.d/nginx start Starting nginx (via systemctl): [ 确定 ] [root@aminglinux nginx]#
7、更改Nginx配置文件,配置文件脚本参考:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf
[root@aminglinux conf]# vim nginx.conf [root@aminglinux conf]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@aminglinux conf]# /etc/init.d/nginx restart Restarting nginx (via systemctl): [ 确定 ] [root@aminglinux conf]#
- systemctl stop firewalld 关闭firewalld
- setenforce 0 临时关闭selinux
安装discuz论坛
1、创建目录 mkdir -p /data/wwwroot/bbs/ 存放discuz程序的根目录
[root@aminglinux ~]# mkdir -p /data/wwwroot/bbs/
2、下载discuz包并解压;把upload目录下文件拷贝到/data/wwwroot/bbs/
[root@aminglinux ~]# cd /usr/local/src/ [root@aminglinux src]# wget http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip
- 解压
[root@aminglinux src]# unzip Discuz_X3.3_SC_UTF8.zip
- 把upload目录下文件拷贝到/data/wwwroot/bbs/
[root@aminglinux src]# ls 5.5.html Discuz_X3.3_SC_UTF8.zip mariadb-galera-5.5.61-linux-x86_64.tar.gz php-5.6.33 utility 5.5.html.1 httpd-2.2.9 mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz php-5.6.33.tar.gz cmake-2.8.7 httpd-2.2.9.tar.gz nginx-1.14.0 readme cmake-2.8.7.tar.gz index.html nginx-1.14.0.tar.gz upload [root@aminglinux src]# mv upload/* /data/wwwroot/bbs/ [root@aminglinux src]# ls /data/wwwroot/bbs/ admin.php archiver cp.php favicon.ico home.php member.php portal.php source uc_client api config crossdomain.xml forum.php index.php misc.php robots.txt static uc_server api.php connect.php data group.php install plugin.php search.php template userapp.php
dedecms参考地址:http://blog.51cto.com/zero01/2046852
Zrlog参考地址:https://blog.youkuaiyun.com/xou6363/article/details/81082394