小Q:其实我就想一直像个孩子一样,不愿看太多的事,听太多的不是,单纯走完 这段简单的路;但

            是事与愿违,总得像个墙一样直面社会。

================================================================

昨天构建了LAMP架构,今天练习构建了一个简单的 discuz 论坛,然后进行了一些配置, 现在组成了一个本地的论坛。

下载安装discuz:

wget  (curl -O)  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

 或去 comsenz网站找需要的

最好下载到 /data/www 下

第一和数据库放一块,第二名字好分辨           在www目录下解压 

进入目录  :  cd   /data/www

移动文件  :  mv   upload/*        ./

upload下放的都是程序文件,都移出来,然后 

删除文件  :  rm  -rf   upload/    readme/    utility/    压缩包

查看Apache有无启动:   ps   aux | gerp   httpd


我们要使用虚拟主机的配置文件,但是他还没打开,要先去Apache主配置文件中打开这开关

vim    /usr/local/apache2/conf/httpd.conf 

include    conf/extra/httpd-vhost.conf       找到他去掉注释即可(/vhost搜索)

vim   /usr/local/apache2/conf/extra/httpd-vhost.conf    进入编辑虚拟主机的配置 

decumentroot = "/data/www"                   discuz的位置路径                               
servername = www.test.com                    可用自定义的域名
 serveralias = 域名的别名                   其他的注释或者删除就好,用不到

/usr/local/apache2/bin/apachectl    -t                                       检测Apache配置文件格式是否正确

/usr/local/apache2/bin/apachectl    graceful                 重加载配置,就可以访问discuz了


配置本地DNS服务 /etc/hosts 加入格式:IP   域名    域名别名 

DNS服务:就是去 ping一个域名的时候,自动解析设置好的IP=windows下的 c/windows/system32/dirves/etc/hosts 或在浏览器下载hostadmin可用写字板打开去设置,windows本地的DNS配置

               我在这一步遇到了错,因为我没去在wndows下设置IP与域名的对应关系,所以在windows

下我无法用域名解析IP;

进入主配置文件       /usr/local/apache2/conf/httpd.conf 

将 deny from all  改为  Allow from all                     允许所有用户来访问

检测 ··········· -t 

重新加载 ·················graceful 


windows浏览器输入域名开始安装操作 ,会发现好多不可用的文件

查看 ps aux | grep httpd 发现文件都在以deamon用户的身份在跑 

chown   -R   deamon:deamon   所有不可用文件                      


此时下一步 要创建mysql 数据库了 

在这我们最好设置一个PATH ,因为总输入 /usr/local/mysql/bin/mysql太长了; 先检查一下有无其他设置的mysql,有的话先删除

vim   /etc/profile.d/path.sh 

加入   export PATH= $PATH=/usr/local/mysql/bin 

保存后 source !$ 一下,就可以用了 which查看了

输入 mysql

创建数据库:create   database   discuz 

创建用户: grant   all   on   discuz   to    ‘teng’@‘localhost’    identhed    by ‘密码’ 

去网站设置一下

完成


Apache用户认证:

说白了就是给要访问的路径设一个权限,不让没有账号密码的进去;

在www目录下建一个这样的路径,比如  mkdir    aaa    

然后  cd    aaa                       拷贝个文件用来验证操作  cp    /etc/passwd     ./1.txt


配置虚拟主机文件(vhost):vim    /usr/local/apache2/conf/httpd-vhost.conf

 添加以下内容格式,即添加一个认证

<Directory /data/www/aaa>

      AllowOverride 

      AuthName   "zi ding yi"                                    在登录要认证界面的框内显示

      AuthType Basic 

      AuthuserFile    /data/.htpasswd                          存放用户密码的文件路径

       require    valid-user

 </Directory> 

因为有时要用到Apache2的路径,因为这个路径下有好多命令经常用,最好给他定一个PATH

将 /usr/local/apache2/bin      添加进上上次建的/etc/profile.d/path.sh 文档即可


设置密码命令: htpasswd    -c    /data/.htpasswd    user1    在下面输入设置的密码

添加用户的话:htpasswd      /data/.htppasswd    user2 

不要加 -c 了,否则会覆盖前一个用户,htpasswd 就是/usr/local/apache2/bin下的命令 

输入网址,输入上面设置的路径,输入账户密码,即可访问。


设置默认虚拟机:

有时候我们设置完之后,会有一些问题,即我们只要在自己电脑设置windows本地DNS服务,就是修改 c/windows/system32/dirves/etc/host 的指向,就可以为指定IP添加的域名

然后解析到我们设置网站,这样很不安全。

           解决思路就是去我们服务端的虚拟主机配置文件里,更改默认虚拟主机为一个不可指向的地方;而默认虚拟主机就是第一个主机;

vim     /usr/local/apache2/conf/extra/httpd-vhost.conf 

在我们设置自己域名的虚拟主机之上另加一个,即添加一个默认虚拟机指向,格式如下:

<VirtualHost *:80>
DocumentRoot "/tmp/123"              #随意指定的的目录,设权限为600 让deamon不可访问即可
ServerName 123.com                  # 随意配置的域名
</VirtualHost>

这样只要我们不在本地添加IP的域名,别的地方添加的都无效


域名301跳转:

还有一种情况,当我们设置多个域名时,第一我们不好记,记得不专一;

第二我们在一个路径下设置了个东西,再进入时,浏览器也很混乱的不知去那个域名下;

因此,我们要设置其中之一为主要的,当输入其他的会自动跳转到这个主要域名下。


进入虚拟主机的配置文件下,添加一个自动跳转的模块, rewrite moudle (shared) 

可用/usr/local/apache2/bin/apachectl    -M 查看

模块放在虚拟主机这个大模块下,在认证模块的上面;

#模块格式:
<If Module  mod_rewrite.c> 
    RewriteEngine  on 
    RewriteCone   %{HTTP_HOST}    ^www.teng.com$   
               #(如果有两个或多个别名的时候,改为 
             RewriteCone   %{HTTP_HOST}     ^www.teng.com$        [OR]
             RewriteCone   %{HTTP_HOST}   ^www.xun.com$1  )
             RewriteRule   ^/(.*)$    http://www.test.com$1       [R=301.L] 
 </If Module>

正则表达以 / 开头,后边任意,指的主域名www.test.com/后边任意的路径 

R301表示永久跳转,设置域名的时候最好用它,对浏览器好;

R302 表示临时跳转 L 表示 Last ,最后结尾了


问题总结:

wKiom1YKqqnAnnkTAAFOky7qQnQ993.jpg

wKioL1YKqrTTwY93AACnxjXAh1U100.jpg

wKiom1YKqqmAl2N7AAHn11N9u84239.jpg