1、准备:Discuz_X3.2_SC_UTF8.zip,虚拟机环境LAMP
注:下载地址http://download.comsenz.com/DiscuzX/3.2/
有四种类型,语言分为简体中文(SC)和繁体中文(TC),编码方式分为GBK和UTF-8,UTF-8比GBK容量大。
2、安装全过程
mkdir /data/www(站点目录)
cd /data/www
unzip Discuz_X3.2_SC_UTF8.zip
mv upload/* .      之后删去之前解压得到的目录
Ø  配置虚拟主机
文件apache配置文件/usr/local/apache/conf/httpd.conf
启用Include conf/extra/httpd-vhosts.conf
vim/usr/local/apache2/conf/extra/httpd-vhost.conf,发现有两个虚拟主机模板,启用一个,修改如下:
<VirtualHost*:80>
#ServerAdmin (管理员邮箱)
DocumentRoot “/data/www”(网站根目录)
ServerName www.wsy.com (主要域名)
ServerAlias www.bb.com (副域名)
#ErrorLog
#CustomLog
</VirtualHost>
完成后,先检测语法规则
/usr/local/apache2/bin/apachectl -t     —— Syntax OK
/usr/local/apache2/bin/apachectl restart  
ps aux | grep httpd
[插]将Apache作为开机启动服务
ls /etc/init.d/ | grep httpd
cp /usr/local/apache2/bin/apachect1 /etc/init.d/httpd
vim /etc/init.d/httpd
#chkconfig:345 85 15
#description:Start and stop the Apache HTTP Server
chkconfig --add httpd
chkconfig httpd on
Ø  更改本机DNS解析
文件位置:Windows主机c:\Windows\System32\drivers\etc\hosts
修改后:
# localhost nameresolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost
192.168.1.106     www.wsy.com      www.bb.com
在cmd中ping www.wsy.com、www.bb.com 可以解析了
Ø  访问安装页面
在浏览器中输入设置的解析域名,会发现显示403Forbidden的错误。
解决办法:
(1)检查权限
vim /usr/local/apache2/conf/httpd.conf
<Directory />中修改成Allow from all
/usr/local/apache2/bin/apachctl -t
/usr/local/apache2/bin/apachctl restart(graceful)
(2)论坛主目录下没有index页面
touch /data/www/index.php(html,htm,这个是在httpd.conf中的 DirectoryIndex index.html添加的)   
Ø  引导安装
“我同意”点击下一步,发现好多目录下打红叉,错误是没有写权限。由于是Apache发布的,要对Apache的用户daemon给予站点目录/data/www的写权限:
[/data/www]chown -R daemon:daemon data uc_server/data uc_client/data config
刷新后都变成勾了,下一步选“全新安装(升级选第二个)”,再下一步需要填写站点信息(域名、站数据库、管理员账号等),先设置数据库:
[插]
(1)使用mysql作为全局命令
方法一:ln -s /usr/local/mysql/bin/mysql /usr/bin
方法二:
vim /etc/profile
export $PATH=$PATH:……: /usr/local/mysql/bin
source /etc/profile
(2)初始化密码
方法一:登录修改,见LAMP搭建流程
方法二:mysqladmin -u root password ‘newpasswd’;
mysql -u root -p [your passwd]
mysql > create datebase discuzdb;
这里出现问题Error 10006(HY000):Can’t create database ‘discuzdb’;
我暂时退出MySQL,网上给的解决办法是清理日志和进程记录,我没有日志和进程文件,之后重启MySQL发现错误:Manager of pid-file quit without updating file,数据库停止运行。
后来发现是数据库存储/data/mysql和/usr/local/mysql权限不对。
chown -R mysql:mysql /data/mysql /usr/local/mysql
在启动数据库服务之前错误的使用了mysql命令登录,爆出一条常见错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2)
这个错误可见系统一般默认寻找与mysql通信的文件在/tmp/mysql.sock,如果mysql.sock不在此目录下要做软连接。
启动数据库后正常。
mysql > grant all on discuzdb.* to ‘discuz’@’localhost’identified by ‘psd’;
//这里的用户可以不同于mysql的登录账号
      
回到浏览器的安装导航页,填写刚才设置的信息,数据文件前缀、系统邮箱和管理员邮箱可不改,进行最后的安装。安装完成即可访问论坛首页。
Ø  discuz操作注意
发帖的验证码不显示,因为php模块php-gd安装不全。
“管理中心”进入管理员后台,如果提示“Please delete install/index.php”需要删除这个文件。
3、虚拟主机站点功能配置
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
编辑<VirtualHost *:80></VirtualHost>
(1)用户认证
在<VirtualHost *:80>中添加:
<Directory *或/data/www>
              AllowOverride  AuthConfig
              AuthName       "自定义的"
              AuthType          Basic
              AuthUserFile    /data/.htpasswd    # 这里的/data/.htpasswd你可以随便写一个路径或名字,没有限制
              require valid-user
</Directory>
保存后,然后
创建apache的验证用户
/usr/local/apache2/bin/htpasswd -c -m(md5)/data/.htpasswd  [username]
New password:      Re-typenew password:
注:
增加第二个用户的时候,就不要加-c了,因为-c是创建的意思,如果加上会把这个文件重写。
/usr/local/apache2/bin/apachctl -t
/usr/local/apache2/bin/apachctl restart(graceful)
访问论坛提示输入用户名和密码。
(2)域名跳转
添加<IfModule mod_rewrite.c>
        RewriteEngine on
       RewriteCond %{HTTP_HOST} ^www.bb.com$(副域名)
       RewriteRule ^/(.*)$ http://www.wsy.com/$1(主域名) [R=301,L](301重定向,last结束符)
    </IfModule>
注:301与302区别——301永久,302暂时
/usr/local/apache2/bin/apachctl -t
curl -x127.0.0.1:80 www.bb.com -I à301 Moved Permanently
多个域名的情况:
       RewriteCond %{HTTP_HOST} ^www.domain1.com [OR]
      RewriteCond %{HTTP_HOST} ^www.domain2.com$
      RewriteRule ^/(.*)$ http://www.domain.com/$1 [R=301,L]
注:401 Authorization Requied需要认证
curl -u username:password -x127.0.0.1 URL -I
(3)配置Apache访问日志自动归档
日志格式:httpd.conf的LogFormat,Referer指访问的域名历史,UserAgent指的是浏览器类型。
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
ErrorLog “|/usr/local/apache2/logs/1.com-error.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/1.com-access
_%Y%m%d.log 86400(1 day)” combined(日志系列)env=!image-request(不记录这些标记项)
(4)配置静态文件缓存(节点存储时效)
<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 "nowplus 2 hour"
    ExpiresByType application/x-javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0min"
</IfModule>
apacheclt -t
apachectl restart
验证:
touch 1.txt
echo “11111” >> 1.txt
curl -x127.0.0.1:80 -u user:psd www.wsy.com/1.txt -I
max-age=value(缓存时间,默认单位为s)
在chrome浏览器中F12,刷新出对象,查看一个对象Response Header的max-age
(5)设置防盗链(防止服务器成为他人存储)
SetEnvIfNoCase Referer "^http://www.wsy.com"local_ref
SetEnvIfNoCase Referer "www.bb.com"local_ref
#SetEnvIf NoCase Referer "www.up.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> 
Order Allow,Deny 
Allow from env=local_ref 
</filesmatch>
验证:
apacheclt -t   -->Syntax OK
apachectl restart
touch /data/www/1.txt
echo "111111" > /data/www/1.txt
curl -e(--refer) “www.baidu.com/xxxx” -u username:password -x127.0.0.1:80/1.txt www.wsy.com/1.txt -I         
#盗链不成功,403Forbidden
curl -e(--refer) “www.wsy.com/xxxx” -u username:password -x127.0.0.1:80/1.txt www.wsy.com/1.txt -I                     
#本地可以HTTP200
(6)访问控制
<Directory /data/www/>
           Order deny,allow            #执行顺序
           Deny from all
           Allow from 127.0.0.1
</Directory>
针对请求的url去限制
    <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>

重启Apache,访问:www.wsy.com/path/*.php时被拒绝,403Forbidden

LAMP应用:Discuz的搭建与配置相关推荐

  1. LAMP+DISCUZ论坛搭建流程

    LAMP+DISCUZ论坛搭建 文章目录 LAMP+DISCUZ论坛搭建 一.LAMP 二.安装Apache 1.安装环境 2.配置文件然后编译安装 3.配置便于service管理 4.可使用serv ...

  2. Linux discuz论坛搭建

    discuz论坛搭建 基于域名的虚拟web主机 网页根目录:/var/www/html 网页首页文件:index.html 访问时url:http://域名:80/index.html chroot ...

  3. 在Xshll6上discuz论坛搭建

    10-1 discuz论坛搭建 基于域名的虚拟web主机 网页根目录:/var/www/html 网页首页文件:index.html 访问时url:http://域名:80/index.html ch ...

  4. mysql slave 详细配置_进击的MysqlSlave环境搭建及配置

    一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)Mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文"懒人"速成 一)环境拓扑 二) ...

  5. LAMP基础环境的搭建,即Linux、Apache、MySQL、PHP环境

    LAMP基础环境的搭建,即Linux.Apache.MySQL.PHP环境 测试环境: 主机:windows server 2008 R2 64位 虚拟机:VMware Workstation 11. ...

  6. LAMP环境部署及搭建网校系统

    LAMP环境部署-本地搭建edusoho网校系统: 一.LAMP介绍 二.项目环境 三.环境清理及准备 四.LAMP环境部署 五.服务配置 六.导入edusoho网站源码 七.网站安装向导 一.LAM ...

  7. Ubuntu系统安装LAMP应用Discuz 建设论坛网站

    文章目录 Ubuntu系统安装LAMP应用Discuz 建设论坛网站 一.前期准备 1. 硬件准备 2. 网络准备 3. 系统准备 4. 软件准备 二.安装LAMP 方法一:使用集成安装命令 方法二: ...

  8. linux-运维进阶-27 Discuz论坛搭建

    linux-运维进阶-27 Discuz论坛搭建 LAMP动态网站架构 关闭selinux,重启才能生效! [root@localhost ~]# vim /etc/selinux/config 将S ...

  9. LNMP架构以及Discuz论坛搭建

    LNMP架构以及Discuz论坛搭建 文章目录 LNMP架构以及Discuz论坛搭建 前言 实验环境 实验所需要的源码包 实验步骤 1.Nginx的搭建 2.MySQL的搭建 3.PHP的搭建 实验测 ...

最新文章

  1. ECHO.js 纯javascript轻量级延迟加载
  2. PHP中spl_autoload_register函数的用法
  3. Pandas映射(转化)dataframe中的布尔值True和False值到1和0数值、使用astype函数
  4. 微软宣布正式开源 Azure IoT Edge 边缘计算服务
  5. 德黑兰大学推可踢球机器人,中国队快买!
  6. 核试验计算机模拟,随着信息技术的发展,包括核试验在内的许多科学研究都可以用计算机模拟...
  7. 网站页面相关性从五个方面进行判断
  8. 生成树协议实验报告_STP生成树协议
  9. [系统底层] x86和x64下ssdt的差异
  10. vue怎么合并两个视频_【软件分享】视频分割合并软件哪款好用呢?怎么剪切合并视频?...
  11. JavaScript的三大高阶函数
  12. 数据对象、属性和相似性
  13. JS常用函数(方法)
  14. 混淆的艺术-(苍井空变凤姐)Proguard源码分析(一)前言和计划
  15. 解决ps图层不能填充问题
  16. 如何恢复、打开、开启默认共享ipc$ c$ Dameware安装出错
  17. 回收站清空几天可找回?回收站清空的文件怎么恢复?2个方案
  18. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式
  19. Vue3商店后台管理系统设计文稿篇(七)
  20. 悬镜安全 | 第八期 全球一周安全情报(9.10-9.16)

热门文章

  1. ArcGIS API for JavaScript创建 3D 地图
  2. 国标GB/T28181EasyGBS对接大华硬盘录像机NVR查询录像失败解决方案
  3. 计算机网络课程设计——中小型网络工程设计
  4. 内核启动分析(三)——zImage 解压缩阶段
  5. 如何用pdf转jpg软件将pdf转换成图片
  6. 蒙卡程序fluka安装记录及教程
  7. 26岁亿万富翁创业日记曝光(二)
  8. VOLTE网络架构、接口与功能实体
  9. 数据库从sql server 2升到sql server 25 以后asp调用存储过程出错
  10. python画大耳朵图图_python之禅