• LAMP第二部分apache的配置



    1. 下载discuz!
    mkdir /data/www
    cd /data/www
    mv /root/Discuz_X3.2_SC_GBK.zip .
    wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
    unzip Discuz_X3.2_SC_GBK.zip

    rm -rf readme/ utility/ 删除这两个目录
    mv upload/* .
    rm -rf upload
    mv Discuz_X3.2_SC_GBK.zip /root/

    echo $PATH
    ln -s /usr/local/apache2/bin/apachectl /usr/bin/ 做一个软连接,或者加入到系统环境变量中去 /etc/rc.local=========

    apachectl -t

    apachectl restart

     

     

    2. 配置第一个虚拟主机
    vim /usr/local/apache2/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>


    apachectl -t
    apachectl graceful 将配置文件重新加载

    curl -x127.0.0.1:80 www.111.com 什么都没有输出,测试成功了
    curl -x127.0.0.1:80 www.111.com -I 检测状态码302,下面显示是install

    按下ctrl+r 就是搜索命令历史,输入命令自动就找到了====

    安装discuz
    测试一下,在本地hosts加入 192.168.3.129 www.111.com 可以ping一下
    在浏览器打开www.111.com 显示discuz的安装页面
    同意安装会提示目录不可写,需要改一下所属主组
    看apache是属于哪个用户的ps aux |grep httpd
    chown -R daemon data config uc_server/data uc_client/data
    这时刷新一下安装页面就可以了

    ===============加入环境变量================
    PATH=$PATH:/usr/local/mysql/bin
    或者
    vim /etc/profile.d/
    vim /etc/profile.d/path.sh
    里面加入
    export PATH=$PATH:/usr/local/mysql/bin

    然后
    source /etc/profile
    echo $PATH

    然后输入mysql就可以进入到mysql的命令行了


    3. 然后配置mysql,给Discuz!增加一个账户
    ]#mysqladmin -uroot password '123456'
    ]#mysql -uroot -p123456 这样子登陆mysql
    给mysql root账户设置密码,然后命令行进入mysql,创建新的库,并创建一个新的帐号对该库有所有权限

    > create database discuz;
    > grant all on discuz.* to 'aming'@'localhost' identified by 'aming123';
    > quit

    .*是所有的表,all是所有的权限

    验证登陆数据库用户
    mysql -uaming -paming123

    继续安装Discuz!
    安装成功

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


    5. 为某个虚拟主机配置用户认证,打开www.111.com/admin.php 需要认证(给后台管理中心配置用户验证)
    http://www.lishiming.net/thread-554-1-1.html


    vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    虚拟主机配置文件中,找到虚拟配置的地方,<VirtualHost>
    在里面加入
    <Directory /data/www>
    AllowOverride AuthConfig
    </Directory>


    保存后,然后
    创建apache的验证用户
    /usr/local/apache2/bin/htpasswd -c /data/.htpasswd aming #/data/.htpasswd是密码文件

    cat /data/.htpasswd

    #第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
    增加第二个用户的时候,就不要加-c了,因为-c是创建的意思,如果加上会把这个文件重写。

    /usr/local/apache2/bin/htpasswd /data/.htpasswd abiao 第二次创建用户

    m 是用md5加密,如果你想修改密码,可以如下

    /usr/local/apache2/bin/htpasswd -m /data/.htpasswd test2
    重启apache,即可。


    vim /usr/local/apache2/conf/extra/httpd-vhosts.conf然后继续在虚拟配置文件中加入
    <Directory /data/www/admin.php>
    AllowOverride AuthConfig #将要进行用户认证
    AuthName "自定义的" #认证的名字
    AuthType Basic
    AuthUserFile /data/.htpasswd # 这里的/data/.htpasswd你可以随便写一个路径或名字,没有限制
    require valid-user #需要这些可用的用户
    </Directory >

    apachectl -t
    apachectl graceful

     

     

    6. 配置域名跳转
    http://www.lishiming.net/thread-603-1-1.html


    在虚拟配置文件中加入
    ServerAlias www.222.com
    然后在本地电脑hosts中解析一下就可以访问了,结论:我们的网站,任何一个域名绑定到你的ip,都可以访问你的虚拟主机

    <VirtualHost *:80>
    DocumentRoot "/data/www"
    ServerName www.111.com
    ServerAlias www.222.com

    <IfModule mod_rewrite.c>
    #需求:要把访问域名 www.222.com 的域名转发到 www.111.com 上
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www.222.com$

    RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L]

    </IfModule>

    </VirtualHost>

    curl -xlocalhost:80 www.111.com -I
    测试 curl -xlocalhost:80 www.222.com/1212 -I


    如果是多个域名重定向到一个域名
    DocumentRoot "/data/www"
    ServerName www.111.com
    ServerAlias www.222.com 888.com 666.com
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.222.com [OR]
    RewriteCond %{HTTP_HOST} ^888.com [OR]
    RewriteCond %{HTTP_HOST} ^666.com$
    RewriteRule ^(.*)$ http://www.111.com/$1 [R=301,L]
    </IfModule>

     

    ==========
    ss -an |grep -ci esta


    7. 配置apache的访问日志
    首先打开
    vim /usr/local/apache2/conf/httpd.conf 主配置文件
    找到下面这行,复制粘贴在下面,根据需求改一下
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    改为
    LogFormat "%h %u "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" biao

    然后在虚拟主机配置文件中打开vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    下面的
    CustomLog "/tmp/apache2.log" biao

    然后访问查看一下日志 tail -f /tmp/apache2.log

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


    去掉图片日志
    在虚拟主机配置#ErrorLog "logs/dummy-host.example.com-error_log"下面加入

    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 "/tmp/apache2.log" biao
    改成
    CustomLog "/tmp/apache2.log" biao env=!image-request

     


    日志切割
    在虚拟主机配置改这里
    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /tmp/access_%Y%m%d.log 86400" biao env=!image-request

    访问测试
    www]# ls /tmp/
    access_20150701.log

     

    参考资料:
    使apache的日志文件里不记录图片文件 http://www.lishiming.net/thread-561-1-1.html
    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


    8. 配置静态文件缓存
    http://www.lishiming.net/thread-912-1-1.html

    按下f12 可以看到那些静态文件
    下次访问就不用从服务器里面取,就是保存在浏览器上,访问用到直接拿出来用

    在虚拟主机配置改这里加入
    <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>

    按下f12 刷新一下,可以看到文件有304 说明这个文件缓存过的。

    查看图片的过期缓存
    curl -I 'http://www.111.com/static/image/common/logo.png'

    Cache-Control: max-age=86400

    86400/3600/24=1天,这个可以设置

  • 相关阅读:
    javaweb一
    javaweb三、JDBC访问数据库
    Java学习笔记十
    socket qt基础版本
    QT+VS+添加console 解决方案
    QT创建TCP Socket通信
    左值引用与右值引用
    STL 中 map和set的区别
    C++中STL哈希表介绍
    虚函数总结
  • 原文地址:https://www.cnblogs.com/chenshoubiao/p/4617403.html
Copyright © 2020-2023  润新知