虚拟主机,php,jsp环境配置
<?php
phpinfo();
?> 正常显示
就是开头<?这后面一定要加上php,否则无法正常执行
因为前面那个<??>是短标签的的模式,你肯定是没有打开短标签模式,所以才不能正常显示,
你可以在php,ini中找到short_open_tag,然后把他的值改成on就可以了
首先是 lmap
几个必要的包
perl-DBI
perl-DBD-MYSQL
mysql-
mysql-server
mysql-devel
php-
php-common
php-pdo
php-cli
php-mysql
然后修改httpd.conf
添加
Loadmodule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php3 .phtml.html
AddType application/x-httpd-php-source .phps
Directory index.html 后添加 index.php
建立PHP测试文件
vim /var/www/html/index.php
输入:
<?php
phpinfo ()
?>
//////接下来是jsp,jsp如果没配置错误,是不会影响到php的,
必须安装的几个包
yum install mod_ssl
下载jkd安装
tomcat-connectors- /////////编译后会产生 mod_jk.so 模块
apache-tomcat /////tomcat 主程序。解压缩就可以用。解压缩并改名/usr/tomcat
然后配置环境变量,jkd默认安装在/usr/java/jdk1.XXX
vim /etc/profile///添加以下内容 书中将 classpath=后面的变量都用{}括起来了
JAVA_HOME=/usr/java/jdk1.7.0
CATALINA_HOME=/usr/tomcat ////tomcat 主程序目录
CATALINA_BASE=/usr/tomcat ////这个是tomcat实例目录,一个台服务器上可以运行多个实例
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib/:$CATALINA_HOME/lib
export JAVA_HOME CATALINA_HOME CATALINA_BASE CLASSPATH
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
source /etc/profile
编译tomcat-connectors
cd native
./configure --with-java-home/usr/java/jkd1.7.0 --with-apxs=/usr/sbin/apxs
make
cp ./apache-2.0/mod_jk.so /etc/httpd/modules/
建立 mod_jk.conf文件
Include mod_jk.conf
注意在httpd.conf 不要有servername 这一条
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkMount /*.jsp h3c
JkMount /*/servlet/* h3c
AddType application/x-jsp .jsp
建立 workers.properties文件:
ps=\ 注意此处是反斜杠 注意此处是反斜杠注意此处是反斜杠注意此处是反斜杠注意此处是反斜
worker.list=h3c
worker.h3c.port=8009
worker.h3c.host=localhost
worker.h3c.type=ajp13
worker.h3c.lbbfactor=1
以上文字最好手动输入
修改 /usr/tomcat/conf/server.xml
在<Host >字段内加入
<Context path="" docBase="/var/www/h4c" debug="0" reloadable="ture" crossContext="ture" />
当遇到mod_jk.c (3033): missing uri map错误时,通常是在httpd.conf中配置了虚拟主机,那么应该在每一个VirtualHost部分加入JkMountCopy On。如果拥有很多虚拟主机配置段,可以使用在全部配置中写入JkMountCopy All。
关于https
安装 mod_ssl
当然可以!HTTP和HTTPS使用的是不同的服务端口(HTTP位于80端口,而HTTPS位于443端口),所以它们之间并没有什么直接的冲突。你既可以在这两个端口上分别运行两个Apache实例,也可以在同一个Apache实例上配置两个虚拟主机:一个在80端口应答HTTP请求,另一个在443端口应答HTTPS请求。
在httpd.conf 不要添加listen 443
openssl genrsa -out server.key 1024 ////创建一个私钥
openssl req -new -key server.key -out server.csr ///创建公钥请求
将你的证书签发请求(CSR)发送给一个认证中心(CA)等待被签名。一旦CSR被CA签名之后,你将收到一个真正的证书(Certificate),一般自己使用就没必要让权威机构签名,可以自己成为CA
使用这个RSA私钥创建一个证书签发请求(CSR)(这里的例子将封装为PEM格式):
请务必确信在OpenSSL提示你输入"CommonName"时,你输入的是正确的全限定域名(FQDN,Fully Qualified Domain Name)。举例来说,如果你想为一个将来要通过https://www.foo.dom/访问的站点生成CSR,那么你就必须在这里输入"www.foo.dom"。具体:
openssl genrsa -out www.h3c.com.key 1024
openssl req -new -key www.h3c.com.key -out www.h3ccom.csr
openssl x509 -req -days 365 -in www.h3c.com.csr -signkey www.h3c.com.key -out www.h3c.com.crt
apache 默认创建了一个密钥和证书在/etc/httpd/conf.d/ssl.conf中可以看到路径
虚拟机只能基于端口的https,不能基于域名
SSLEngine on ////开启ssl
SSLCertificateKeyFile /etc/httpd/conf/www.h3.com.key
SSLCertificateFile /etc/httpd/conf/www.h3.com.crt