2015-04-29/2015-05-04 LAMP第二部分apache配置 discuz

课程大纲:
1. 下载discuz!
mkdir /data/www
cd /data/www
wget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
unzip Discuz_X3.2_SC_GBK.zip
mv upload/*  .
2. 配置第一个虚拟主机

vi  /usr/local/apache2/conf/httpd.conf
删除httpd.conf中的这行前面的警号
#Include conf/extra/httpd-vhosts.conf
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
加入如下配置:
<VirtualHost *:80>
    DocumentRoot "/data/www"
    ServerName www.123.com
</VirtualHost>
3. 配置mysql,给Discuz!增加一个账户
给mysql root账户设置密码,然后命令行进入mysql,创建新的库,并创建一个新的帐号对该库有所有权限:

/usr/local/mysql/bin/mysql   ()
> create database discuz;
> grant all on discuz.* to ‘aming‘@‘localhost‘ identified by ‘123456aminglinux‘;
> quit

[[email protected] www]# /usr/local/apache2/bin/apachectl restart
[[email protected] www]# /usr/local/apache2/bin/apachectl -t

[[email protected] www]#chown daemon:daemon  data  uc_server/data  uc_client/data config

discuz

aming

aminglinux

4. 安装Discuz!

先绑定hosts  
192.168.11.190  www.123.com
浏览器输入:
www.123.com/install/

1.提示   forbidden

[[email protected] ~]# vim /usr/local/apache2/conf/httpd.conf

<Directory />

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow  from all

</Directory>

重启

2.

根据提示,修改对应目录的权限
cd /data/www
chown daemon:daemon  data  uc_server/data  uc_client/data config   // 让这几个目录支持apache运行帐号可写

编辑: vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
5. 为某个虚拟主机配置用户认证
http://www.lishiming.net/thread-554-1-1.html
6. 配置域名跳转

[[email protected] ~]# curl -x111.47.123.72:80   www.sundong.xyz  -I

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.domain1.com$
        RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
如果是多个域名,可以这样设置:
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.domain.com [OR]
        RewriteCond %{HTTP_HOST} ^www.domain1.com$
        RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
或者:    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.domain2.com$
        RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
7. 配置apache的访问日志
日志分割    不记录   缓存 
ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/oem.discuz.qq.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/oem.discuz.qq.com-access_%Y%m%d.log 86400" combined env=!image-request
8. 配置
<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 hour"
    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>
或者使用mod_headers模块实现
<ifmodule mod_headers.c>  
# htm,html,txt类的文件缓存一个小时  
<filesmatch "\.(html|htm|txt)$">  
header set cache-control "max-age=3600"  
</filesmatch>  
# css, js, swf类的文件缓存一个星期  
<filesmatch "\.(css|js|swf)$">  
header set cache-control "max-age=604800"  
</filesmatch>  
# jpg,gif,jpeg,png,ico,flv,pdf等文件缓存一年  
<filesmatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">  
header set cache-control "max-age=29030400"  
</filesmatch>  
</ifmodule>

[[email protected] ~]#  curl  -x116.211.105.59:80    ‘http://www.sundong.wang/data/attachment/forum/201507/19/165425qknqoq4xqbvwwqn4.png‘  -I
HTTP/1.1 200 OK
Date: Sat, 18 Jul 2015 14:32:44 GMT
Server: Apache/2.2.29 (Unix) DAV/2 PHP/5.3.28
Last-Modified: Sat, 18 Jul 2015 14:32:44 GMT
ETag: W/"86d5c-35c4-51b3691669c08"
Accept-Ranges: bytes
Content-Length: 13764
Cache-Control: max-age=86400
Expires: Sun, 19 Jul 2015 14:32:44 GMT
Content-Type: image/png
[[email protected] ~]#

9. 配置防盗链
SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
10. 访问控制
<Directory /data/www/>
            Order deny,allow
            Deny from all
            Allow from 127.0.0.1
</Directory>
针对请求的uri去限制
    <filesmatch "(.*)admin(.*)">
            Order deny,allow
            Deny from all
            Allow from 127.0.0.1
    </filesmatch>
某个某陆下禁止解析php
<Directory /data/www/path>
    php_admin_flag engine off            
    <filesmatch "(.*)php">
            Order deny,allow
            Deny from all
    </filesmatch>
</Directory>
11. apache rewrite相关
apache 限制指定user_agent  http://www.lishiming.net/thread-1033-1-1.html
apache 限制某些目录不能访问通过rewrite实现  http://www.lishiming.net/thread-3587-1-1.html
apache rewrite 出现死循环  http://www.lishiming.net/thread-1043-1-1.html
discuz伪静态配置:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/topic-(.+)\.html$ /portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/article-([0-9]+)-([0-9]+)\.html$ /portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/forum-(\w+)-([0-9]+)\.html$ /forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/group-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/space-(username|uid)-(.+)\.html$ /home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/blog-([0-9]+)-([0-9]+)\.html$ /home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/archiver/(fid|tid)-([0-9]+)\.html$ /archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ /plugin.php?id=$1:$2&%1
扩展学习:
apache 日志中记录代理IP以及真实客户端IP  http://www.lishiming.net/thread-960-1-1.html
apache只记录指定URI的日志  http://www.lishiming.net/thread-981-1-1.html
apache日志记录客户端请求的域名  http://www.lishiming.net/thread-1037-1-1.html
apache 日志切割问题  http://www.lishiming.net/thread-566-1-1.html
apache的order allow deny  http://www.lishiming.net/thread-832-1-1.html
apache 针对访问uri 限制ip  http://www.lishiming.net/thread-5365-1-1.html
几种限制ip的方法 http://www.lishiming.net/thread-6519-1-1.html
apache开启压缩  http://www.aminglinux.com/bbs/thread-5528-1-1.html
apache2.2到2.4配置文件变更  http://www.aminglinux.com/bbs/thread-7292-1-1.html
apache配置所有的虚拟主机都指向第一个   http://www.aminglinux.com/bbs/thread-491-1-1.html
apache虚拟主机开启php的短标签   http://www.aminglinux.com/bbs/thread-5370-1-1.html
apache options参数  http://www.aminglinux.com/bbs/thread-1051-1-1.html
apache 禁止trace或track防止xss攻击  http://www.aminglinux.com/bbs/thread-1045-1-1.html
apache 配置https 支持ssl  http://www.aminglinux.com/bbs/thread-1029-1-1.html
apache的proxy代理总访问后端web的第一个虚拟主机 http://www.aminglinux.com/bbs/thread-941-1-1.html
apache 自定义header  http://www.aminglinux.com/bbs/thread-830-1-1.html
apache的keepalive和keepalivetimeout  http://www.aminglinux.com/bbs/thread-556-1-1.html

时间: 2024-10-23 11:27:40

2015-04-29/2015-05-04 LAMP第二部分apache配置 discuz的相关文章

centos LAMP第二部分apache配置 第二十节课

centos   LAMP第二部分apache配置  第二十节课 上半节课 下半节课 f

LAMP第二部分apache配置

1. 下载discuz!mkdir /data/wwwcd /data/wwwwget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zipunzip Discuz_X3.2_SC_GBK.zipmv upload/*  .2. 配置第一个虚拟主机删除httpd.conf中的这行前面的警号#Include conf/extra/httpd-vhosts.confvim /usr/local/apache2/conf/ext

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12

一周总结:2014.04.28 – 2014.05.04

技能与知识 我们每天学习的东西,可以粗略的划分为技能和知识两大类.技能,就是解决问题的能力:而知识则是对内容的理解.掌握.或者说,技能是对知识的动态使用. 相比于知识,我更希望多掌握些技能.前段时间总结自己的学习经历时,猛然发现我学到的其实更多的是知识,很是沮丧.我知道很多算法(算法导论那种),看过很多系统或框架的介绍与分析,也认真学习过计算机的体系结构,但这些没有转化为我的技能,我还是不会解决问题. 直到昨天,我想通了一件很浅显的事:知识+实践=技能. 我的第一个问题是知识并不足够,尤其是知识

LAMP 2.3 Apache配置防盗链

如果你的站点是一个图片站,有很多非常漂亮的美女图片,那我相信,时间久了会有很多人来你网站借图片,有的人直接下载走了,还有的人直接取走图片的地址,比如你的网站域名是 www.123.com,图片地址为 www.123.com/images/111.jpg,那么他就可以直接把这个地址放到他自己的网站上, 他的用户可以直接从他网站上查看这个图片, 而实际上浏览这个图片是从你的网站上访问的.这样,这个图片所产生的带宽开销对于你来说没有任何意义,毕竟看这个图片的人不是你的客户,而是人家的.明白了这个道理,

2015.7.29学习内容

2015.7.29学习内容 一.Switch选择结构 1.回顾 01.在Java中如何产生一个随机数 Math.random()    随机数范围:0到1,能取到0,取不到1 02.equals(): 在Java中,如果比较两个字符串用==的话,会出现错误,所以以后我们只要是对字符串类型进行对比,统一使用equals方法 2.Switch选择结构 Switch(char/int){ case 1: //语句 break; case 2: //语句2 break; default: //默认语句

Some Modern Softwares&#39; drawbacks: User experience 12/29/2015

In the nowadays, there are many APP in the PC or smart Phone. Some of them can't meet the customers' need. And I summary some modern softwares' drawbacks and it will guide our team project to the right way. 1. WeChat: 1). Introduction: Wechat is the

&lt;2014 04 29&gt; c/c++常用库总结

C 标准库 ============================================================================================== C++ 标准库 STL 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作. 1. Dinkumware C++ Library 参考站点:http://w

2014.04.29

汇编语言是依赖于处理器的.不同的处理器上面的汇编语言是不一样的. 语言的发展有一个趋势,就是离硬件越来越远.从汇编,到C,C++,面向对象的Java等,能够发现,后面的语言越来越具有可移植性,不绝对依赖于底层硬件.比如跨平台的Java,其卖点之一就是其跨平台可移植性.还有一个点,就是越来越抽象,语言本身的思想点越来越明显.比如高级语言里面的面向对象思想,多线程,设计模式,通信模型等等,都是随着语言本身发展而来的.在低级语言中,如此抽象结构的东西是没有的. 计算机游戏. 计算机游戏只是计算机应用的