设为首页 收藏本站
查看: 1250|回复: 0

超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmadin+mysql+php+AB压力测试

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-12 09:47:32 | 显示全部楼层 |阅读模式
实验环境:
两台机器:Centos6.4
机器一: 192.168.56.10  安装httpd  php   等整合

机器二: 192。168.56.11 安装 mysql
========================================================================================
(iptables -t nat -I PREROUTING -d 外IP -p tcp -m tcp --dport 端口 -j DNAT --to-destination 外网IP:端口)
========================================================================================
机器一:

1. yum -y install *libxml2* httpd* PHP* *gcc* mysql mysql-devel ( 这里的mysql 是客户端)
vim  /etc/hosts      
    192.168.56.10    www.example.com
     192.168.56.10    web.example.com
vim  /etc/httpd/conf/httpd.conf

修改:ServerName www.example.com:80

      DirectoryIndex index.html index.html.var index.php

      NameVirtualHost  192.168.56.10:80  //开启虚拟主机为了以后做虚拟主机挂网站

<VirtualHost 192.168.56.10:80>
    ServerAdmin www.example.com                             
    DocumentRoot /var/www/html
    ServerName www.example.com
    ErrorLog logs/www.example.com-error_log
    CustomLog logs/www.example.com-access_log common
</VirtualHost>

2. 解压phpMyadmin-*
cp -RV   phpmyadmin-*                /var/www/html/phpmyadmin

cd     /var/www/html/phpmyadmin
mv config.sample.inc.php    config.sample.inc.php.bak
cp config.sample.inc.php.bak     config.inc.php

vim config.inc.php
$cfg['blowfish_secret'] = 'redhat';  //随便指定,不为空

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['host'] = '192.168.56.11';//指定你的mysql 数据库地址

$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'redhat'; //指定你的mysql 数据库的用户名和密码

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

vim libraries/config.default.php

$cfg['blowfish_secret'] = 'redhat';

$cfg['Servers'][$i]['host'] = '192.168.56.11';

$cfg['Servers'][$i]['port'] = '3306'; //指定你的Mysql 数据库端口

$cfg['Servers'][$i]['controluser'] = 'root';

$cfg['Servers'][$i]['controlpass'] = 'redhat';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = 'redhat';

//这个里面默认的为空,找到他们写入跟上面一样的数值:
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
===============================================================

客户端输入192.168.56.10/phpmyadmin   会报 mcrypt 插件错误:yum 安装PHP 没有mcrypt的插件。源码安装PHP你又必须指定 Mysql的安装位置。由于数据库和PHP分两台机器没法指定mysql的安装位置。所以我们采用编译安装模块。
========================================================================
1。开始编译 安装:libmcrypt-2.5.8

./configure    make && make install

2。开始编译 安装:mhash-0.9.9.9
   /configure    make && make install

3。开始编译 安装:mcrypt-2.6.8

/configure    make && make install

===================================================================
以上三个包编译安装为了一个目的就是解决 php 没有 mcrypt.so 模块的问题
====================================================================

4。开始编译 源码PHP :(只编译不安装)php-5.2.13

./configure  --with-mcrypt

5. 编译完成以后,进入解压以后源码包的存放mcrypt的目录下
cd php-5.2.13/ext/mcrypt/
===========================================================

phpize 敲这条命令

aclocal 再敲这条命令

如果没有phpize 这条命令你需要安装php-devel.
亲身试验RHEL 光盘包没这个包。而centos里面有这个包。

敲这条命令的目的是为了在 mcrypt生产 configure 文件 。默认没有configure的

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

6. 然后安装执行:
cd php-5.2.13/ext/mcrypt/
./configure
make clean
make
make install

7. 现在php的安装目录下面应该有了mcrypt.so 的文件了。
实在不清楚在哪里就用命令找一下

find / -name  mcrypt.so

我找到的在这个路径下 :

/usr/lib64/php/modules/mcrypt.so
/tmp/php-5.2.13/ext/mcrypt/modules/mcrypt.so
/tmp/php-5.2.13/ext/mcrypt/.libs/mcrypt.so

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

8。 最后一步,把mcrypt.so 让php 调用识别就行了 :

vim  /etc/php.ini

extension=mcrypt.so

service  httpd restart

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

有些报错可能会遇到,我没遇到;这里就标识出来吧:
特别注意:
1、phpize需在解压后的源码包下执行,执行后生成configure脚本
2、运行./configure时,如果提示
configure: error: Cannot find php-config. Please use --with-php-config=PATH
请使用:
./configure --with-php-config=/php-install-path/bin/php-config #而不是使用php.ini

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

机器二: 192.168.56.11  比较简单

yum  -y install mysql*

service mysqld restart

mysqladmin -u root password redhat

mysql -u root -p

输入密码进入mysql:

use mysql;

select host, user,password from user;

//查看到的只有本地的连接
| host                  | user | password                                  |
+-----------------------+------+-------------------------------------------+
| localhost             | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| SERVER-11.example.com | root |                                           |
| 127.0.0.1             | root |                                           |
| localhost             |      |                                           |
| SERVER-11.example.com |      |   

//所以,我们要添加远程能够连接:

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat';

root@%  root 是你mysql的用户名 % 代表所有主机: 这里可以写IP:如 root@192.168.56.10
BY  指定的是你root的密码 :(这里的密码和上面PHPMyadmin 里面保持一致)

flush privileges; //使修改即时生效

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

再用select host, user,password from user; 查看

+-----------------------+------+-------------------------------------------+
| host                  | user | password                                  |
+-----------------------+------+-------------------------------------------+
| localhost             | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
| SERVER-11.example.com | root |                                           |
| 127.0.0.1             | root |                                           |
| localhost             |      |                                           |
| SERVER-11.example.com |      |                                           |
| %                     | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
+-----------------------+------+-------------------------------------------+

=====================解决完成mcrypt.so完===================================

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

安装 Discuz动网论坛
1. 修改php.ini
vim /etc/php.ini
short_open_tag = on

2. 解压论坛:unzip Discuz_7.2_FULL_SC_UTF8.zip -d discus

mv discus/upload/*  /var/www/htlm/bbs

service httpd restart


点击安装下一步,会出现 什么不可读写,需要下一步把红色部分变成读写:
解决方法:(权限必须777;755试了还是不能写)
cd /var/www/html/bbs
chmod -R 777 config.inc.php attachments/
chmod -R 777 forumdata/ uc_client/data/cache/

service httpd restart
=========================================================================

在数据库服务器上创建bbs的数据库:192.168.56.11

create database discuz;

=========================================================================
在浏览器输入http://192.168.56.10/bbs/install/index.php 下一步,下一步。

指定数据库服务器:92.168.56.11
数据库名字:discuz
数据库用户名:root
数据库密码:redhat
数据库表前缀:cdb_discuz

下面写管理员密码:

安装完成: http://192.168.56.10/bbs

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

有些情况出不来页面就把instll.php 删除
root@localhost bbs]# mv install/ install.lock
[iyunv@localhost bbs]# chmod o-rx install.lock/

这两步不操作也可成功:

==============================================================
额外操作:可以不做,没实质意义:
AB 压力测试 :

[iyunv@localhost ~]# ulimit -a | grep "open files"
open files (-n) 1024
[iyunv@localhost ~]# ulimit -n 10000
[iyunv@localhost ~]# ulimit -a | grep "open files"
open files (-n) 10000
[iyunv@localhost ~]#ab -c 2000 -n 4000 http://192.168.56.10/bbs/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.crazylinux.com (be patient)
apr_socket_recv: Connection reset by peer (104)
Total of 331 requests completed
Server Software: Apache/2.2.15

Server Hostname: www.example.com
Server Port: 80
Document Path: /bbs/
Document Length: 7710 bytes
Concurrency Level: 2000 //用于并发连接的请求数
Time taken for tests: 75.946 seconds //测试过程消耗的时间
Complete requests: 331 //测试过程总共完成的请求数
Failed requests: 330 //失败的请求数
(Connect: 0, Receive: 1, Length: 330, Exceptions: 0)
Write errors: 0
Total transferred: 2675927 bytes //测试过程网络传输量
HTML transferred: 2559063 bytes //测试过程中的HTML内容传输量
Requests per second: 4.36 [#/sec] (mean) //服务器平均每秒相应的请求数
Time per request: 458886.079 [ms] (mean) //服务器平均每请求的相应时间
Time per request: 229.443 [ms] (mean, across all concurrent requests) //每个请求实际运行时间的平均值
Transfer rate: 34.41 [Kbytes/sec] received //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms) //连接时间统计信息
min mean[+/-sd] median max
Connect: 0 330 823.9 270 3837
Processing: 191 4977 4422.9 2976 26613
Waiting: 174 4976 4419.4 2976 26550
Total: 514 5308 4778.8 2999 27018
Percentage of the requests served within a certain time (ms)
50% 2999
66% 5421
75% 6967
80% 8983
90% 13226
95% 17052
98% 17610
99% 19567
100% 27018 (longest request)
//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于2999毫秒,60% 的用户响应时间小于5421毫秒,最大的响应时间小于27018毫秒 由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上

================================================================================
使用awstats 分析web 日志:

tar -zxvf awstats-6.95.tar.gz
mv awstats-6.95/ /usr/local/awstats

cd /usr/local/awstats/tools/
./awstats_configure.pl
指定你的http安装的路径,我是yum安装的,所以指定:
> /etc/httpd/conf/httpd.conf
输入两个Y
输入网站域名;www.example.com

vim /etc/awstats/awstats.www.example.com.conf
52 LogFile="/var/log/httpd/www.example.com-access_log"
在此先把access.log的日志格式修改一下 这里选择日志的格式为 combined,而不是common,awstats解析不了common

<VirtualHost 192.168.56.10>
DocumentRoot "/var/www/html"
ServerName www.example.com
ServerAlias www.francis.com
ErrorLog "logs/www.example.com-error_log"
CustomLog "logs/www.example.com-access_log" combined
</VirtualHost>
=============================================================
<VirtualHost 192.168.56.10>
DocumentRoot "/var/www/vir"
ServerName www.google.com
ErrorLog "logs/www.google.com-error_log"
CustomLog "logs/www.google.com-access_log" common
</VirtualHo>
===========================================================

cd /usr/local/awstats/

mkdir /var/lib/awstats

perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=192.168.56.10

注意:-config= 如果有DNS 用域名。如果没有DNS 用IP
===============================================================================
正确信息:cd /var/log/httpd/    rm -rf * (删除apche生成的日志。重新生成日志)
[iyunv@SERVER-10 httpd]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=192.168.56.10 -update
Create/Update database for config "/etc/awstats/awstats.192.168.56.10.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/httpd/www.example.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 corrupted records,
Found 0 old records,
Found 0 new qualified records.
================================================================================

开启计划任务:
crontab -e
*/5 * * * * /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.example.com(192.168.56.10)

service crond restart
chkconfig crond on

==============================================================================
cd /var/www/html/bbs/
vim awstats.html

<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.example.com/awstats/awstats.pl
-config=192.168.56.10">
</head>
<body>
</body>
</html>

客户端输入 :192.168.56.10/bbs/awstats.html 看见一个网页

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

这个 访问控制可以不做
=====================================================================

对awstats进行访问控制
[iyunv@localhost ~]# vim /etc/httpd/conf/httpd.conf 在里面查到与awstats相关信息
423 <Directory "/usr/local/awstats/wwwroot">
424 AuthName "Awstats"
425 AuthType Basic
426 AuthUserFile /usr/local/awstats/wwwroot/.htpasswd
427 require user awuser
428 Options None
429 AllowOverride AuthConfig
430 Order allow,deny
431 Allow from all
432 </Directory>
[iyunv@localhost ~]# htpasswd -cm /usr/local/awstats/wwwroot/.htpasswd awuser

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

搭建 Apache +tomcat 实现读取JSP 程序

[iyunv@localhost local]# cat HelloWorld.java
public class HelloWorld {
public static void main(String args[]){
System.out.println("HelloWorld !!");
}
}
[iyunv@localhost local]# javac HelloWorld.java //编译程序

[iyunv@localhost local]# java HelloWorld //执行程序
HelloWorld !!

[iyunv@localhost home]# tar -zxvf apache-tomcat-6.0.18.tar.gz -C /usr/local/src/
[iyunv@localhost home]# ln -sf /usr/local/src/apache-tomcat-6.0.18 /usr/local/tomcat
[iyunv@localhost home]# ln -sf /usr/local/tomcat/bin/startup.sh /usr/bin/tomcat-up
[iyunv@localhost home]# ln -sf /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcat-down

[iyunv@localhost home]# vim /usr/local/tomcat/conf/tomcat-users.xml
18 <tomcat-users>
19 <user username="crazy" password="linux" roles="manager,admin"/>
20 <!--
21 <role rolename="tomcat"/>
22 <role rolename="role1"/>
23 <user username="tomcat" password="tomcat" roles="tomcat"/>
24 <user username="both" password="tomcat" roles="tomcat,role1"/>
25 <user username="role1" password="tomcat" roles="role1"/>
26 -->
27 </tomcat-users>
[iyunv@localhost home]# tomcat-up
[iyunv@localhost home]# netstat -nutlp | grep java
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 3526/java
tcp 0 0 :::8009 :::* LISTEN 3526/java
tcp 0 0 :::8080 :::* LISTEN 3526/java
=====================================================
客户端输入192.168.56.10:8080 选择tomcat-manager
输入 root  redhat  管理tomcat

cp mod_jk-1.2.28-httpd-2.2.X.so  /etc/httpd/modules/
vim /etc/httpd/conf/httpd.conf
AddType application/x-jsp .jsp
cd  /usr/local/tomcat/webapps
mkdir -p /var/www/html/apps
ln -sf /var/www/html/ web-apps1

vim /var/www/html/apps/showtime.jsp
<%@page language="java" import="java.util.*" %>
Now,the time&date is:<%out.println(new Date()); %>

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

Now,the time&date is:Thu Jul 10 23:37:11 CST 2014


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24724-1-1.html 上篇帖子: LEMP架构及应用部署 下篇帖子: centos 64位lamp一键安装包 web服务器 压力测试 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表