LAMP架构:Discuz论坛手工编译安装

前言:

在这里插入图片描述
LAMP网站架构是目前比较流行的Web框架,该框架包括:Linux操作系统,Apache 网络服务器,MySQL 数据库,Perl 或者Python编程语言,所有组成产品均是开源软件,LMAP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

一、LAMP平台

1.1 LAMP平台概述

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

LAMP是通过选取 linux系统、API接口、mysql数据库,PHP 、java 、python等各种后台语言的首字母而组成的。

LAMP是基本的网站架构

Linux系统中

apache服务特性:动态交互,包含多个功能模块,支持多种语言

通过API接口进行支持

可以通过接口连接PHP JAVA Python 等各种后台语言

缺点是断电后会丢失数据

所以我们如果想要保持数据持久化,则可以建立数据库 mysql

1.1.1 LAMP优势

灵活性,即没有技术上的限制也没有许可证的限制。这允许能够以适合自己的方式灵活的构建和部署应用程序,而不是以正在使用的技术提供商规定的方式。

个性化:因为LAMP组件时开源软件,目前已建立了大量的额外组件和能提供额外功能的模块,开发者能够个性化设置组件和功能以便满足所需要求。

易开发:用LAMP组件开发比较简单,代码通常比较简介,程序员可以较为便捷地修改或者扩展应用程序,同时也给专业程序员提供了各种高级特性。

易应用:大多数主机服务都把基于LAMP的环境作为表中,应用程序不需要编译,可以像拷贝一个应用软件一样在新的主机上部署一个应用程序。

安全:由于时开源软件,大量程序员关注这些软件的开发过程,疑难问题通常能很快修复,不需要昂贵的技术支持合同。经过大量用户和团体组织多年的使用,LAMP技术是安全和稳定的。

成本低廉:因为LAMP组件都是开源软件,遵循GPL协议,可以自由获得和免费使用,极大降低了部署成本。

二、手工编译安装Apache

2.1 通过Windows下载并共享LAMP软件包

在这里插入图片描述
在这里插入图片描述

2.2 在centos虚拟机中远程获取共享

获取windows共享文件并挂载到mnt目录

[root@lamp ~]# smbclient -L //192.168.181.1/
	Sharename       Type      Comment
	---------       ----      -------
	LAMP-C7         Disk      

[root@lamp ~]# mount.cifs //192.168.181.1/LAMP-C7 /mnt		//远程挂载软件包到/mnt目录

[root@lamp ~]# cd /mnt						//进入/mnt目录
[root@localhost mnt]# ls
apr-1.6.2.tar.gz                  Discuz_X2.5_SC_UTF8.zip  php-5.6.11.tar.bz2
apr-util-1.6.0.tar.gz             httpd-2.4.29.tar.bz2
cronolog-1.6.2-14.el7.x86_64.rpm  mysql-5.6.26.tar.gz
2.3 手工编译安装Apache服务
2.3.1 将源码包解压到/opt目录中
[root@lamp mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/
...省略解压过程
[root@lamp mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
....省略解压过程
[root@lamp mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
....省略解压过程
[root@localhost mnt]# cd /opt
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
2.3.2 移动并重命名httpd组件包并安装编译工具
[root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr	
[root@lamp opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
##安装编译工具
[root@lamp opt]# yum -y install \
gcc \										//c语言
gcc-c++ \  						 //c++语言
make \      						//编译工具
pcre-devel \ 					 //pcre语言工具
expat-devel \  					//识别标签性语言工具
perl   								 //perl编译器
2.3.3 配置安装目录及功能模块
[root@lamp opt]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \   ##自定义安装路径
> --enable-so \                 ##核心功能模块 
> --enable-rewrite \            ##重写功能,可以做防盗链操作
> --enable-charset-lite \       ##支持字符集
> --enable-cgi					##公共网关接口(编码的规范)支持所有网站开发语言的格式
............省略配置过程
2.3.4 编译与安装
[root@localhost httpd-2.4.29]# make && make install
...........省略部分内容
2.3.5 替换启动脚本
[root@localhost /]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

将apache的启动脚本复制到 /etc/init.d 目录中便于系统管理

2.3.6 配置httpd文件参数
[root@localhost init.d]# vim httpd
#!/bin/sh
# chkconfig: 35 85 21  
# description: Apache is a World Wide Web server
............省略部分内容
----》wq

在httpd文件文首添加备注文件

chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭

[root@localhost init.d]# chkconfig --add httpd
##将httpd加入到SERVICE管理器中
[root@localhost init.d]# vim /usr/local/httpd/conf/httpd.conf
.......省略部分内容
ServerName www.boke.com:80
Listen 192.168.181.139:80
#Listen 80
.......省略部分内容
-----》wq(保存)

进入配置文件

在行尾模式输入/ServerName,找到:ServerName 把前面的#号注释删除,同时可以把域名更改一下

在行尾模式输入/Listen 查找到80端口监听,关闭IPv6的监听,开启本机地址的监听

为了便于我们的管理,可以给配置文件创建软链接:

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

同时为了让其中的命令便于系统识别,所以我们可以再创建一个软件接放在/usr/local/bin中,之后我们可以直接使用其中的命令

[root@localhost init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

最后检查一下配置文件的语法正确性

[root@localhost init.d]# httpd -t
Syntax OK
2.3.7 关闭防火墙及增强型安全功能
[root@localhost init.d]# systemctl stop firewalld.service 
[root@localhost init.d]# setenforce 0

使用service 命令开启服务,同时查看的监听端口

[root@localhost init.d]# service httpd start
[root@localhost init.d]# netstat -ntap | grep 80
tcp        0      0 192.168.181.139:80      0.0.0.0:*               LISTEN      34954/httpd   
2.3.8 使用windows系统检验

在这里插入图片描述

apache服务配置完成

2.4 小结

我们在手工编译安装apache中,从安装好源代码包之后,我们一直在对启动脚本和配置文件这两个核心的文件进行设置,启动脚本控制着服务的开启和关闭,配置文件配置的是整个服务的功能。

所有的服务都离不开这两个核心文件。

三、手工编译安装MYSQL

3.1 安装MYSQL环境包和Cmake工具包
[root@localhost init.d]# yum install -y ncurses-devel autoconf cmake
3.2 解压数据库的软件包解压缩到/opt目录
[root@localhost mnt]# tar xzvf mysql-5.6.26.tar.gz -C /opt/
.........省略部分内容
3.3 进入mysql数据库目录,配置数据库
[root@localhost mysql-5.6.26]# cd mysql-5.6.26/
[root@lamp 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  		             ##定义sock文件连接数据库文件
3.3.1 编译与安装
[root@lamp mysql-5.6.26]# make	
.........省略部分内容
[root@lamp mysql-5.6.26]# make install
.........省略部分内容
3.4 调试配置文件和启动脚本
[root@lamp mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"yes
[root@lamp mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
cp:是否覆盖"/etc/init.d/mysqld"yes
[root@lamp mysql-5.6.26]# chmod 755 /etc/init.d/mysqld		##授予执行权限
[root@lamp mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld                 ##将数据库服务添加到管理器中
[root@lamp mysql-5.6.26]# chkconfig  mysqld --level 35 on	                 ##开启数据库的3,5运行级别
[root@lamp mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile	
        #启用数据库命令,调用mysql环境变量,追加到系统环境变量中
[root@lamp mysql-5.6.26]# source /etc/profile		##启用系统环境变量
[root@lamp mysql-5.6.26]# echo $PATH 			##查看系统环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
3.5 创建程序用户、提权
[root@lamp mysql-5.6.26]# useradd -s /sbin/nologin mysql		##创建mysql程序用户,禁止登录数据库
[root@lamp mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/			##给/usr/local/mysql/目录下所有用户提权
3.6 配置数据库
[root@lamp 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@lamp mysql-5.6.26]# vim /etc/init.d/mysqld 		##编辑数据库配置文件 
basedir=/usr/local/mysql          ##在第46行指定数据库本地路径 
datadir=/home/mysql               ##在第47行指定数据库存放位置
[root@lamp mysql-5.6.26]# service mysqld start			##开启数据库服务
Starting MySQL. SUCCESS! 
[root@lamp mysql-5.6.26]# netstat -anpt | grep 3306			##查看数据库的监听端口3306
tcp6       0      0 :::3306                 :::*                    LISTEN      90105/mysqld  
[root@lamp mysql-5.6.26]# mysqladmin -u root -p password "abc123"			##设定数据库的root用户的密码
Enter passwd:
##此处交互时要求输入的密码时原始密码,因为无原始密码,所以直接按回车

四、安装PHP

php是一个后台的代码,不是一个服务,所以只有配置文件

4.1 安装php环境
[root@lamp ~]# yum -y install \
gd \              ##是php处理图形的扩展名,用于处理、生成图片
libpng \          
libpng-devel \    ## 环境包
pcre \           
pcre-devel \
libxml2-devel \    ##支持xml标记性语言
libjpeg-devel      ##环境包
				##安装PHP环境
4.2 配置PHP
[root@lamp ~]# cd /mnt
[root@lamp mnt]# tar jxvf php-5.6.11.tar.bz2 -C /opt/			##解压PHP源码包
...........省略部分内容
[root@lamp mnt]# cd /opt/php-5.6.11/	##进入/opt/php-5.6.11/目录
[root@lamp 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	//配置PHP相关组件及关联数据库与httpd的服务
apxs2可以让Apache中的各种功能模块直接提供给apache的服务中进行加载
[root@lamp php-5.6.11]# make			##编译,注意编译完切勿进行测试

[root@lamp php-5.6.11]# make install		##安装

[root@lamp php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini             ##复制配置文件到php.ini目录中

[root@lamp php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/            ##建立PHP命令软链接便于系统识别

[root@lamp php-5.6.11]# vim /etc/httpd.conf			     ##编辑httpd配置文件,让apache文件能够识别php的功能模块
##在第256行的DirectoryIndex index.html中在index.html之后添加index.php
255 <IfModule dir_module>
256     DirectoryIndex index.html index.php
257 </IfModule>
##再在后面换行追加以下两行条目让httpd支持源码PHP模块
	AddType application/x-httpd-php .php
   	AddType application/x-httpd-php-source .phps

[root@lamp php-5.6.11]# vim /usr/local/httpd/htdocs/index.php					//编辑PHP首页文件,写入以下信息
<?php
phpinfo();
?>
[root@lamp php-5.6.11]# service httpd stop
[root@lamp php-5.6.11]# service httpd start
//重启httpd服务,最好别用restart和reload

make 完成后会弹出提醒我们进行测试的语句:

Dont't forget to run 'make test'

因测试时间较长,这里我们选择不进行测试

以上,LAMP架构已搭建完成。

4.3 验证

在源IP地址后加入192.168.181.139/index.php就可以登录到指定的PHP首页
在这里插入图片描述

五、安装论坛

5.1 创建一个数据库

首先在mysql数据库中创建一个bbs数据库,用来承载论坛

[root@lamp mnt]# mysql -u root -p  
##进入数据库,密码为之前设定的abc23
mysql> create database bbs;
##创建bbs数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'192.168.235.137' IDENTIFIED BY 'admin123';
##给bbs中所有的表格提升权限,创建一个管理bbs数据库的用户“bbsuser”,“%”允许从所有终端登录,密码是admin123
mysql> flush privileges;
##刷新数据库
mysql> quit
##退出数据库
5.2 解压论坛压缩包
[root@lamp php-5.6.11]#cd /mnt		
##进入/mnt目录
[root@lamp mnt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz
##解压论坛组件包到/opt目录
[root@lamp mnt]# cp -r /opt/Discuz/upload/ /usr/local/httpd/htdocs/bbs
##复制/opt/Discuz目录里的upload到httpd站点的bbs目录中
  • upload 是我们需要用到的网站的界面、源码等数据
5.3 给各程序用户提升权限
[root@lamp mnt]# cd /usr/local/httpd/htdocs/bbs/
//进入bbs目录
[root@lamp bbs]# chown -R daemon ./config/
[root@lamp bbs]# chown -R daemon ./data/
[root@lamp bbs]# chown -R daemon ./uc_client/data/cache/[root@lamp bbs]# chown -R daemon ./uc_server/data/
//为各程序用户提升权限
5.4 安装Discuz
  • 在浏览器中输入192.168.235.137/bbs安装Discuz
    在这里插入图片描述

  • 在设置允许环境中选择“全新安装“

在这里插入图片描述

  • 在安装数据库中输入相关信息
    在这里插入图片描述
    数据服务器:192.168.181.139(此处输入创建数据库主机的IP)
    数据库名:bbs
    数据库用户名:bbsuser (用户名可在命令行修改)
    数据库密码:admin123(密码可在命令行修改)
    管理员账号:admin(该账号为默认)
    密码:123123(密码可直接在网页设定)
5.5 管理论坛
  • 输入192.168.181.139/bbs 即可进入论坛(LAMP架构服务器的IP)
    在这里插入图片描述

  • 进入后端控制台

  • 输入192.168.181.139/bbs/admin.php即可进入后端控制台登录页面
    用户名是我们之前设置的”admin“ 密码是”123123“
    在这里插入图片描述

总结:

LAMP架构是目前较为完善、稳定的架构体系,在手工编译安装时,我们需要注意的有:
1、针对apache、mysql的配置文件与启动脚本进行设置,同时php的配置文件的扩展名比较特殊,是以ini为结尾的。
2、我们安装服务的启动脚本、命令及环境变量需要复制或声明或启动环境变量来让系统可以识别。

发布了48 篇原创文章 · 获赞 46 · 访问量 6615

猜你喜欢

转载自blog.csdn.net/weixin_45726050/article/details/103521124