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天,这个可以设置

原文地址:https://www.cnblogs.com/chenshoubiao/p/4617403.html