2012年(2)
分类: LINUX
2012-01-17 17:00:40
WIKI网站的创建
实验环境:
WIKI server :
IP:172.16.0.100
hostname: wiki.test.com
OS:RHEL5.5
DNS Server:
IP:172.16.0.100
hostname: wiki.test.com
OS:RHEL5.5
client: XP Linux win7
所需要的安装包:
httpd-2.2.21.tar.gz
mediawiki-1.17.0.tar.gz
php-5.3.8.tar.gz
mysql-5.0.92.tar.gz
一,安装和配置DNS
[root@wiki ~]# yum -y install bind bind-devel bind-chroot caching-nameserver
[root@wiki chroot]# cd /var/named/chroot/etc/
[root@wiki etc]# cp -p named.caching-nameserver.conf named.conf
[root@wiki etc]# vim named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
[root@wiki etc]# vim named.rfc1912.zones
zone "test.com" IN {
type master;
file "test.com.zone";
allow-update { none; };
};
三,编译安装apache
[root@wiki etc]#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
如果还要添加其它的模块
[root@wiki etc]#./configure --help 或者是说more readme.txt more install.txt
[root@wiki httpd-2.2.21]# make&&make install
[root@localhost httpd-2.2.13]# cd /usr/local/apache2/bin/
[root@localhost bin]# vim apachectl
#!/bin/sh
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
[root@localhost bin]# cp apachectl /etc/init.d/apache
[root@localhost bin]# chkconfig --add apache
[root@localhost bin]# service apache restart
[root@localhost bin]# chkconfig apache on
在客户机上验证 apache是否成功创建
四,配置apache
[root@wiki httpd-2.2.21]# vim /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-userdir.conf //把这行的注释取消掉
Include conf/extra/httpd-vhosts.conf //把这行的注释取消掉
[root@wiki httpd-2.2.21]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost 172.16.0.100:80
ServerAdmin root@test.com
DocumentRoot "/usr/local/apache2/htdocs/wiki"
ServerName wiki.test.com
ServerAlias
ErrorLog "logs/wiki.test.com.com-error_log"
CustomLog "logs/wiki.test.com-access_log" common
[root@wiki httpd-2.2.21]# cd /usr/local/apache2/htdocs/
[root@wiki htdocs]# mkdir wiki
[root@wiki htdocs]# cd wiki/
[root@wiki wiki]# ls
[root@wiki wiki]# echo wiki.test.com > index.html
[root@wiki wiki]# service apache configtest
Syntax OK
[root@wiki wiki]# service apache start
客户端验证;
五,编译安装mysql (每个不同的版本在编译的时候都会有差异,对包的依懒性关糸也不一样,这里要注意一下,在编译的过程中如果出现任何问题,请参考config.log或者是build.log)
[root@wiki mysql-5.0.92]# yum -y install ncurses-devel //mysql5.0.92会对这个包有依懒关糸
[root@wiki mysql-5.0.92]# yum -y install libtermcap-devel
[root@wiki mysql-5.0.92]# ./configure --prefix=/usr/local/mysql --with-mysqlduser=mysql
[root@ wiki mysql-5.0.92]# make
[root@ wiki mysql-5.0.92]# make install
[root@ wiki mysql-5.0.92]# cp support-files/my-medium.cnf /etc/my.cnf (这个配置很重要,可以查找出来,然后修改里面的参数)
[root@ wiki mysql-5.0.92]# /usr/local/mysql/bin/mysql_install_db --user=mysql
[root@ wiki mysql-5.0.92]# chown -R root:mysql /usr/local/mysql/
[root@ wiki mysql-5.0.92]# chown -R mysql /usr/local/mysql/var/
[root@ wiki mysql-5.0.92]# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
[root@ wiki mysql-5.0.92]# ldconfig
[root@ wiki mysql-5.0.92]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@ wiki mysql-5.0.92]# ps -e | grep mysql 验证是否成功开启mysql
1664 pts/2 00:00:00 mysqld_safe
1690 pts/2 00:00:00 mysqld
[root@ wiki mysql-5.0.92]# netstat -ntulp | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1690/mysqld
[root@ wiki mysql-5.0.92]# cp support-files/mysql.server /etc/init.d/mysqld
[root@ wiki mysql-5.0.92]# chmod +x /etc/init.d/mysqld
[root@ wiki mysql-5.0.92]# chkconfig --add mysqld
[root@ wiki mysql-5.0.92]# chkconfig mysqld on
[root@ wiki mysql-5.0.92]# export PATH=$PATH:/usr/local/mysql/bin/
[root@ wiki mysql-5.0.92]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
[root@wiki mysql-5.0.92]# mysqladmin -u root password redhat
六,编译和安装PHP(各个版本的编译有一些差别,编译的时候请注意)
[root@wiki php-5.3.8]# tar -jxvf php-5.2.10.tar.bz2 -C /usr/local/src/
[root@wiki php-5.3.8]# cd /usr/local/src/php-5.2.10/
[root@wiki php-5.3.8]# ./configure --prefix=/usr/local/php5
--enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5
[root@wiki php-5.3.8]# make test //这里强烈建议测试一下,不解释
[root@wiki php-5.3.8]# make && make install
[root@wiki php-5.3.8]# cp php.ini-development /usr/local/php5/php.ini
在APACHE里添加php,使APACHE支持PHP
[root@wiki php-5.3.8]# vim /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html
[root@wiki php-5.3.8]# cat /usr/local/apache2/htdocs/wiki/index.php
phpinfo();
?>
[root@wiki php-5.3.8]# service apache restart
测试:在client的IE中输入
七, 测试PHP与APACHE的协同工作
[root@wiki php-5.3.8]# vim /usr/local/apache2/htdocs/wiki/topdb.php
$link=mysql_connect('loalhost','root','redhat');
if(!$link)
echo "Sorry it's Fail!!";
else
echo "Successfully,test for wiki.test.com!!";
mysql_close();
?>
[root@wiki php-5.3.8]# service apache restart
在客户上进行测试:
至此,说明LAMP平台已经成功的搭建成功!
八,配置WIKI
[root@wiki php-5.3.8]# mv ../mediawiki-1.17.0/* /usr/local/apache2/htdocs/wiki/
[root@wiki php-5.3.8]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.92-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.03 sec)
mysql> create database mediawiki;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mediawiki |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mediawiki;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table test(myname VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+---------------------+
| Tables_in_mediawiki |
+---------------------+
| test |
+---------------------+
1 row in set (0.00 sec)
mysql> grant all on mediawiki.* to mediawiki@localhost identified by 'redhat';
Query OK, 0 rows affected (0.01 sec)
mysql> exit
[root@wiki php-5.3.8]# service apache restart
开始配置WIKI:
选择语言
点击同意进行下一步
配置wiki与mysql的一些参数:
安装完成
客户端测试访问:
关于WIKI的详细参数配置,请参阅官方文档open4a-Getting-Started-with-mediawiki[1]
AB压力测试
先修改最大文件数限制
[root@wiki php-5.3.8]# ulimit -a | grep "open files"
open files (-n) 1024
[root@wiki php-5.3.8]# ulimit -n 10000
[root@wiki php-5.3.8]# ulimit -a | grep "open files"
open files (-n) 10000
[root@wiki php-5.3.8]# /usr/local/apache2/bin/ab -q -c 2000 -n 4000 /
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,
Licensed to The Apache Software Foundation,
Benchmarking wiki.test.com (be patient).....done
Server Software: Apache/2.2.21
Server Hostname: wiki.test.com
Server Port: 80
Document Path: /
Document Length: 44 bytes
Concurrency Level: 2000
Time taken for tests: 3.395 seconds
Complete requests: 4000
Failed requests: 0
Write errors: 0
Total transferred: 1220000 bytes
HTML transferred: 176000 bytes
Requests per second: 1178.06 [#/sec] (mean)
Time per request: 1697.712 [ms] (mean)
Time per request: 0.849 [ms] (mean, across all concurrent requests)
Transfer rate: 350.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 220 728.1 1 3011
Processing: 0 362 783.8 33 3053
Waiting: 0 361 784.1 33 3053
Total: 27 582 1039.7 35 3246
Percentage of the requests served within a certain time (ms)
50% 35
66% 40
75% 410
80% 840
90% 3020
95% 3154
98% 3217
99% 3229
100% 3246 (longest request)
使用awstats分析Web日志
[root@wiki awstats-7.0]# tar -zxvf awstats-7.0.tar.gz -C /usr/local/ (严格操作)
[root@wiki Desktop]# mv /usr/local/awstats-7.0 /usr/local/awstats
[root@wiki awstats]# ls
docs README.TXT tools wwwroot
[root@wiki tools]# ./awstats_configure.pl
----- AWStats awstats_configure 1.0 (build 1.9) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).
-----> Running OS detected: Linux, BSD or Unix
-----> Check for web server install
Found Web server Apache config file '/usr/local/apache2/conf/httpd.conf'
-----> Check and complete web server config file '/usr/local/apache2/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y
Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'
Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"'
Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'
Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'
Add '
AWStats directives added to Apache config file.
-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
File awstats.model.conf updated.
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example:
Example: demo
Your web site, virtual server or profile name:
> wiki.test.com
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> Press ENTER to continue...
....
Press ENTER to continue...
Press ENTER to finish...
[root@wiki tools]# vim /etc/awstats/awstats.wiki.test.com.conf
LogFile="/usr/local/apache2/logs/wiki.test.com-access_log" 注意这里是监控的是wiki的日志,所以这个地方写的要和vhost里面要一样,不能有出入
[root@wiki tools]# touch /usr/local/apache2/logs/wiki.test.com.access.log
在此先把access.log的日志格式修改一下
这里选择日志的格式为 combined,而不是common,awstats解析不了common
[root@wiki tools]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
ServerAdmin root@test.com
DocumentRoot "/usr/local/apache2/htdocs/wiki"
ServerName wiki.test.com
ServerAlias
ErrorLog "logs/wiki.test.com.com-error_log"
CustomLog "logs/wiki.test.com-access_log" combined
[root@wiki tools]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wiki.test.com
Error: AWStats database directory defined in config file by 'DirData' parameter (/var/lib/awstats) does not exist or is not writable.
Setup ('/etc/awstats/awstats.wiki.test.com.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
(根据提示,我修改了/etc/awstats/awstats.wiki.test.com.conf的DirData参数或是直接建立/var/lib/awstats)
[root@wiki awstats-7.0]# mkdir /var/lib/awstats
[root@wiki awstats-7.0]# perl /usr/local/src/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wiki.test.com
Create/Update database for config "/etc/awstats/awstats.wiki.test.com.conf" by AWStats version 7.0 (build 1.971)
From data in log file "/usr/local/apache2/logs/wiki.test.com.access.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records. 注意这里没有任何记录说明有问题
[root@wiki tools]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wiki.test.com
Create/Update database for config "/etc/awstats/awstats.wiki.test.com.conf" by AWStats version 7.0 (build 1.971)
From data in log file "/usr/local/apache2/logs/wiki.test.com-access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 4
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 4 new qualified records. 这样才是OK的
[root@wiki awstats-7.0]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@wiki awstats-7.0]# crontab -l (crontab -e)
* */5 * * * /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wiki.test.com
[root@wiki tmp]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
[root@wiki tmp]# chkconfig crond on
在之前把APACHE全局的CustomLog注释掉
#CustomLog "logs/access_log" combined
测试:
[root@wiki awstats-7.0]# vim /usr/local/apache2/htdocs/wiki/awstats.html
config=wiki.test.com">
在client上IE中输入/awstats.html
# Albanian=al, Bosnian=ba, Bulgarian=bg, Catalan=ca,
# Chinese (Taiwan)=tw, Chinese (Simpliefied)=cn, Croatian=hr, Czech=cz,
# Danish=dk, Dutch=nl, English=en, Estonian=et, Euskara=eu, Finnish=fi,
# French=fr, Galician=gl, German=de, Greek=gr, Hebrew=he, Hungarian=hu,
# Icelandic=is, Indonesian=id, Italian=it, Japanese=jp, Korean=ko,
# Latvian=lv, Norwegian (Nynorsk)=nn, Norwegian (Bokmal)=nb, Polish=pl,
# Portuguese=pt, Portuguese (Brazilian)=br, Romanian=ro, Russian=ru,
# Serbian=sr, Slovak=sk, Slovenian=si, Spanish=es, Swedish=se, Turkish=tr,
# Ukrainian=ua, Welsh=cy.
# First available language accepted by browser=auto
# Default: "auto"
#
Lang="cn"
默认是auto,这个就不用解释,如果你要改成什么语言就参照上面的来改,我都测试过了,OK
对awstats进行访问控制
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf 在里面查到与awstats相关信息
AuthName "Awstats"
AuthType Basic
AuthUserFile /usr/local/awstats/wwwroot/.htpasswd
require user awuser
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
[root@wiki tools]# /usr/local/apache2/bin/htpasswd -c /usr/local/awstats/wwwroot/.htpasswd awuser
New password:
Re-type new password:
Adding password for user awuser
[root@localhost ~]# service apache restart
测试:在client中IE输入/awstats.html
shell-init: error retrieving current directory cannot access parent directories
i was wondering if you can help me, im getting this error whenver i try to restart a service in my server:
-bash: etc/init.d/named: No such file or directory
[root@server install]# /etc/init.d/named stop
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Stopping named: [ OK ]
[root@server install]# /etc/init.d/mysqld stop
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Stopping MySQL: [ OK ]
[root@server install]# /etc/init.d tpd stop
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Stopping httpd:
1.创建awstats目录
tar -zvxf awstats-6.7.tar.gz
mv awstats-6.7 /usr/local/awstats
2.vi /usr/local/apache/conf tpd.conf
添加如下内容:
配置虚拟目录和CGI执行目录
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
配置目录权限和配置认证
AuthType Basic
AuthName "AWstats View"
AuthUserFile /usr/local/apache/conf/password
Require user admin
Options None
AllowOverride None
Order allow,deny
Allow from all
3.生成认证用户:
mkdir -pv /usr/local/apache/passwd
/usr/local/apache/bin passwd -c /usr/local/apache/passwd/passwords admin
输入密码
4.修改虚拟主机的日志存放路径并创建日志文件
vi /usr/local/apache/conf/extra tpd-vhosts.conf
DocumentRoot /home/web/abc-com
ServerName abc.com
ErrorLog "/usr/local/apache/logs/abc-error_log"
CustomLog "/usr/local/apache/logs/abc-access_log" combined
注意:日志格式不能错
创建日志文件:
touch /usr/local/apache/logs/abc-error_log
touch /usr/local/apache/logs/abc-access_log
5.建立存放日志的目录data
mkdir -pv /usr/local/awstats/data
6.配置awstats
cd /usr/local/awstats/wwwroot/cgi-bin
cp awstats.model.conf awstats.abc.com.conf
修改文件内容
vi awstats.abc.com.conf
LogFile="/usr/local/apache/logs/abc-access_log"
SiteDomain="abc.com"
DirData="/usr/local/awstats/data"
DirCgi="/awstats"
DirIcons="/awstatsicons" 这个写错了图片会出不来
AllowToUpdateStatsFromBrowser=1 允许浏览器自动刷新
最后一行加入:
LoadPlugin="decodeutfkeys" 否则关键词部分会显示乱码
7.运行
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=abc.com -lang=cn
crontab -e
*/20 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=abc.com -lang=cn
访问
8.安装ip插件
tar -zvxf Geo-IP-1.34.tar.gz
cd Geo-IP-1.34
perl Makefile.PL
make;make install
tar -zvxf GeoIP-1.4.5.tar.gz
cd GeoIP-1.4.5
./configure
make;make install
tar -zvxf Geo-IPfree-0.2.tar.tar
cd Geo-IPfree-0.2
perl Makefile.PL
make;make install
cp GeoIP.dat /usr/local/awstats/wwwroot/cgi-bin/
cp GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/
vi /usr/local/awstats/wwwroot/cgi-bin/awstats.abc.com.conf
在最后加入:
LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"
附:软件下载地址
补充:
运行awstats/tools/awstats_configure.pl可以将配置文件指定到/etc目录下,以后可以将配置文件放到/etc下就可以了
# Albanian=al, Bosnian=ba, Bulgarian=bg, Catalan=ca,
# Chinese (Taiwan)=tw, Chinese (Simpliefied)=cn, Croatian=hr, Czech=cz,
# Danish=dk, Dutch=nl, English=en, Estonian=et, Euskara=eu, Finnish=fi,
# French=fr, Galician=gl, German=de, Greek=gr, Hebrew=he, Hungarian=hu,
# Icelandic=is, Indonesian=id, Italian=it, Japanese=jp, Korean=ko,
# Latvian=lv, Norwegian (Nynorsk)=nn, Norwegian (Bokmal)=nb, Polish=pl,
# Portuguese=pt, Portuguese (Brazilian)=br, Romanian=ro, Russian=ru,
# Serbian=sr, Slovak=sk, Slovenian=si, Spanish=es, Swedish=se, Turkish=tr,
# Ukrainian=ua, Welsh=cy.
# First available language accepted by browser=auto
# Default: "auto"
#
Lang="cn"
[root@wiki htdocs]# tar -zxvf phpMyAdmin-3.4.9-all-languages.tar.gz -C /usr/local/apache2 docs/
[root@wiki htdocs]# ls
index.html phpMyAdmin-3.4.9-all-languages wiki
[root@wiki htdocs]# mv phpMyAdmin-3.4.9-all-languages phpMyAdmin
[root@wiki htdocs]# ls
index.html phpMyAdmin wiki
[root@wiki phpMyAdmin]# cp config.sample.inc.php config.inc.php
[root@wiki phpMyAdmin]# vim config.inc.php
$cfg['blowfish_secret'] = 'redhat'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
[root@wiki phpMyAdmin]# vim /usr/local/apache2/conf/extra tpd-vhosts.conf
ServerAdmin root@test.com
DocumentRoot "/usr/local/apache2 docs/phpMyAdmin"
ServerName admin.test.com
ErrorLog "logs/admin.test.com.com-error_log"
CustomLog "logs/admin.test.com-access_log" combined