接着LAMP第一部分
内容,
环境搭建(mysql ,apache,php)基础之上搭建discuz论坛!
[root@niejicai-linux ~]# cd /data/www/
[
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
请记住,等我们的配置文件改完了之后,我们要去检查一下配置文件,是否有问题
[root@niejicai-linux www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[
root@niejicai-linux www]#
在Windows上测试:
需要更改如下:
在浏览器上面输入如下:
(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/
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
(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
(13) 配置域名跳转
生成环境中:
比如你访问的是一个
结果回车的时候就跳转到
www.baidu.com/bbs/forum.php (比如)
(最后一行上添加)
代码如下:插入到<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>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ www.domain1.com $
RewriteRule ^/(.*)$ http://www.domain2.com/ $1 [R=301,L]
</IfModule>
配置完成之后记得检查一下!
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>