linux学习笔记-第十九课-LAMP之网站搭建(二)

一、网站搭建前提

    搭建好LAMP运行环境

    下载网站程序,这里以Discuz X 3.2 作为示例

    Discuz 程序下载地址:

   简体中文GBK http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

   繁体中文BIG5 http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_TC_BIG5.zip

   简体UTF-8 http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip

   繁体UTF-8 http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_TC_UTF8.zip


二、安装,配置  

# 创建网站程序文件目录
[root@mylinux ~]# mkdir /data/mydiscuz/    <== 放网站程序的地方,起一个自己知道的名字
# 解压安装程序,将upload里面的文件移到 网站监控目录下/data/mydiscuz

[root@mylinux mydiscuz]# mv upload/* .

    修改apache主配置文件httpd.conf,开启虚拟主机配置

# Virtual hosts
# 将这一行前面的注释符“#”去掉
Include conf/extra/httpd-vhosts.conf

    修改apache虚拟主机配置文件httpd-vhosts.conf,保留以下内容,

[root@mylinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
# 管理员邮件地址,一般不需要,刻意注释掉
    #ServerAdmin [email protected]
# 主机地址
    ServerName www.myd.com
# 监控的文件目录
    DocumentRoot "/data/mydiscuz"
</VirtualHost>

    

     检测配置信息,重启apache服务


通过浏览器输入IP地址,出现如下界面:

技术分享


         点“我同意”,进入下一步,会看到当前的环境信息,提示所需的目录没有权限,我们需要进行权限更改。

技术分享

# 修改这些目录的权限
[root@mylinux mydiscuz]# chown -R daemon.daemon data/ > uc_client/data/ uc_server/data/ config/

       权限修改完毕,可以下一步了,我们是第一次安装,所以选择全新安装,下一步

技术分享

        接下来我来配置mysql数据库信息,为网站创建数据库,和相应账号

# 第一次使用mysql,需要给mysql配置一个mysql管理员密码
[root@mylinux ~]# mysqladmin -u root password ‘mysql123‘
# 在登录mysql,就需要使用密码了
[root@mylinux ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.40-log MySQL Community Server (GPL)

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

# 创建名为mydiscuz的数据库,注意mysql的每一句的结束需要加分号“;”,表示结束
mysql> create database mydiscuz;           
Query OK, 1 row affected (0.00 sec)

# 将本机mydiscuz数据库的所有权限,授给名为mydiscuz的用户,密码为mydiscuz123
mysql> grant all on mydiscuz.* to ‘mydiscuz‘@‘localhost‘ identified by ‘mydiscuz123‘;
Query OK, 0 rows affected (0.00 sec)

# 退出结束mysql
mysql> exit;
Bye
[root@mylinux ~]#


       现在数据库基本信息创建完毕,转到浏览器,进行配置

技术分享

      输入完毕之后,下一步,进行安装

技术分享

       安装完成

技术分享


三、apache功能配置的增加

    apache的功能的添加,主要是对虚拟配置文件httpd-vhosts.conf的修改

   

       1 )用户认证


       ① 用htpassword 创建认证的用户和密码


# -c 为创建,只在第一次生成时,配置,如果后面使用不需要加参数-c,加了之后就会重写
# -m 为用MD5进行加密
[root@mylinux ~]# /usr/local/apache2/bin/htpasswd -c /data/mydiscuz/.htppasswd mylinux
New password:
Re-type new password:
Adding password for user mylinux
[root@mylinux ~]#
# 两次不同的加密方案
[root@mylinux ~]# cat /data/mydiscuz/.htppasswd
mylinux:fq4fMf7jZfuNY       <== 以随机字符进行加密
[root@mylinux ~]# cat /data/mydiscuz/.htppasswd
mylinux:$apr1$kSKaK0dy$EV/fh3twLG2d2oR99apo3.       <== 以MD5值进行加密
[root@mylinux ~]#

       

        ② 将配置加入以下内容


# 用户认证
    <Directory *>
            AllowOverride AuthConfig
            # 输入对话框提示信息
            AuthName "Please input your info"
            # 指定字符类型
            AuthType Basic
            # 指定用户文件地址
            AuthUserFile /data/mydiscuz/.htppasswd
            require valid-user
    </Directory>

         效果示例 :当启用用户认证,输入主机地址,会弹出认证窗口,如下图:

技术分享

       


        2 )域名跳转


        域名跳转 :主机有多个域名地址,有主域名地址,将所有指向主机的域名地址,自动跳转到默认的主域名地址上。

        配置示例

# 域名跳转(注 :跳转功能开启的前提是定义域名别名,将所有非主域名的地址定义到别名
中)
    <IfModule mod_rewrite.c>
        # 开启域名跳转功能
        RewriteEngine on
        # 跳转条件一:第一个域名地址
        RewriteCond %{HTTP_HOST} ^www.b.com [OR]
        # 跳转条件二:第二个域名地址
        RewriteCond %{HTTP_HOST} ^www.c.com$
        # 跳转规则:所有主机域名地址自动跳转执行,主域名地址
        RewriteRule ^/(.*)$ http://www.a.com/$1 [R=301,L]
    </IfModule>



        3 )配置apache日志(错误日志与访问日志)

# 配置日志

    # 配置错误日志(附加日志切割功能)
    ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/mydiscuz-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/mydiscuz-access_%Y%m%d.log 86400" combined env=!image-request



        4 )防盗链     

# 配置防盗链
    # 配置转发条件
    SetEnvIfNoCase Referer "^http://.*\.a\.com" local_ref
    SetEnvIfNoCase Referer ".*\.a\.com" local_ref
    SetEnvIfNoCase Referer "^$" local_ref
    # 匹配文件关键字
    <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
        Order Allow,Deny
        Allow from env=local_ref
    </filesmatch>



        5 )文件访问控制

#配置文件访问控制
    <Directory /data/mydiscuz/>
            Order deny,allow
            Deny from all
            # 目录只对本机开放
            Allow from 127.0.0.1   
            # 对管理页面进行管理
            <filesmatch "(.*)admin(.*)">
            Order deny,allow
            Deny from all
            # 管理页面只对本地和指定的IP方向
            Allow from 127.0.0.1
            </filesmatch>
    </Directory>


测试空格

        6 )配置静态文件缓存

<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/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
</IfModule>








本文出自 “MyLinux” 博客,请务必保留此出处http://mylinuxlife.blog.51cto.com/4706737/1641140

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。