CentOS 7 离线部署 Discuz! [ LAMP 架构 ]

1)搭建环境

CentOS 7

2)安装 Apache

所需 源码 软件包

  • apr-1.6.2.tar.gz
    • https://archive.apache.org/dist/apr/apr-1.6.2.tar.gz
  • apr-util-1.6.0.tar.gz
    • https://archive.apache.org/dist/apr/apr-util-1.6.0.tar.gz
  • httpd-2.4.29.tar.bz2
    • https://archive.apache.org/dist/httpd/httpd-2.4.29.tar.bz2

tips:apr 包是apache的依赖包,apr、apr-util 软件包支持 Apache 上层应用跨平台,提供底层接口库

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第1张图片

第一步:将软件包拷贝到 /opt 目录下

解压 然后把 apr 工具移动到 httpd 软件包的 srclib下面

[root@bbs-server opt]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2

mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

第二步:Yum 安装 gcc gcc-c++ make pcre-devel expat-devel perl [ 全部安装缺一不可 ]

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
  1. gcc、gcc-c++:linux 环境中的 c/c++ 编译器
  2. PCRE (Perl Compatible Regular Expressions) 是一个轻量级的 Perl 函数库 包括 perl 兼容的正则表达式库,功能和性能都很强大
  3. expat 是一个由 C语言 编写的 XML 解析库
  4. perl 是 perl 语言解释器 负责解释执行 perl 语言程序

第三步:配置 定制选项

[root@bbs-server opt]# cd httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

解释:

--prefix=/usr/local/httpd \          # 指定安装目录
--enable-so \                        # 启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite \                   # 启用网页地址重写功能 用于网站优化及目录迁移维护
--enable-charset-lite \              # 启用字符集支持 以便支持使用各种字符集编码的网页
--enable-cgi                         # 启用CGI脚本程序支持 便于扩展网站的应用访问能力

第四步:编译安装

[root@bbs-server httpd-2.4.29]# make -j4 && make install

第五步:添加服务让 chkconfig 管理

为了便于通过 chkconfig 进行管理 httpd 系统服务 在文件的开头添加 chkconfig 识别配置

# 将 apachectl 复制到 init.d 目录下便于 service 管理
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

vim /etc/init.d/httpd

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第2张图片

# chkconfig:35 85 21
chkconfig --add httpd        # 添加服务

第六步:修改 Apache 配置文件

vim /usr/local/httpd/conf/httpd.conf

Listen 192.168.80.222:80
ServerName bbsrd.innosilicon.net:80

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第3张图片

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第4张图片

 Listen and ServerName 都需要修改! 

# 建立软链接 /usr/local/bin 是系统环境变量 # 存放可执行命令 否则需要用绝对路径才能运行命令

# 建立软链接 /usr/local/bin 是系统环境变量
# 存放可执行命令 否则需要用绝对路径才能运行命令
ln -s /usr/local/httpd/conf/httpd.conf /etc
ln -s /usr/local/httpd/bin/* /usr/local/bin/

第七步:关闭防火墙 和 SELinux

systemctl stop firewalld.service
systemctl disable firewalld.service

sed -ri '#^SELINUX=#cSELINUX=disabled' /etc/selinux/config
setenforce 0

第八步:检查 配置文件 语法

httpd -t

第九步:启动 httpd 服务

service httpd start
chkconfig httpd on
netstat -nltp | grep 80

3)安装 Mysql

所需源码包:mysql-5.6.26.tar.gz

链接:百度网盘 请输入提取码

提取码:ru54

https://raw.githubusercontent.com/luocheng812/docker_tars/master/res/mysql-5.6.26.tar.gz

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第5张图片

第一步:Yum 安装 ncurses-devel、autoconf、cmake

yum -y install ncurses-devel autoconf cmake

第二步:使用 cmake 配置参数

cd /opt

# wget https://raw.githubusercontent.com/luocheng812/docker_tars/master/res/mysql-5.6.26.tar.gz

tar xzvf mysql-5.6.26.tar.gz
cd mysql-5.6.26/

[root@bbs-server mysql-5.6.26]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

解释

[root@bbs-server mysql-5.6.26]# cmake \
- DCMAKE_INSTALL_PREFIX=/usr/local/mysql \                  # 指定安装目录
- DDEFAULT_CHARSET=utf8 \                                   # 指定默认字符集是 utf8 支持中文
- DDEFAULT_COLLATION=utf8_general_ci \                      # 指定默认编码为 utf8
- DEXTRA_CHARSETS=all \                                     # 指定额外的编码 一般都是 all
- DSYSCONFIDIR=/etc \                                       # 指定配置文件目录
- DMYSQL_DATADIR=/home/mysql/ \                             # 指定数据库的数据目录
- DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock                   # 指定 socket 文件

第三步:编译安装

make -j4 && make install

第四步:进行如下配置 优化 MySQL 服务管理

[root@bbs-server mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

[root@bbs-server mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@bbs-server mysql-5.6.26]# chmod 755 /etc/init.d/mysqld

$ chkconfig --add /etc/init.d/mysqld
$ chkconfig mysqld --level 35 on

$ echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
$ source /etc/profile
$ echo $PATH

注意:

my-default.cnf 是 mysql 源码安装的默认配置文件

mysql.server 是服务端工具 主要作用就是为了方便启动和关闭 mysql 服务

mysql.server 启动 默认使用 /etc/my.cnf 配置文件信息

第五步:新建一个 mysql 用户

把 /usr/local/mysql 下的所有属主属组都改成 mysql 并完成 mysql 的初始化

useradd -s /sbin/nologin mysql

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

[root@bbs-server mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql/ \
--datadir=/home/mysql

解释:

[root@bbs-server mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \                                  # 指定运行 mysqld 进程用户名
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql/ \                   # 指定 Mysql 安装的绝对路径
--datadir=/home/mysql                           # 指定 Mysql 数据存放的绝对路径

mysql_install_db:用于完成 MySQL 的初始化

第六步:完善 MySQL 启动文件

[root@bbs-server mysql-5.6.26]# vim /etc/init.d/mysqld

basedir=/usr/local/mysql
datadir=/home/mysql

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第6张图片

第七步:启动 MySQL

MySQL 的服务端口:TCP:3306

service mysqld start
chkconfig mysqld on
netstat -anpt | grep 3306

第八步:指定 MySQL 的管理用户为 root

密码为 P@ssw0rd123456

mysqladmin -u root -p password "P@ssw0rd123456"
Enter password:                 [ 输入旧的密码  默认密码为空  所以直接回车 ]

第九步:用 root 登进 MySQL

mysql -uroot -pP@ssw0rd123456

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第7张图片

4)安装 PHP

所需源码软件包:php-5.6.11.tar.bz2

http://mirrors.sohu.com/php/php-5.6.11.tar.bz2

第一步:Yum 安装 gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel

yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-de
  • gd 库是 PHP 处理图形的扩展库,它提供了一系列用来处理图片的 API(应用程序编程接口),使用 gd库可以处理图片或者生成图片。在网站上,gd 库通常用来生成缩略图,或者对图片加水印,或者生成汉字验证码,或者对网站数据生成报表等
  • libpng 是一个跨平台的png解码库,方便易用。基本上如果是支持fopen之类函数的平台都可以支持
  • libxml2 是一个用来解析XML文档的函数库。它用 C 语言写成,并且能被多种语言所调用,可移植性非常好
  • libjpeg 是 ijg 组织推出的jpeg图片工具套件,采用C语言编写,其内含的jpegtran工具是google官方推荐的无损jpeg图片压缩工具

第二步:解压 php 软件包

cd /opt

rz php-5.6.11.tar.bz2

tar xjvf php-5.6.11.tar.bz2

第三步:切换到解压目录 定制配置

$ mkdir -p /usr/local/php5

[root@bbs-server opt]# cd /opt/php-5.6.11

[root@bbs-server php-5.6.11]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring

解释:

[root@bbs-server php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \                   # 指定 php 安装目录
--with-gd \                                  # 指定安装所依赖的 gd 库文件
--with-zlib \                                # 指定安装所依赖的 zlib 库文件 zlib是提供数据压缩用的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \   # 指定 Apache 服务能够支持访问 PHP 页面
--with-mysql=/usr/local/mysql/ \             # 指定 php 的数据库为 MySQL
--with-config-file-path=/usr/local/php5 \    # 指定 php 的配置文件路径
--enable-mbstring                            # 开启 mbstring 扩展 使之可以支持中文等语言

第四步:编译安装

make -j4 && make install

第五步:优化 php 管理

cp php.ini-development /usr/local/php5/php.ini

ln -s /usr/local/php5/bin/* /usr/local/bin

第六步:编辑 Apache 配置文件

找到两行 AddType 配置 在后面再插入两行内容 作用是让 apache 支持 php 文件

vim /etc/httpd.conf

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps


    DirectoryIndex index.php index.html

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第8张图片

第七步:在 Apache 的默认站点目录下编写一个 php 的页面

vim /usr/local/httpd/htdocs/index.php

第八步:重启 Apache 的服务

service httpd stop
service httpd start

第九步:验证访问网站

http://192.168.80.222/index.php

出现如下网页说明 LAMP 架构 已经搭建完成啦!

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第9张图片

5)搭建 Discuz!论坛

第一步:新建一个数据库bbs

并 新建一个登陆用户 admin

密码是 admin

授权让其可以在任何主机上登录

并对所有数据库有查询 插入 修改 删除的权限 % 表示任意

mysql -uroot -pP@ssw0rd123456

CREATE DATABASE bbs;

GRANT all ON bbs.* TO 'admin'@'%' IDENTIFIED BY 'admin';

flush privileges;

show databases;

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第10张图片

第二步:解压 Discuz 软件包 指定解压到 /opt/dis

  • http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第11张图片

cd /opt

unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis

第三步:将解压目录下的网站相关页面拷贝到 Apache 默认站点下的 bbs 目录下

cd /opt/dis

cp -r upload/ /usr/local/httpd/htdocs/bbs

第四步:改变相关目录的属主属组 [ 否则无法安装 ]

cd /usr/local/httpd/htdocs/bbs

chown -R daemon ./config/
chown -R daemon ./data/
chown -R daemon ./uc_client/
chown -R daemon ./uc_server/

第五步:访问 http://192.168.80.222/bbs/install

按照向导一步步安装 Discuz

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第12张图片

报错

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第13张图片

解决

排查思路

1. 确认数据库用户名或者密码是否正确

2. 有没有给该用户设置所以权限,并且可以从任意终端登录

3. 查看数据库中是否存在空用户

按照这思路排查后 发现原来是空用户导致的 需进入数据库按如下步骤进行修改

select user,host from mysql.user;

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第14张图片

delete from mysql.user where user='';

 flush privileges; # 刷新数据库

完成

继续安装

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第15张图片

 CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第16张图片

第六步:安装完成后验证登陆前台页面

http://192.168.80.222/bbs

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第17张图片

第七步:安装完成后验证登陆后台

用户名:admin

密码:xxxxxx

http://192.168.80.222/bbs/admin.php

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第18张图片

第八步:Please delete install/index.php via FTP!

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第19张图片

rm -rf /usr/local/httpd/htdocs/bbs/install/index.php

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第20张图片

 如上 admin 管理员身份登录论坛后台 可对论坛进行管理

第九步:注册一个新的用户

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第21张图片

第九步:进入服务器上的数据库中查看刚才新建的用户信息 

mysql -uroot -pP@ssw0rd123456

use bbs;

show tables;

desc pre_common_member;

select uid,email,username,password,status from pre_common_member;

CentOS 7 离线部署 Discuz! [ LAMP 架构 ]_第22张图片

完成!

你可能感兴趣的:(开源项目,centos)