linux下Discuz论坛部署.docx
《linux下Discuz论坛部署.docx》由会员分享,可在线阅读,更多相关《linux下Discuz论坛部署.docx(12页珍藏版)》请在冰点文库上搜索。
![linux下Discuz论坛部署.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/d33b0342-d092-467c-bc3a-99cee5e4430b/d33b0342-d092-467c-bc3a-99cee5e4430b1.gif)
linux下Discuz论坛部署
linux下Discuz论坛部署
Discuz是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。
Discuz的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。
下面我们就来看一下linux环境下的discuz是如何搭建的
搭建思路:
既然discuz的基础架构是采用php+mysql实现,那么就必然要用到apache+mysql+php
系统环境:
linuxcentos6.5x64
软件版本:
apache2.2.27mysql5.6.4cmake2.8.0php5.5.14phpmyadmin4.2.3discuz7.2zendopcache7.0.2
以上所有软件安装包(CentOS可从网上进行下载,此处不再提供下载地址),都可以通过XX网盘进行下载,下载地址:
一、安装apache
//注意:
安装之前需要查看是否已经安装apache
查看命令:
[root@forum~]#rpm–qahttpd//仅能查看安装的rpm包
或者使用:
[root@forum~]#find/-nameapache//查看系统中是否有apache的文件
//如果有安装的apache包,需要先进行卸载
卸载命令:
[root@forum~]#rpm–ehttpd*
//安装之前,需要先将软件放置某路径,然后进入路径安装apache,此处使用/usr/local
[root@forum~]#cd/usr/local//进入放置apache的目录
[root@forumlocal]#ls//查看apache安装包的名称
[root@forumlocal]#tarzxvfhttpd-2.2.27.tar.gz//解压安装包,此处为源码安装
[root@forumlocal]#cdhttpd-2.2.27//进入解压之后的文件夹内
[root@forumlocal]#./configure--prefix=/usr/local/apache--enable-modules=so
[root@forumlocal]#make
//编译
[root@forumlocal]#makeinstall//安装
[root@forumlocal]#usr/local/apache/bin/apachectlstart
//启动apache
解析:
①安装时使用--prefix=/usr/local/apache选项来指定apache的安装目录为/usr/local/apache,--enable-modules=so选项是让apache动态加载DSO模块,如*.so文件,就相当去windows下的dll文件
②如果make时没有安装gcc,则会报错,具体报错信息大概是提示没有编译环境,此时需要安装gcc,因为gcc的安装需要很多依赖包,因此强烈建议在有外网访问的机器上进行安装,因为我所做的实验是在内部虚拟化平台上,没有外网访问权限,所以多次试图离线安装都失败
关于apache服务的启动、停止:
源码包安装方式启动为/usr/local/apache/bin/apachctlstart,文件apachecl是httpd的一个可执行文件控制脚本,一般用于控制apache的启动与停止
安装完成之后启动apache时报错:
httpd:
apr_sockaddr_info_get()failedfor,XX得知问题这个问题应该是没有在/etc/httpd/conf/httpd.conf中设定ServerName。
所以apache会用主机上的名称来取代,首先会去找/etc/hosts中有没有主机的定义。
解决方法:
//此处只提供解决思路,具体操作可自行XX
1.可以设定httpd.conf文件中的ServerName,如下:
ServerName:
80
2.在/etc/hosts中填入自己的主机名称bogon,如下:
127.0.0.1
3.重新启动apache服务
更改完成之后,使用servicehttpdstatus查看服务运行状态,提示httpd:
unrecognizedservice,报错原因为没有将apachectl设置为系统服务,
解决方法:
1.[root@localhost~]#cp/usr/local/apache2/bin/apachectl/etc/init.d/httpd
2.[root@localhost~]#vi /etc/init.d/httpd
3.在第二行加入(setnu显示行号)
[root@localhost~]#chkconfig:
23458515
[root@localhost~]#description:
httpdiswebserver(此处为描述)。
③因为apache需要作为系统服务开机启动,所以需要将其加入开机启动项
[root@localhost~]#chkconfig--addhttpd
[root@localhost~]#chkconfig--level35httpdon
测试:
首先我们可以使用netstat–ntl查看apache是否启动,apache用的是80端口
确定80端口启用后我们可以在浏览器中访问服务器的http服务,在浏览器中输入http;//10.255.108.222//10.255.108.222为apache服务器的地址
发现打不开网页,原因为服务器的防火墙没有关闭,所以不允许其他流量通过
关闭防火墙,并使重启时防火墙自动关闭
[root@localhost~]#serviceiptablesstop//关闭防火墙
[root@localhost~]#chkconfigiptablesoff//重启时防火墙不启动
再次打开浏览器,发现网站可以正常访问,如下图,表明apache已经正常启动
至此,apache的安装完成,进入第二步,安装mysql
二、安装mysql
下面开始讲解mysql的安装,此处使用的是mysql5.6.4,源码安装,因为mysql从5.5开始,编译安装都需要使用cmake进行编译,因此需要注意安装方式:
安装cmake,因为一般系统默认不安装cmake,因此首先需要安装cmake
[root@localhost~]#cd/usr/local//进入放置cmake的目录,此处放在/usr/local
[root@forumlocal]#tar–zxvfcmake-2.8.0-rc3.tar.gz//解压
[root@forumlocal]#cdcmake-2.8.0-rc3.tar.gz//进入解压之后的目录
[root@forumlocal]#./configure--prefix=/usr/local/cmake //配置安装目录
[root@forumlocal]#gmake//编译
[root@forumlocal]#makeinstall//安装
安装完cmake之后,进行mysql的安装:
[root@localhost~]#cd/usr/local//进入放置cmake的目录,此处放在/usr/local
[root@forumlocal]#tarzxvfmysql-5.6.4-m7.tar.gz//解压mysql压缩包
[root@forumlocal]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
报错:
-bash:
cmake:
commandnotfound
原因没有将cmake的路径加入环境变量,使用下面命令:
[root@forumlocal]#exportPATH=/usr/local/cmake/bin:
$PATH
再次执行上面的命令安装mysql
[root@forumlocal]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
//需要将切换至mysql解压文件夹内
否则报错:
CMakeError:
Thesourcedirectory"/usr/local/cmake"doesnotappeartocontainCMakeLists.txt.
[root@forumlocal]#make
[root@forumlocal]#makeintall
创建mysql使用到的用户和用户组
[root@forumlocal]#groupaddmysql //创建用户组mysql
[root@forumlocal]#useradd-gmysqlmysql
//创建一个用户,名为mysql,并指定mysql用户属于mysql组
[root@forumlocal]#chown-Rroot/usr/local/mysql
//让root用户对MySQL文件夹拥有管理权限
[root@forumlocal]#chown-Rmysql/usr/local/mysql/data
//让mysql用户拥有对数据库目录的读写权限
[root@forumlocal]#chgrp-Rmysql/usr/local/mysql
//将mysql文件夹的创建者更改为mysql
安装默认数据库
[root@forumlocal]#cd /usr/local/mysql/scripts/
[root@forumlocal]#sudo./mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data/--user=mysql
报错sudo:
./mysql_install_db:
commandnotfound
原因为文件没有被赋予执行的权限
解决方法:
赋予root用户执行权限
[root@forumscripts]#chmodu+xmysql_install_db
再次运行安装默认数据库
[root@forumscripts]#sudo./mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data/--user=mysql
至此,完成数据库的默认安装
将mysql的配置文件和服务文件复制到系统配置路径下面
[root@forumscripts]#cd/usr/local/mysql/support-files/
[root@forumsupport-files]#cpmy-f /etc/f
[root@forumsupport-files]#cp mysql.server/etc/init.d/mysqld
启动mysqld服务
[root@forumsupport-files]#servicemysqldstart
报错:
env:
/etc/init.d/mysqld:
Permissiondenied
原因:
root用户对mysqld文件没有可自行权限(ls-l)
解决方法:
[root@forum~]#chmod+x/etc/rc.d/init.d/mysqld
添加开机启动:
[root@forum~]#chkconfig--addmysqld
增加mysql的root用户的密码,为了安全起见,建议设置登陆数据库时需要身份验证,此处的root用户为mysql管理员用户,并不是系统的管理员root用户
[root@forum~]#/usr/local/mysql/bin/mysqladmin–urootpassword’Your_Pass’
[root@forum~]#/usr/local/mysql/bin/mysql-uroot–p //以mysql管理员root登录数据库,然后会要求输入密码,输入密码正确后便可进入数据库
Mysql默认情况下使用的是3306端口,可以使用命令netstat–ntl查看系统启用了哪些端口
三、安装PHP
下面开始讲解php的安装,此处使用版本为5.5.14,与之前版本安装也稍有不同,下面为具体安装步骤
[root@forum~]#cd/usr/local
[root@forumlocal]#tar-zxvfphp-5.5.14.tar.gz
[root@forumlocal]#cdphp-5.5.14
[root@forumlocal]#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs--with-mysql=/usr/local/mysql
[root@forumlocal]#make
[root@forumlocal]#makeinstall
[root@forum~]#cpphp.ini-development/usr/local/lib/php.ini
解析:
在安装过程中,--prefix参数定义的是php的安装目录。
--with-apxs2:
Apxs是apache提供的一个模块,是为了让php在运行时加载指定的模块到apache。
--with-mysql:
指定mysql数据库
php的安装,总算没出什么问题,很快就给安装完成,下一步,更改apache的设置,使其能够支持php,具体操作:
[root@forum~]#vi/usr/local/apache/conf/httpd.conf
1.确认PHP模块已经添加?
LoadModulephp5_modulemodules/libphp5.so
约在53行,如果我们在安装php时,在参数中跟加了apxs,那么apache的配置文件中已经存在了此项,如没添加则手工添加
2.让apache识别*.php文件
找到AddType处,并添加以下2行:
AddTypeapplication/x-httpd-php.php.php3.phtml.inc
AddTypeapplication/x-httpd-php-source.phps
3.更改php.ini的配置文件:
[root@forum~]#vi/usr/local/lib/php.ini
找到register_globals=off这行,将Off更改为On,并保存退出
4.测试apache和php是否整合成功
下面我们测试apache和php是否整合成功,在apache文档跟目录下新建一个小小的php程序
[root@forum~]#cd/usr/local/apache/htdocs/
[root@forumhtdocs]#viindex.php
在index.php文件中写入下面三行,并保存退出
php
phpinfo();
>
然后,重启apache服务
[root@forumhtdocs]#servicehttpdrestart
访问,在浏览器中输入http:
//localhost/index.php 出现一下界面则说明整合成功
小结:
若想以index.php作为默认文档,也就是在访问时直接在浏览器中输入http:
//localhost,不加index.php,则可以修改apache配置文件中的DirectoryIndex项,只需把index.php放到index.html前面即可
具体操作命令:
[root@forum~]#vi/usr/local/apache/conf/httpd.conf
找到DirectoryIndex这行,约为168行,将index.php写在index.html前面,即可解决这个问题
四、PHPZendOpcache安装
ZendOptimizer,用优化代码的方法来提高php应用程序的执行速度。
实现的原理是对那些在被最终执行之前由运行编译器(Run-TimeCompiler)产生的代码进行优化。
这部分在进行安装的过程中出现问题,没有解决,具体操作命令和报错信息如下所示:
[root@forumlocal]#tarzendopcache-7.0.2.tgz
[root@forumlocal]#cdzendopcache-7.0.2
[root@forumlocal]#cpconfig.m4/usr/local/php/bin
[root@forumlocal]#cd/usr/local/php/bin/
[root@forumbin]#./phpize
[root@forumbin]#./configure--with-php-config=/usr/local/php/bin/php-config
[root@forumbin]#make
报错:
make:
***Noruletomaketarget`/usr/local/php/bin/ZendAccelerator.c’,neededby`ZendAccelerator.lo’.Stop.
按照网上提供的解决思路:
[root@forumbin]#cp/usr/local/php/ext/opcache/ZendAccelerator.lo/usr/local/php/bin/
但是还是不行,最终放弃安装;
五、安装phpmyadmin
phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的资料库图形化管理工具,可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库,安装的时候也出错,最终也没有解决;
[root@forumlocal]#tarzxvfphpMyAdmin-3.2.0-all-languages.tar.gz
[root@forumlocal]#mvphpMyAdmin-3.2.0-all-languagesphpmyadmin
[root@forumlocal]#mvphpmyadmin/usr/local/apache/htdocs/
下面开始安装phpmyadmin,在浏览器中输入http:
//localhost/phpmyadmin/index.php
报错信息:
Fatalerror:
Calltoundefinedfunctionmb_detect_encoding()in /usr/local/apache/htdocs/phpmyadmin/libraries/php-gettext/gettext.inc online 177
问题也没有得到解决
六、安装discuz
到现在为止,LAMP环境搭建完成,虽然还有两个问题没有解决,但是那都是锦上添花的事,没有解决问题也不是很大,我们的目的就是为了安装discuz,所以前面的两个问题暂且不管,先来把大事给解决了,安装discuz。
此处使用的是discuz7.2,已经将UCenter和UCenterHome集成到discuz中,因此只要将upload文件夹内的文件复制到/usr/local/apache/htdocs/forum即可,然后赋予全部权限就可以进行安装了。
[root@forumlocal]#mvupload/usr/local/apache/htdocs/forum
[root@forumlocal]#cd/usr/local/apache/htdocs
[root@forumhtdocs]#chmod–R777forum/*
然后IE访问http:
//10.255.108.222/install/index.php进行discuz的安装,首先会对服务器的基础环境进行检测,只有通过才可以进行安装,然后会要求你提供mysql的用户名和密码,之后下一步就可以进行安装,安装完成之后,就可以登录论坛,也可以登录家园,管理员可以登录UCenter进行管理,具体的界面,此处不再给出截图,涉及discuz论坛的修改,请参照其他文档。
七、未解决的问题
1.zend没有安装完成
2.phpmyadmin报错