discuz mysql5.6_LAMP架构搭建Discuz论坛,纯干货!大家都在看!

实验目录:

一、LAMP架构概念

二、LAMP结构的安装与配置

2-1 手工编译安装http服务

2-2 手工编译安装mysql数据库

2-3 手工编译安装PHP工具

三、安装Discuz论坛(开源论坛)

四、小福利

一、LAMP架构概念

LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:

Linux,操作系统

Apache,网页服务器

MariaDB或MySQL,数据库管理系统(或者数据库服务器)

PHP、Perl或Python,脚本语言

是目前最为成熟的一-种企业网站应用模式,可提供动态Web站点应用及开发环境。

本次实验所需的所有服务的源码包均已上传到网盘,各位可自行拷贝使用(都是开源软件)

二、LAMP结构的安装与配置

2-1 手工编译安装http服务

使用mount.cifs将整个软件目录挂载到Linux中或者直接将整个目录拷贝进Linux均可。(本次实验挂载点为/mnt/目录)

安装Apache服务

解压Apache服务所需的三个软件包

[root@localhost ~]#cd /mnt

[root@localhost mnt]# tar xf apr-1.6.2.tar.gz -C /opt //将压缩包解压到opt目录下

[root@localhost mnt]# tar xf apr-util-1.6.0.tar.gz -C /opt

[root@localhost mnt]# tar xf httpd-2.4.29.tar.gz -C /opt

将apr、apr-util两个插件移入httpd的指定位置

[root@localhost mnt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr

[root@localhost mnt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

全部进行移动后,开始安装所需的环境包(\为换行显示)

[root@localhost mnt]# yum -y install \

gcc \

gcc-c++ \

make \

pcre-devel \

expat-devel \

perl

其中,

gcc、gcc-c++:c语言和c++的编译器

make:编译工具

pcre、pcre-devel:pcre语言的开发、编译器

expat-devel:使新建的网站能够解析xml格式的文件

安装结束后,移动到http软件包内,对“configure”文件进行手工编译(一定要进软件包内!!)

[root@localhost mnt]# cd httpd-2.4.29

[root@localhost httpd-2.4.29]# ./configure \

--prefix=/usr/local/httpd \

--enable-so \

--enable-rewrite \

--enable-charset-lite \

--enable-cgi

[root@localhost httpd-2.4.29]# make && make install //编译并进行安装(需要等待一定时间)

其中:

--prefix:后面为自定义安装的路径

--enable-so :开启核心模块

--enable-rewrite :开启重写功能

--enable-charset-lite :开启字符集支持

--enable-cgi:开启通用网关接口(cgj为一种编码格式)

完成后,开始添加启动脚本,方便系统能够更好的控制服务的开启与关闭,并顺手将httpd加入到SERVICE管理器中。

[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

//添加启动脚本

[root@localhost httpd-2.4.29]# chkconfig --add httpd //将httpd加入到SERVICE管理器

接着进入Apache服务的配置文件中,按照下图进行修改

9dc909ce858d3692c9388985cd136e2d.png

最后为便于管理我们可以将配置文件与启动相关文件做软链接(可以不加),关闭防火墙,并启动Apache服务

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

[root@localhost httpd-2.4.29]# systemctl stop firewalld.service

[root@localhost httpd-2.4.29]# setenforce 0

[root@localhost httpd-2.4.29]# service httpd start

2-2 手工编译安装mysql数据库

安装Mysql数据库

[root@localhost ~]# yum install -y ncurses-devel autoconf cmake //安转环境包以及cmake编译器

[root@localhost ~]# cd /mnt/

[root@localhost mnt]# tar xzvf mysql-5.6.26.tar.gz -C /opt //对mysql源码包进行解压

对源码包进行编译(\为换行)

[root@localhost mnt]# cd /opt/mysql-5.6.26

[root@localhost 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@localhost mysql-5.6.26]# make && make install //编译安装

其中,

-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:定义sock文件

配置MySQL

[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf

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

[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld //授予执行权限

[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld //将数据库服务添加到管理器中

[root@localhost mysql-5.6.26]# chkconfig mysqld --level 35 on //开启数据库的3,5运行级别

[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile //启用数据库命令到系统环境变量

[root@localhost mysql-5.6.26]# source /etc/profile //启用系统环境变量

[root@localhost mysql-5.6.26]# echo $PATH //查看系统环境变量

[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql //创建mysql程序用户,禁止用于登录

[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/ //给/usr/local/mysql/目录下所有用户提权

[root@localhost 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@localhost mysql-5.6.26]# vim /etc/init.d/mysqld //编辑数据库配置文件

basedir=/usr/local/mysql //指定数据库自身安装路径

datadir=/home/mysql //指定指定数据库存放位置

开启数据库,并设置登录密码

[root@localhost mysql-5.6.26]# service mysqld start

[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "123123" //给root账号设置密码

2-3 手工编译安装PHP工具

安装环境包,并解压源码包

[root@localhost mysql-5.6.26]# cd /mnt/

[root@localhost mnt]# yum -y install \

gd \

libpng \

libpng-devel \

pcre \

pcre-devel \

libxml2-devel \

libjpeg-devel

[root@localhost mnt]# tar xjvf php-5.6.11.tar.bz2 -C /opt

其中,

gd :图像化处理工具

libxml2-devel :支持解析,标签性语言

libjpeg-devel:支持jpg图片格式

编译并安装PHP工具

[root@localhost mnt]# cd /opt/php-5.6.11

[root@localhost 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@localhost php-5.6.11]# make && make install

[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini //对初始化文件进行覆盖,注意路径

[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ //建立PHP命令软链接

[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

其中,

--prefix=/usr/local/php5 :指定PHP工具安装路径

--with-gd :gd库,用于图形化处理

--with-zlib :函数库

--with-apxs2=/usr/local/httpd/bin/apxs :用于给apache提供功能性模块

--with-mysql=/usr/local/mysql :关联已安装的数据库

--with-config-file-path=/usr/local/php5 :关联PHP配置

--enable-mbstring:将功能性模块进行加载

修改apache配置文件,并建立PHP主页

[root@localhost php-5.6.11]# vim /etc/httpd.conf

按G定位末行,添加

AddType application/x-httpd-php .php

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

搜索DirectoryIndex,更改为

DirectoryIndex index.php index.html

wq保存退出

[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php //PHP主页

按i进行添加

phpinfo();

?>

wq保存退出

[root@localhost php-5.6.11]# service httpd restart //重启httpd服务

验证PHP网页

在浏览器中输入192.168.116.131/index.php,能够出现下面的网页即视为成功

d5e144d9b6934d8ad950719cd4861448.png

三、安装Discuz论坛(开源论坛)

将论坛源码解压并放置到http站点中

[root@localhost php-5.6.11]# cd /mnt

[root@localhost mnt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz

[root@localhost mnt]# cp -r /opt/Discuz/upload/ /usr/local/httpd/htdocs/bbs //放置于http站点中

建立bbs相关的数据库,并进行管理员密码的设置

[root@localhost mnt]# mysql -u root -p //进入MySQL数据库,密码为之前设定的

mysql> create database bbs; //在数据库中创建名为bbs的子数据库

mysql> GRANT all ON bbs.* TO 'zhy'@'%' IDENTIFIED BY '123123'; //对zhy用户进行提权,并设定密码为123123

mysql> flush privileges; //刷新数据库

mysql> quit

[root@localhost mnt]# cd /usr/local/httpd/htdocs/bbs/ //进入bbs目录

[root@localhost bbs]# chown -R daemon ./config/

[root@localhost bbs]# chown -R daemon ./data/

[root@localhost bbs]# chown -R daemon ./uc_client/data/cache/

[root@localhost bbs]# chown -R daemon ./uc_server/data/

//为各程序用户提升权限

完成论坛的安装

在浏览器中输入192.168.116.131/bbs,即可进入安装流程

d92a18b1a789586e80c86cffa3370c83.png

453dcb197684807c56bea5e54d6abe10.png

d5fed0e0df752c5f87784b05c76ac43c.png

然后即可完成安装。

四、文末小福利

能看到这里,有没有觉得很烦?有没有能一键进行全自动、免交互的安装过程?

答案当然是有的!

Shell脚本如下:

#!/bin/bash

#一键自动构建LAMP架构(请使用source执行或者使用.命令执行)

#数据库默认密码为123123

#远程挂载

df -hT | grep -o "cifs"

if [ $? -ne 0 ];then

echo "Start mount"

yum install expect -y

read -p "请输入提供硬盘主机IP:" gongip

/usr/bin/expect <

spawn mount.cifs //$gongip/LAMP-C7 /mnt/

expect {

"Password*"

{send "\r"}

}

expect eof

EOF

fi

#安装apache服务

cd /mnt/

tar zxf apr-1.6.2.tar.gz -C /opt

tar zxf apr-util-1.6.0.tar.gz -C /opt/

tar jxf httpd-2.4.29.tar.bz2 -C /opt/

cd /opt/

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 -y install gcc \

gcc-c++ \

make \

pcre-devel \

expat-devel \

perl

cd /opt/httpd-2.4.29/

./configure --prefix=/usr/local/httpd \

--enable-so \

--enable-rewrite \

--enable-charset-lite \

--enable-cgi

make && make install

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

sed -i -e '2a# chkconfig: 35 85 21\n# description: Apache is a World Wide Web server' /etc/init.d/httpd

chkconfig --add httpd

sed -i -e '197d' -e '196aServerName www.kgc.com:80' /usr/local/httpd/conf/httpd.conf

ip=`ifconfig ens33 | awk 'NR==2{print $2}'`

sed -i -e '52s/^/#/' -e '51d' -e "50aListen $ip:80" /usr/local/httpd/conf/httpd.conf

ln -s /usr/local/httpd/conf/httpd.conf /etc/

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

systemctl stop firewalld.service

setenforce 0

service httpd start

netstat -ntuap | grep httpd

if [ $? -eq 0 ];then

echo Apache服务启动

else

echo 启动失败

exit 1

fi

#安装mysql服务

echo "================================="

echo "安装mysql数据库,请稍后。。。"

sleep 3

yum install -y ncurses-devel autoconf cmake

cd /mnt/

tar zxf mysql-5.6.26.tar.gz -C /opt/

cd /opt/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

echo "进行编译安装,要很久,请稍后。。。"

make && make install

cp support-files/my-default.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add /etc/init.d/mysqld

chkconfig --level 235 mysqld on

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

source /etc/profile

echo $PATH | grep -o "mysql"

if [ $? -eq 0 ];then

echo "添加成功"

else

echo "失败"

exit 1

fi

useradd -s /sbin/nologin mysql

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

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql \

--datadir=/home/mysql

sed -i -e '47d' -e '46d' -e '45abasedir=/usr/local/mysql\ndatadir=/home/mysql' /etc/init.d/mysqld

service mysqld start

netstat -ntuap | grep mysqld

if [ $? -eq 0 ];then

echo Mysql数据库启动

else

echo 启动失败

exit 1

fi

/usr/bin/expect <

spawn mysqladmin -u root -p password 123123

expect {

"Enter*"

{send "\r"}

}

expect eof

EOF

#安装PHP工具

yum install -y gd \

libpng \

libpng-devel \

pcre \

pcre-devel \

libxml2-devel \

libjpeg-devel

cd ~

tar jxf /mnt/php-5.6.11.tar.bz2 -C /opt/

cd /opt/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

make && make install

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

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

sed -i '393a AddType application/x-httpd-php .php\n AddType application/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.conf

sed -i -e '256d' -e '255aDirectoryIndex index.html index.php' /usr/local/httpd/conf/httpd.conf

cat > /usr/local/httpd/htdocs/index.php <

phpinfo();

?>

EOF

service httpd stop

service httpd start

rm -rf /opt/*

umount /mnt

echo "LAMP架构完成。脚本执行结束~~~~"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值