设为首页 收藏本站
查看: 1295|回复: 0

[经验分享] CentOS下搭建Discuz!论坛,并配置Apache

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-31 09:04:26 | 显示全部楼层 |阅读模式
搭建LAMP后能够正常解析出网页来,那么我们现在来搭建一个Discuz!论坛。

一、安装Discuz!

1、新建目录来存放网页等
[iyunv@tpp ~]# mkdir /data/www
[iyunv@tpp ~]# cd /data/www   
[iyunv@tpp www]# wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip                                        //下载最新版本的Discuz!
[iyunv@tpp www]# unzip Discuz_X3.2_SC_GBK.zip     //解压
[iyunv@tpp www]# ls
Discuz_X3.2_SC_GBK.zip  readme  upload  utility  
2、程序文件会放于upload下,所以全部移到www目录下,并且删除多余的文件。

[iyunv@tpp www]# mv upload/* ./      
[iyunv@tpp www]# ls
admin.php  connect.php             favicon.ico  install     readme    template  utility
api        cp.php                  forum.php    member.php  robots.txt  uc_client
api.php    crossdomain.xml         group.php    misc.php    search.php  uc_server
archiver   data                    home.php     plugin.php  source      upload
config     Discuz_X3.2_SC_GBK.zip  index.php    portal.php  static      userapp.php
[iyunv@tpp www]# rm -rf readme/ utility/ upload/ Discuz_X3.2_SC_GBK.zip   
3、配置一个虚拟主机
[iyunv@tpp www]# vim /usr/local/apache2/conf/httpd.conf
#Include conf/extra/httpd-vhosts.conf    //找到,开放这个虚拟主机配置文件,如下:
Include conf/extra/httpd-vhosts.conf
[iyunv@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf    //编辑虚拟主机配置文件,在文件最后面有两个模板案例,删除一个再修改另一个为:
<VirtualHost *:80>
  # ServerAdmin webmaster@dummy-host.example.com         //管理员邮箱,我们可以去掉
   DocumentRoot "/data/www"                       //改为之前创建的目录
   ServerName www.tpp.com                        //设置域名
   ServerAlias www.ppt.com                       //可以设置多个域名
  # ErrorLog "logs/dummy-host.example.com-error_log"       //错误日志
  # CustomLog "logs/dummy-host.example.com-access_log" common  //访问日志
</VirtualHost> 接着打开80端口
[iyunv@tpp www]# vim /usr/local/apache2/conf/httpd.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
改为:
<Directory />
    Options FollowSymLinks
    AllowOverride all
    Order deny,allow
    Allow from all
</Directory>保存退出,检测配置是否正确,并重启

[iyunv@tpp www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@tpp www]# /usr/local/apache2/bin/apachectl restart4、配置hosts文件

找到本机 C:\Windows\System32\drivers\etc下的hosts文件,添加下面内容后保存退出。
192.168.0.104  www.tpp.com  www.ppt.com  www.ppt1.com
5、我们在浏览器上输入网址 www.tpp.com 这是就会跳转到Discuz!安装界面。
wKiom1XhuJewsMjyAARxsVt_G-M767.jpg
wKioL1XhuuvD3cw5AALVqO2NsZ8971.jpg
同意安装后我们看多好多都是不可写,这时我们就要给他们权限。
首先查看Apache进程以哪个身份运行
[iyunv@tpp www]# ps aux |grep http
daemon    4566  0.0  1.0  30140 11028 ?        S    04:42   0:00 /usr/local/apache2/bin/httpd -k start
daemon    4567  0.0  0.9  28724  9480 ?        S    04:42   0:00 我们可以看到是daemon,下面我们把所有没有权限的文件都赋予daemon组
[iyunv@tpp www]# chown -R daemon config data uc_client/data uc_server/data
刷新页面后,全都变成绿色的了。下一步就是全新安装。

6、接下来就是配置数据库
[iyunv@tpp www]# /usr/local/mysql/bin/mysql
mysql> create database discuz;     //创建一个数据库,数据库名为discuz
mysql> grant all on discuz.* to 'tpp'@'localhost' identified by 'tpplinux';
     // all 所有的权限,用户tpp,密码tpplinux7、然后我们回到原网页
填写数据库名:discuz,数据库用户名:tpp,数据库密码:tpplinux,其他的默认;管理员admin 密码123456,下一步;安装完成以后,点击最右下角的“您的论坛已完成安装,点此访问”。
wKiom1Xin_KDx_1BAATO0IU6HTo331.jpg


二、配置Apache

1、为某个虚拟主机配置用户认证
需求:用户访问/data/www/abc目录下的123.txt文件需要认证
[iyunv@tpp www]# mkdir abc
[iyunv@tpp www]# cd abc
[iyunv@tpp abc]# cp /etc/passwd 123.txt
[iyunv@tpp abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
在相应的虚拟主机配置文件段,加入

<Directory /data/www/abc>
            AllowOverride AuthConfig
            AuthName "自定义的"
            AuthType Basic
            AuthUserFile /data/.htpasswd   # 这里的/data/.htpasswd可以随便写一个路径或名字,没有限制(这句中文只做注解,不要加进去,要不然会报错)
            require valid-user
</Directory>
如图:
wKiom1Xi8Ruzia-wAAHmrQnwBx4559.jpg
保存后,然后创建apache的验证用户

[iyunv@tpp abc]# /usr/local/apache2/bin/htpasswd -c /data/.htpasswd tpp
第一次创建用户tpp要用到-c 参数,第2次添加用户,就不用-c参数,因为-c是创建的意思,如果加上会把这个文件重写。

[iyunv@tpp abc]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@tpp abc]# /usr/local/apache2/bin/apachectl restart接着我们来访问下 www.tpp.com/abc/123.txt 如下图:
wKioL1Xi9Y-g8PPfAAFYB3ImxS4603.jpg
上面有乱码,是字符集问题,配置文件写了“自定义的”,我们可以写成英文的。


2、配置域名跳转
需求:要把访问域名 www.ppt.com(或www.ppt1.com) 的域名转发到 www.tpp.com
实现:

[iyunv@tpp abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  //虚拟主机中增加如下内容<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.ppt.com$
    RewriteRule ^(.*)$ http://www.tpp.com/$1 [R=301,L]
</IfModule>
如果是多个域名重定向到一个域名
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.ppt.com [OR]
    RewriteCond %{HTTP_HOST} ^www.ppt1.com$
    RewriteRule ^/(.*)$ http://www.tpp.com/$1 [R=301,L]
</IfModule>如下图所示:
wKioL1Xi-wjQKDYfAAMUAHyJ90I117.jpg
然后重新重新检测和加载Apache
[iyunv@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful
下面我们在浏览器输入www.ppt.com或者[url]www.ppt1.com[/url]时,会自动跳转到www.tpp.com

3、配置apache的访问日志,并以一天时间来分割。
[iyunv@tpp ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
wKiom1Xi_sfTLBLuAAI3fnxQ3X0375.jpg
修改为以日期为命名的错误日志和访问日志
ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-error_%Y%m%d.log 86400"
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$" image-request
    SetEnvIf Request_URI ".*\.css$" image-request
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-access_%Y%m%d.log 86400" combined env=!image-request如下图:
wKiom1XjBxaDVHY8AAMIqOoRNG8714.jpg

其中命令都是以绝对路径,rotatelogs是分割工具,%Y%m%d时间为分割单位,86400秒为一天。SetEnvIf为自定义的,下面访问日志可以调用env,即不记录以gif jpg 等结尾的文件。

接着我们从新检测和加载Apache
[iyunv@tpp logs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@tpp logs]# /usr/local/apache2/bin/apachectl graceful
然后我们刷新下网页就会看到有日志生成,如下图:
wKioL1XjCebwu0YJAACkH6nR2og474.jpg

4、Apache配置静态缓存
把浏览网页的静态文件设置为缓存,文件缓存之后不用再调用,节省带宽。
[iyunv@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在之前的日志文件定义的下面接着定义一个模块
<IfModule mod_expires.c>
   ExpiresActive on
   ExpiresByType image/gif "access plus 1 days"
   ExpiresByType image/jpeg "access plus 24 hours"
   ExpiresByType image/png "access plus 24 hours"
    ExpiresByType text/css "now plus 2 hours"
   ExpiresByType application/x-javascript "now plus 2 hours"                ExpiresByType application/javascript"now plus 2 hours"
   ExpiresByType application/x-shockwave-flash "now plus 2 hours"
   ExpiresDefault "now plus 0 min"
</IfModule>
如下图所示:
wKiom1XjDHPwsTaIAAIzA2QxnHc251.jpg
接着我们从新检测和加载Apache
[iyunv@tpp www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@tpp www]# /usr/local/apache2/bin/apachectl graceful
下面我们来测试是否成功,在/data/www/目录下新建两个文件:1.txt 1.jpg,其中txt不是我们上面定义的静态文件
[iyunv@tpp www]# touch 1.txt 1.jpg
[iyunv@tpp www]# curl -x127.0.0.1:80 www.tpp.com/1.txt -I
wKioL1XjEX3Te8PnAAHJLUMUgw0254.jpg
[iyunv@tpp www]# curl -x127.0.0.1:80 www.tpp.com/1.jpg -I
wKiom1XjD3_xYf2KAAHhB0lZwHw047.jpg

5、Apache配置防盗链接
[iyunv@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  //加入如下模块
SetEnvIfNoCase Referer"^http://www.tpp.com" local_ref
SetEnvIfNoCase Referer"www.guhantai.cn" local_ref
SetEnvIfNoCase Referer "^$"local_ref
<filesmatch"\.(txt|doc|mp3|zip|rar|jpg|gif|png)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
如下图所示(一定要注意空格,不然会报错):
wKioL1XjGEOxCR7iAAF91MS_hz0284.jpg 现在我们的这些txt|doc|mp3|zip|rar|jpg|gif|png文件,不能被其他网站作为网络链接而引用了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106613-1-1.html 上篇帖子: apache功能配置 下篇帖子: lighttpd+mod_h264模块配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表