Lnmp、Tomcat、Discuz论坛、dedecms企业网站、Zrlog博客

  1. 高可用负载均衡:Keepalived+Nginx
  2. Lnmp、Tomcat、Discuz论坛、dedecms企业网站、Zrlog博客
  3. 数据库主从,读写分离
  4. 监控Zabbix、Nfs,共享静态文件
  5. 分发系统

软件环境:

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配置文件

[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.csdn.net/xou6363/article/details/81082394

猜你喜欢

转载自blog.csdn.net/xou6363/article/details/81501791