标签 Apache 下的文章

因为网上较多教程是Apache+Tomcat的配置方案,但是我经常要处理php项目,所以简单根据原教程加了PHP支持,使其可以同时支持PHP和JSP程序

Apache、Tomcat和PHP就不过多介绍了,直接进入正文

安装包下载

Apache 2.4:http://httpd.apache.org/download.cgi

Tomcat 8.0:http://tomcat.apache.org/download-80.cgi#8.0.38

JDK 8 :http://www.oracle.com/technetwork/java/javase/downloads/index.html

PHP :http://windows.php.net/qa

mod_jk.mo 连接包:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

Apache、Tomcat、JDK、PHP的版本的版本自行选择搭配,配置的时候注意一下路径即可,重点是mod_jk.mo要根据Apache选择对版本。

我的搭配方案是:Win7 x64 + Apache2.4 + Tomcat8.0 + JDK8 U5 + PHP5.5beta

mod_jk.mo我选择的是:tomcat-connectors-1.2.36-windows-x86_64-httpd-2.4.x

安装JDK

下载好jdk后,双击安装即可,注意安装目录,如果C盘足够,就丢C盘省事儿吧

安装完成JDK之后,需要设置环境变量。

打开 “我的电脑(右击) --> 属性 --> 高级系统设置 --> 环境变量”,增加以下配置 :

JAVA_HOME      F:\Program Files\Java\jdk1.8.0_05  ##写入JDK安装的路径
PATH           ;%JAVA_HOME%\bin  ##在Path原有值上加入此值
CLASSPATH      ;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar  ##在classpath的原有值上加入此值

安装Apache

安装过程自行百度吧,建议下载的时候下载压缩包,不要 下载exe安装包

安装之后,打开apache安装目录/conf,编辑httpd.conf

Listen 80  ##端口,建议修改,参考:8000
...
DocumentRoot "F:\webapp"  ##网站目录
...
Directory "F:\webapp"  ##网站目录
...
DirectoryIndex index.html index.jsp index.php index.htm  ##入口文件

完成配置后,启动Apache,在 "F:\webapp" 添加静态页面 index.html。

最后打开 http://127.0.0.1:端口/index.html 测试 Apache能否正常运行。

安装Tomcat

运行Tomcat安装包,安装完成后,添加环境变量

打开 “我的电脑(右击) --> 属性 --> 高级系统设置 --> 环境变量”,增加以下配置 :

TOMCAT_HOME      F:\Program Files\Apache Software Foundation\Tomcat 8.0
PATH             ;%TOMCAT_HOME%\lib;%TOMCAT_HOME%\lib\servlet-api.jar;%TOMCAT_HOME%\lib\jsp-api.jar
一定要注意PATH的添加,是使用英文分号隔开不同的变量的。

Tomcat 默认使用8080端口处理HTTP请求。

完成设置后,输入地址http://127.0.0.1:8080 就可看到 Tomcat 的管理页面。

整合 Apache+Tomcat

在 Apache、Tomcat 都能正常运行的情况下,把 mod_jk.mo 拷贝到 "/Apache安装目录/modules"

在 “/Tomcat安装目录/conf ” 文件夹下增加 workers.properties 文件,输入以下内容:

workers.tomcat_home="F:\Program Files\Apache Software Foundation\Tomcat 8.0\"

#workers.java_home="F:\Program Files\Java\jdk1.8.0_05\"
#让mod_jk模块知道jdk路径

workers.java_home="C:\Program Files\Java\jre1.8.0_101\"
#让mod_jk模块知道jre路径

ps=\
#当前目录

worker.list=ajp13
#这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。

worker.ajp13.port=8009
#工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009"

worker.ajp13.host=localhost
#Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP

worker.ajp13.type=ajp13
#协议类型,不能改变,会出问题

worker.ajp13.lbfactor=1
#负载平衡因子

注意修改路径,一定要注意worker.list的值,可以自定义,但是修改的话httpd.conf里也要修改

然后来修改Apache的配置文件httpd.conf

在结尾添加下面代码,注意根据你的路径修改一下:

#加载JK模块
LoadModule jk_module "F:/www/Apache24/modules/mod_jk.so"

#指定先前配置的worker文件
JkWorkersFile "F:/Program Files/Apache Software Foundation/Tomcat 8.0/conf/workers.properties"

#日志文件
JkLogFile "F:/www/Apache24/logs/mod_jk.log"

#添加java支持
JkMount /*WEB-INF ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.do ajp13
JkMount /*.action ajp13
JkMount /Javenmy/* ajp13

重启Apache,把Tomcat目录下\webapps\ROOT里的文件全部复制一份放到 F:\webapp 目录里

访问你的apache地址(我的apache端口是8000):http://127.0.0.1:8000

基本上时大功告成了,但是我们还没有PHP支持呢

安装PHP并整合到Apache+Tomcat环境内

版本号可以自行选择,安装成功后,修改Apache的httpd.conf

在结尾增加php支持,代码如下(注意修改目录):

# php5 support
LoadModule php5_module "F:/www/php-5.5.0beta2/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "F:/www/php-5.5.0beta2"

保存配置文件,重启Apache,放一个php文件到 F:\webapp 目录

访问你的apache地址(我的apache端口是8000)

同时访问:http://127.0.0.1:8000/index.phphttp://127.0.0.1:8000/index.jsp

注意地址栏的访问文件,如上图就代表成功了。

参考文章:http://www.cnblogs.com/leslies2/archive/2012/07/23/2603617.html

首先推荐安装 lamp.sh 的LAMP一键包,简单方便,安装也很快。

单个站点配置SSL可以 参考这里

其实多站点SSL跟单个站点SSL差不多。

1、安装openssl,命令如下:

yum install -y openssl openssl-devel   #CentOS 下

apt-get install -y openssl   #Debian 或 Ubuntu 下

2、申请SSL证书

市面上免费的SSL还是比较多的,但是不建议wosign和startssl,我使用的是腾讯云的免费SSL,申请后会获得一个csr文件和一个key文件

付费的则五花八门了,这里就不再赘述。

申请过程省略。

3、部署证书

在 /usr/local/apache/conf 路径下新建一个 “ssl” 目录,把你的证书全部上传到这个ssl目录下。

进入 /usr/local/apache/conf/vhost 找到你网站的配置文件,比如 fiyfile.com.conf

编辑成如下格式:

<VirtualHost *:80>
ServerName fiyfile.com
ServerAlias fiyfile.com www.fiyfile.com
DocumentRoot /data/www/fiyfile.com
DirectoryIndex index.php index.html index.htm
<Directory /data/www/fiyfile.com>
Options +Includes -Indexes
AllowOverride All
Order Deny,Allow
Require all granted
php_admin_value open_basedir /data/www/fiyfile.com:/tmp:/proc
</Directory>
ErrorLog  /data/wwwlog/fiyfile.com/error.log
TransferLog  /data/wwwlog/fiyfile.com/access.log
</VirtualHost>

Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache  "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost *:443>
DocumentRoot /data/www/fiyfile.com
ServerName fiyfile.com
ServerAlias www.fiyfile.com

SSLEngine on
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

SSLCertificateFile /usr/local/apache/conf/ssl/fiyfile.com.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl/fiyfile.com.key


BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

<Directory /data/www/fiyfile.com>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
</VirtualHost>

保存后,重启 Apache

多个站点的 SSL 都按照此方法配置即可,请确保证书路径正确。