@maorongrong
2015-05-18T03:37:09.000000Z
字数 15013
阅读 733
SPECweb2009 Linux docker 毕设 原创
声明:此文档为本人毕设原创,转载请注明出处
参考安装博文Centos
参考安装博文Ubuntu
SPECweb2009官方安装文档
注意要enable-ssl,因为Banking和Ecommerce需要SSL的支持
解决编译安装Apache支持SSL缺少依赖包:
ubuntu的解决办法:sudo apt-get install libssl-dev
centos没有libssl-dev包,因此解决方法:安转openssl-devel包
[root@c0cbb7297058 httpd-2.2.22]# yum -y install gcc(安装C编译器)[root@c0cbb7297058 httpd-2.2.22]# ./configure --prefix=/usr/local/apache2 --with-ssl=/usr/lib --enable-ssl --enable-so报错:error:No recognized SSL/TLS toolkit detected[root@c0cbb7297058 httpd-2.2.22]# yum install openssl-devel再来configure[root@c0cbb7297058 httpd-2.2.22]# ./configure --prefix=/usr/local/apache2 --with-ssl=/usr/lib --enable-ssl --enable-so(正常执行)[root@c0cbb7297058 httpd-2.2.22]# make[root@c0cbb7297058 httpd-2.2.22]# make install
安装路径:/usr/local/php5
主要参考
[root@c0cbb7297058 local]# tar -xvf php-5.5.23.tar.gzroot@c0cbb7297058 local]# cd php-5.5.23/[root@c0cbb7297058 php-5.5.23]# vi INSTALL(教PHP不同应用目的,不同系统的安装方法)
[root@c0cbb7297058 php-5.5.23]# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs报错如下:Sorry, I cannot run apxs. Possible reasons follow:1. Perl is not installed2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs3. Apache was not built using --enable-so (the apxs usage page is displayed)The output of /usr/local/apache2/bin/apxs follows:./configure: /usr/local/apache2/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directoryconfigure: error: Aborting
经典解决方法(用必应翻译一下,因为是日文的)
解决方法:排除法
(1)apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs 明显能找到
[root@c0cbb7297058 php-5.5.23]# ls -la /usr/local/apache2/bin/ | grep apxs-rwxr-xr-x 1 root root 22678 Apr 22 01:10 apxs(说明有)
(2)Apache was not built using --enable-so (the apxs usage page is displayed) So_module 有此模块
[root@c0cbb7297058 php-5.5.23]# /usr/local/apache2/bin/apachectl -MLoaded Modules:core_module (static)authn_file_module (static)authn_default_module (static)authz_host_module (static)authz_groupfile_module (static)authz_user_module (static)authz_default_module (static)auth_basic_module (static)include_module (static)filter_module (static)log_config_module (static)env_module (static)setenvif_module (static)version_module (static)ssl_module (static)mpm_prefork_module (static)http_module (static)mime_module (static)status_module (static)autoindex_module (static)asis_module (static)cgi_module (static)negotiation_module (static)dir_module (static)actions_module (static)userdir_module (static)alias_module (static)so_module (static)Syntax OK
(3)没有安装perl
[root@c0cbb7297058 php-5.5.23]# yum install perl[root@localhost php-5.5.23]# which perl/usr/bin/perl或者[root@c0cbb7297058 php-5.5.23]# find /usr/ -name perl/usr/bin/perl
再来configure PHP
[root@c0cbb7297058 php-5.5.23]# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs报错如下:The output of /usr/local/apache2/bin/apxs follows:./configure: /usr/local/apache2/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directoryconfigure: error: Aborting
就是说,/usr/local/apache2/bin/apxs中涉及的perl的调用,而在他的默认脚本中,perl路径是错误的,更改为你自己perl的路径
[root@c0cbb7297058 php-5.5.23]# vi /usr/local/apache2/bin/apxs把这里部分#!/replace/with/path/to/perl/interpreter -w (修改的时候这一行一定要删除,否则会又提醒 找不到这个perl的路径)#更改为:#!/usr/bin/perl -w#
再来configure PHP吧
[root@c0cbb7297058 php-5.5.23]# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs。。。。。。checking whether to enable LIBXML support... yeschecking libxml2 install dir... nochecking for xml2-config path...configure: error: xml2-config not found. Please check your libxml2 installation.
根据提示,我们再来安装libxml2 installation
[root@c0cbb7297058 php-5.5.23]# yum install libxml2-devel
[root@c0cbb7297058 php-5.5.23]# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxsThank you for using PHP.config.status: creating php5.specconfig.status: creating main/build-defs.hconfig.status: creating scripts/phpizeconfig.status: creating scripts/man1/phpize.1config.status: creating scripts/php-configconfig.status: creating scripts/man1/php-config.1config.status: creating sapi/cli/php.1config.status: creating sapi/cgi/php-cgi.1config.status: creating ext/phar/phar.1config.status: creating ext/phar/phar.phar.1config.status: creating main/php_config.hconfig.status: executing default commands(说明配置成功了,开始安装吧)[root@c0cbb7297058 php-5.5.23]# makeBuild complete.Don't forget to run 'make test'[root@c0cbb7297058 php-5.5.23]# make install[root@c0cbb7297058 php-5.5.23]# ll其他的省略,-rw-r--r-- 1 1887963844 1887961601 69236 Mar 18 09:45 php.ini-development-rw-r--r-- 1 1887963844 1887961601 69266 Mar 18 09:45 php.ini-production[root@c0cbb7297058 php-5.5.23]# cp php.ini-development /usr/local/php5/php.ini[root@c0cbb7297058 php-5.5.23]# cd /usr/local/php5[root@c0cbb7297058 php4]# lltotal 88drwxr-xr-x 2 root root 4096 Apr 22 08:15 bindrwxr-xr-x 2 root root 4096 Apr 22 08:15 etcdrwxr-xr-x 3 root root 4096 Apr 22 08:15 includedrwxr-xr-x 3 root root 4096 Apr 22 08:15 libdrwxr-xr-x 3 root root 4096 Apr 22 08:15 php-rw-r--r-- 1 root root 69236 Apr 22 08:41 php.ini
关于PHP源码安装默认路径和编译指定安装路径--prefix=/usr/local/php5
(1)如果采用源代码安装,一般默认安装在/usr/local/lib目录下
php配置文件: /usr/local/lib/php.ini或/usr/local/php/etc/php.ini
(2)编译安装指定路径 :/usr/local/php5
因此PHP的配置文件php.ini 从编译安装包里复制放在/usr/local/php5/目录下
[root@c0cbb7297058 php4]# cd /usr/local/apache2/conf/[root@c0cbb7297058 conf]# vi httpd.conf# LoadModule foo_module modules/mod_foo.soLoadModule php5_module modules/libphp5.so (这里安装php5的时候已经自动加入了)<IfModule mime_module>##AddType application/x-compress .Z (本来就有)AddType application/x-gzip .gz .tgz (本来就有)AddType application/x-httpd-php .php .phtml (只需要加入这个)</IfModule mime_module>启动apache[root@c0cbb7297058 htdocs]# /usr/local/apache2/bin/apachectl start[root@c0cbb7297058 htdocs]# vi phpinfo.php (写一个测试apache是否成功支持php的测试脚本)<?phpphpinfo();?>浏览器访问http://127.0.0.1:80/phpinfo.php
1.修改apache2/conf/httpd.conf,
将“Include conf/extra/httpd-ssl.conf”这一行取消注释 支持SSL
2.重启apache报错更改方法:
没有配置ssl,需要生成ssl需要的证书
3.修改conf/extra/httpd-ssl.conf
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 修改为 SSLCipherSuite ALL
这是为了解决CipherSuite不匹配导致ssl handshake_failure的问题
SSLCertificateFile和SSLCertificateKeyFile分别对应到上一步生成的example.crt和example.key
[root@c0cbb7297058 extra]# /usr/local/apache2/bin/apachectl startSyntax error on line 117 of /usr/local/apache2/conf/extra/httpd-ssl.conf:SSLCertificateFile: file '/usr/local/apache2/conf/server.crt' does not exist or is empty生成服务器证书和秘钥:[root@c0cbb7297058 conf]# openssl req -new -x509 -nodes -out server.crt -keyout server.keyGenerating a 2048 bit RSA private key...................+++..............................................................................................................................................................+++writing new private key to 'server.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CHState or Province Name (full name) []:shanxiLocality Name (eg, city) [Default City]:xianOrganization Name (eg, company) [Default Company Ltd]:Organizational Unit Name (eg, section) []:CSCommon Name (eg, your name or your server's hostname) []:localhostEmail Address []:zam121118@163.com[root@c0cbb7297058 conf]# lltotal 116drwxr-xr-x 2 root root 4096 Apr 23 07:34 extra-rw-r--r-- 1 root root 13688 Apr 22 09:10 httpd.conf-rw-r--r-- 1 root root 13593 Apr 22 08:15 httpd.conf.bak-rw-r--r-- 1 root root 12958 Apr 22 01:15 magic-rw-r--r-- 1 root root 49815 Apr 22 01:15 mime.typesdrwxr-xr-x 3 root root 4096 Apr 22 01:15 original-rw-r--r-- 1 root root 1428 Apr 23 11:45 server.crt-rw-r--r-- 1 root root 1708 Apr 23 11:45 server.key[root@c0cbb7297058 conf]# /usr/local/apache2/bin/apachectl start
在浏览器测试是否安装成功:http://202.117.16.189:380/phpinfo.php (出现介绍PHP版本的表格信息)
[root@c0cbb7297058 htdocs]# lltotal 8-rw-r--r-- 1 500 500 44 Nov 20 2004 index.html-rw-r--r-- 1 root root 20 Apr 22 09:02 phpinfo.php[root@c0cbb7297058 conf]# cd /usr/web2009-1.20/Scripts/PHP[root@c0cbb7297058 PHP]# cp -r ./* /usr/local/apache2/htdocs/[root@c0cbb7297058 conf]# chmod -R 777 /usr/local/apache2/htdocs/ (递归的给权限)[root@c0cbb7297058 conf]# vi httpd.conf (查看DOCUMENTROOT)DocumentRoot "/usr/local/apache2/htdocs"[root@c0cbb7297058 web2009-1.20]# cd redistributable_sources/[root@c0cbb7297058 web2009-1.20]# tar -xvf Smarty-2.6.22.tar.gz[root@c0cbb7297058 web2009-1.20]# cd Smarty-2.6.22[root@c0cbb7297058 Smarty-2.6.22]# lltotal 428-rw-rw-r-- 1 1003 1000 370 Dec 17 2008 BUGS-rw-rw-r-- 1 1003 1000 289225 Dec 17 2008 ChangeLog-rw-rw-r-- 1 1003 1000 24389 Dec 17 2008 COPYING.libdrwxrwxr-x 5 1003 1000 4096 Dec 17 2008 demo-rw-rw-r-- 1 1003 1000 12740 Dec 17 2008 FAQ-rw-rw-r-- 1 1003 1000 1408 Dec 17 2008 INSTALLdrwxrwxr-x 4 1003 1000 4096 Dec 17 2008 libsdrwxrwxr-x 2 1003 1000 4096 Dec 17 2008 misc-rw-rw-r-- 1 1003 1000 48489 Dec 17 2008 NEWS-rw-rw-r-- 1 1003 1000 3052 Dec 17 2008 QUICK_START-rw-rw-r-- 1 1003 1000 3393 Dec 17 2008 README-rw-rw-r-- 1 1003 1000 18942 Dec 17 2008 RELEASE_NOTES-rw-rw-r-- 1 1003 1000 421 Dec 17 2008 TODOdrwxrwxr-x 6 1003 1000 4096 Dec 17 2008 unit_test[root@c0cbb7297058 Smarty-2.6.22]# cp -r ./libs /usr/local/apache2/htdocs/[root@c0cbb7297058 Smarty-2.6.22]# cd /usr/local/apache2/htdocs/[root@c0cbb7297058 htdocs]# lltotal 24 (bank\ecommerce\support都是复制)drwxrwxrwx 4 root root 4096 Apr 22 13:37 bankdrwxrwxrwx 4 root root 4096 Apr 22 13:37 ecommerce-rwxrwxrwx 1 500 500 44 Nov 20 2004 index.htmldrwxr-xr-x 4 root root 4096 Apr 23 00:54 libs-rwxrwxrwx 1 root root 20 Apr 22 09:02 phpinfo.phpdrwxrwxrwx 4 root root 4096 Apr 22 13:37 support[root@c0cbb7297058 htdocs]# mv libs Smarty[root@c0cbb7297058 htdocs]# lltotal 24drwxrwxrwx 4 root root 4096 Apr 22 13:37 bankdrwxrwxrwx 4 root root 4096 Apr 22 13:37 ecommerce-rwxrwxrwx 1 500 500 44 Nov 20 2004 index.html-rwxrwxrwx 1 root root 20 Apr 22 09:02 phpinfo.phpdrwxr-xr-x 4 root root 4096 Apr 23 00:54 Smartydrwxrwxrwx 4 root root 4096 Apr 22 13:37 support[root@c0cbb7297058 htdocs]# chmod -R 777 /usr/local/apache2/htdocs/ (再重新递归地给一次权限777)找PHP的配置文件(上文中曾经从PHP的源码安装包里拷贝过)[root@c0cbb7297058 local]# find . -name php.ini./php4/php.ini[root@c0cbb7297058 php4]# lltotal 88drwxr-xr-x 2 root root 4096 Apr 22 08:15 bindrwxr-xr-x 2 root root 4096 Apr 22 08:15 etcdrwxr-xr-x 3 root root 4096 Apr 22 08:15 includedrwxr-xr-x 3 root root 4096 Apr 22 08:15 libdrwxr-xr-x 3 root root 4096 Apr 22 08:15 php-rwxr-xr-x 1 root root 69236 Apr 22 08:41 php.ini[root@c0cbb7297058 php4]# vi php.ini(修改下面3行DEFAULT VALIAL)"display_errors on"display_startup_errors Onerror_reporting = E_ALL",
修改/usr/web2009-1.20/Wafgen/unix目录下的所有rc文件,修改DOCROOT和SIMULTANEOUS_SESSIONS即可,SIMULTANEOUS_SESSIONS应当大于Test.config中的值
[root@c0cbb7297058 unix]# lltotal 40-rwxrwxr-x 1 root root 5636 Apr 20 08:10 bank_image_props.rc-rwxrwxr-x 1 root root 3562 Apr 20 08:10 bank_usercheck_props.rc-rwxrwxr-x 1 root root 11883 Apr 20 08:10 ecommerce_image_props.rc-rwxrwxr-x 1 root root 3421 Apr 20 08:10 ecommerce_productline_props.rc-rwxrwxr-x 1 root root 3925 Apr 20 08:10 support_downloads_props.rc-rwxrwxr-x 1 root root 4447 Apr 20 08:10 support_image_props.rc[root@c0cbb7297058 unix]# vi bank_image_props.rc (SIMULTANEOUS_SESSIONS=1不能更改)[root@c0cbb7297058 unix]# vi bank_usercheck_props.rc[root@c0cbb7297058 unix]# vi ecommerce_image_props.rc (SIMULTANEOUS_SESSIONS=1不能更改)[root@c0cbb7297058 unix]# vi ecommerce_productline_props.rc[root@c0cbb7297058 unix]# vi support_downloads_props.rc[root@c0cbb7297058 unix]# vi support_image_props.rc (SIMULTANEOUS_SESSIONS=1不能更改)这6个文件中,只允许更改SECTION A部分。更改这两项:均在section A部分来改DOCROOT=/usr/local/apache2/htdocs/SIMULTANEOUS_SESSIONS=合适值(1600)
需要修改Wafgen.sh中java命令路径
/usr/java/jdk1.8.0_40/jre/bin/java
[root@c0cbb7297058 Wafgen]# vi Wafgen.sh#!/bin/sh# Copyright (c) 2010 Standard Performance Evaluation Corporation (SPEC)# All rights reserved.## This source code is provided as is, without any express or implied warranty.#JAVA=/usr/java/jre6/bin/java 这一行改为:JAVA=/usr/java/jdk1.8.0_40/jre/bin/java$JAVA -version$JAVA -Xms384m -Xmx384m -classpath bin/specweb2009.jar:bin/check.jar org/spec/wafgen/Wafgen $1
重新生成测试数据
[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/bank_image_props.rcjava version "1.8.0_40"Java(TM) SE Runtime Environment (build 1.8.0_40-b26)Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)Start: Thu Apr 23 02:13:58 UTC 2015End: Thu Apr 23 02:13:58 UTC 2015[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/bank_usercheck_props.rc[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/ecommerce_image_props.rc[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/ecommerce_productline_props.rc[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/support_downloads_props.rc[root@c0cbb7297058 Wafgen]# ./Wafgen.sh unix/support_image_props.rc
查看一下生成的文件有多大:
[root@8458b360c9a0 htdocs]# du -h --max-depth=1 ./*0 ./bank/templates_c84K ./bank/templates356K ./bank/dynamic_padding19G ./bank/images19G ./bank0 ./ecommerce/templates_c52K ./ecommerce/templates812K ./ecommerce/dynamic_padding4.8G ./ecommerce/images4.8G ./ecommerce4.0K ./index.html4.0K ./phpinfo.php96K ./Smarty/internals228K ./Smarty/plugins500K ./Smarty0 ./support/templates_c32K ./support/templates26G ./support/downloads360K ./support/dynamic_padding136K ./support/images26G ./support
(1)在besim 服务器 /usr/local/apache2/htdocs/ 目录下新建 a.txt(2)webserver上把 test.php 文件放到 support 下,test.php 代码如下:<?phpinclude_once('/usr/local/apache2/htdocs/Smarty/Smarty.class.php');$smarty = new Smarty();$smarty -> template_dir = "./templates";$smarty -> compile_dir = "./templates_c";$smarty -> left_delimiter = "<{";$smarty -> right_delimiter = "}>";if(!$fp = fopen('http://172.17.0.6',':80','/a.txt','r')) (这里的ip和端口是besim的,我用的容器局域网的ip)$smarty -> assgin('test','open remote web server fail');else$smarty -> assgin('test','open remote web server ok');$smarty -> display('test.html');?>(3)新建 test.html 并放在 supports/templates/ 目录下代码如下<html> <head> </head><body><{$test}></body></html>(4) 如果显示”open remote web server ok”代表成功配置web server
!容器默认10G存储的限制!
将apache2目录下的htdocs文件夹全部备份到/usr/aaa(本机/home/amy/spec的挂载点)
[root@c0cbb7297058 ~]# tar -zpcv -f /usr/aaa/apache2_htdocs.tar.gz /usr/local/apache2/htdocs
tar命令备份参数
-c 新建打包文件,可搭配-v 来查看过程中被打包的文件名
-z 通过gzip的支持进行压缩、解压缩,此时文件名最好为*.tar.gz
-v 在压缩/解压缩过程中,将正在处理的文件名显示出来
-p 保留备份数据的原始权限与属性,常用于备份(-c)重要的配置文件。
-f filename;后面接的被处理的文件名。建议-f 单独写一个参数
[root@localhost ~]# sudo docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEwebser_done latest ba87b9adeb42 3 hours ago 1.462 GBbesim_done latest 9061dbe58d8e 3 days ago 1.056 GBtpcw1.0 2 807a4251848d 2 weeks ago 3.558 GBcsphere/csphere 0.9.1 111b2802d2fc 5 weeks ago 61.78 MBcsphere/csphere latest 111b2802d2fc 5 weeks ago 61.78 MBurelx/centos6-epel latest 7871f0e862fd 9 weeks ago 228.1 MB
详述及docker run用法: