您的位置:首页 > 运维架构 > Apache

2015-12-17LAMP第二部分apache配置1(discuz搭建论坛 and 域名跳转 and 用户验证)

2015-12-24 20:40 881 查看
接着LAMP第一部分内容,环境搭建(mysql ,apache,php)基础之上搭建discuz论坛!

第二部分:

1.下载discuz
[root@niejicai-linux ~]# mkdir /data/www

[root@niejicai-linux ~]# cd /data/www/
[root@niejicai-linux www]# wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

[root@niejicai-linux www]# unzip Discuz_X3.2_SC_GBK.zip

[root@niejicai-linux www]# ls
Discuz_X3.2_SC_GBK.zip readme upload utility
[root@niejicai-linux www]#

[root@niejicai-linux www]# mv upload/* .
[root@niejicai-linux www]# rm -rf Discuz_X3.2_SC_GBK.zip readme/ utility/
[root@niejicai-linux www]# ls
admin.php cp.php home.php portal.php uc_client
api crossdomain.xml index.php robots.txt uc_server
api.php data install search.php upload
archiver favicon.ico member.php source userapp.php
config forum.php misc.php static
connect.php group.php plugin.php template
[root@niejicai-linux www]# rm -rf upload/

2.配置第一个虚拟主机

[root@niejicai-linux www]# vim /usr/local/apache2/conf/httpd.conf

#Include conf/extra/httpd-vhosts.conf 打开虚拟主机,删除httpd.conf中的这行前面的#号

[root@niejicai-linux www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf



加入如下配置:
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.123.com
</VirtualHost>



请记住,等我们的配置文件改完了之后,我们要去检查一下配置文件,是否有问题

[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@niejicai-linux www]#

在Windows上测试:
需要更改如下:



再测试ping www.1.com
ping www.a.com



在浏览器上面输入如下:
(1)



(2)



(3)处理以上的不可以写问题!!,处理方法如下:



修改对应目录的权限:

[root@niejicai-linux www]# chown -R daemon:daemon data uc_server/data uc_client/data config
即可!



(4)



检查一下mysql,是否启动!
[root@niejicai-linux www]# ps aux |grep mysql
root 5503 0.0 0.0 5068 8 ? S 06:36 0:00 /bin/sh /usr/local/mysq l/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/niejicai-linux.pid
mysql 5615 0.0 0.7 381208 916 ? Sl 06:36 0:06 /usr/local/mysql/bin/my sqld --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --log-error=/data/mys ql/niejicai-linux.err --pid-file=/data/mysql/niejicai-linux.pid --socket=/tmp/mysql.sock --port=3306
root 6272 0.0 0.6 4420 756 pts/1 S+ 12:21 0:00 grep --color mysql

添加用户
[root@niejicai-linux www]# /usr/local/mysql/bin/mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.34-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充: (加入PATH)
默认是没有mysql这个命令的,[root@niejicai-linux www]#mysql(要不我们就写人PATH;要不就创建软连接;要不就写绝对路径!!

[root@niejicai-linux www]# /usr/local/mysql/bin/mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.34-log MySQL Community Server (GPL)

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

mysql> quit
Bye
[root@niejicai-linux www]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@niejicai-linux www]# echo $PATH:/usr/local/mysql/bin/
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin/
[root@niejicai-linux #]www]#

vim /etc/profile
添加这个 echo $PATH:/usr/local/mysql/bin/即可永久生效

或者创建一个软连接:

[root@niejicai-linux www]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
最后就可以这样子登录了!!!
[root@niejicai-linux www]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.34-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
另外我们还可以帮mysql 设置一个密码
mysqladmin 默认是没有的,我们先要做一个软连接!

[root@niejicai-linux www]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
[root@niejicai-linux www]# mysqladmin -uroot password '123456'
[root@niejicai-linux www]#

[root@niejicai-linux www]# mysql -uroot -p123456 最后我们就可以通过输入密码进行登录!!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.34-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

---------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------

接着添加用户(上面的)

给Discuz!增加一个账户

给mysql root账户设置密码(上面已经设置),然后命令行进入mysql,创建新的库,并创建一个新的帐号对该库有所有权限:

[root@niejicai-linux www]# mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.34-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database niejicai;
Query OK, 1 row affected (0.05 sec)
mysql> grant all on niejicai.* to 'niejicai'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.10 sec)
mysql> quit

(5)



(6)



(7)





(8)



(9)进入管理中心!!



(10)



这么去除以上的提示,去看如下:

[root@niejicai-linux www]# cd install/
[root@niejicai-linux install]# ls
data images include index.php
[root@niejicai-linux install]# rm -rf index.php

(11)

现在已经正常



(12)为某个虚拟主机配置用户认证

[root@niejicai-linux install]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
添加如下内容:#用户认证



其中:

AuthName "aaaaabb" ("自己定义的”写中文的话,会发现乱码)
AuthUserFile /data/.htpasswd #这里的/data/.htpasswd你可以随便写一个路径或名字,没有限制
:wq!

接着我们要创建一个密码!
(如下这种密码还是蛮简单的)

[root@niejicai-linux www]# /usr/local/apache2/bin/htpasswd -c /data/.htpasswd niejicai

New password: 这里我设置的密码为123456,首次创建要加-c
增加第二个用户的时候,就不要加-c了,因为-c是创建的意思,如果加上会把这个文件重写。
Re-type new password:
Adding password for user niejicai
[root@niejicai-linux www]# cat /data/.htpasswd
niejicai:$apr1$d8n78LLG$CUJl7.YQbNKkCgm.gX2jd0

接着,我们还可以去设置一下复杂的密码!(md5加密)

[root@niejicai-linux www]# /usr/local/apache2/bin/htpasswd -cm /data/.htpasswd niejicai1
New password: 这里我设置的密码为123456
Re-type new password:
Adding password for user niejicai1 等一下,我们以这个用户来登录!!!!
[root@niejicai-linux www]# cat /data/.htpasswd
niejicai1:$apr1$CFcGUn.g$/DWn8QgVrLiv3OhauI2kp/
最后我们检查一下配置文件,是否有错误:

[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl -t 已经正常!!!!!

Syntax OK

[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl restart 重启!!!

测试如下:会出现验证!!







(13) 配置域名跳转
生成环境中:
比如你访问的是一个
www.baidu.com
结果回车的时候就跳转到 www.baidu.com/bbs/forum.php (比如)

单个域名跳转:
[root@niejicai-linux www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

(最后一行上添加)
只有一种域名的情况下: (这样测试,将输入www.a.com 跳转到www.1.com )
代码如下:插入到<VirtualHost *:80> .... </VirtualHost>之间,情看如下图
<IfModule mod_rewrite.c>

RewriteEngine on

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

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

</IfModule>



配置完成之后记得检查一下!
[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl restart
测试:

[root@niejicai-linux www]# curl -x127.0.0.1:80 www.a.com -I
HTTP/1.1 401 Authorization Required 哎,这里出现了问题了,继续排查!!
Date: Thu, 17 Dec 2015 09:11:06 GMT
Server: Apache/2.2.27 (Unix) DAV/2 PHP/5.3.28
WWW-Authenticate: Basic realm="abckk"
Content-Type: text/html; charset=iso-8859-1
解决方法:把代码插入到<VirtualHost *:80> .... </VirtualHost>之间,情看如上图

[root@niejicai-linux ~]# curl -u niejicai1:123456 -x127.0.0.1:80 www.1.com/ -I
(如果在服务器上测试,需要我们添加用户和密码,
因为前面我们已经设置了用户密码)
HTTP/1.1 301 Moved Permanently
Date: Fri, 18 Dec 2015 07:17:21 GMT
Server: Apache/2.2.27 (Unix) DAV/2 PHP/5.3.28
X-Powered-By: PHP/5.3.28
location: forum.php
Content-Type: text/html
直接访问域名,也就是状态码为200

[root@niejicai-linux ~]# curl -u niejicai1:123456 -x127.0.0.1:80 www.1.com/forum.php -I
HTTP/1.1 200 OK
Date: Fri, 18 Dec 2015 07:25:31 GMT
Server: Apache/2.2.27 (Unix) DAV/2 PHP/5.3.28
X-Powered-By: PHP/5.3.28
Set-Cookie: qRcw_2132_saltkey=BqroxTLA; expires=Sun, 17-Jan-2016 07:25:31 GMT; path=/; httponly
Set-Cookie: qRcw_2132_lastvisit=1450419931; expires=Sun, 17-Jan-2016 07:25:31 GMT; path=/
Set-Cookie: qRcw_2132_sid=Lvv5Vv; expires=Sat, 19-Dec-2015 07:25:31 GMT; path=/
Set-Cookie: qRcw_2132_lastact=1450423531%09forum.php%09; expires=Sat, 19-Dec-2015 07:25:31 GMT; path=/
Set-Cookie: qRcw_2132_onlineusernum=2; expires=Fri, 18-Dec-2015 07:30:31 GMT; path=/
Set-Cookie: qRcw_2132_sid=Lvv5Vv; expires=Sat, 19-Dec-2015 07:25:31 GMT; path=/
Content-Type: text/html; charset=gbk
[root@niejicai-linux ~]#

和第一种域名设置访问是一样的把代码插入到<VirtualHost *:80> .... </VirtualHost>之间,已经就是多一个域名,没有什么特别的,我这里就不做实验!!!
如果是多个域名,可以这样设置:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.a.com [OR]
RewriteCond %{HTTP_HOST} ^www.b.com$
RewriteRule ^/(.*)$ http://www.1.com/$1 [R=301,L]
</IfModule>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: