Apache2.4配置ThinkPHP6

Step1 找到Apache的httpd.conf文件, 输入如下代码

<VirtualHost *:80>
    # 以上改为你使用的端口, 与httpd.conf中listen的端口一致
    ServerName www.doamin.com
    # 以上改为你的域名
    DocumentRoot "c:/project/web_1/public"
    # 以上改为你的ThinkPHP项目里的public文件夹
    DirectoryIndex index.html index.php

    CustomLog "c:/inetpub/web_1.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) url=%U%q"
    # 以上为存放日志文件的位置
    <Directory "c:/project/web_1/public">
    # 以上改为你的ThinkPHP项目里的public文件夹
        Options -Indexes +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Step2 在httpd.conf里搜索mod_rewrite, 看下面这行前面是否有#注释

LoadModule rewrite_module modules/mod_rewrite.so

如果前面有#号, 就去掉

然后保存

Step3 在ThinkPHP项目中编辑这个文件 /public/.htaccess, 使其内容如下

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

Step4 重启Apache, 命令可能是

httpd -k restart

Step5 将你的域名指向你的服务器的IP

然后你可以这样访问你的项目

http://www.doamin.com:80

以上, 曾实例化于Apache 2.4.46 + Windows Server 2008 R2 + PHP7.4

IIS7.5转发至Apache, 共用80端口

一些情况下, 我们需要同时使用IIS和Apache, 那么需要满足以下条件

同时启动IIS和Apache 且

(用Apache代理IIS

用IIS代理Apache)

本文介绍用IIS代理Apache的方法

Step1 配置Apache和域名, 且使用非80端口, 使得以如下uri可以访问到你的网站

http://www.domain.com:81

Step2 为IIS正确安装”URL重写”重写模块(已安装则略过)

这个模块某些版本有bug, 在Windows Server 2008 R2+IIS7.5环境下, 可使用这个.

Step3 安装Application Request Routing(已安装则略过)

网址: https://www.iis.net/downloads/microsoft/application-request-routing

Step4 打开IIS管理器

->点击 Application Request Routing Cache

-> 点击 Server Proxy Settings

-> 勾选 Enable Proxy

-> 应用, 如下图

Step5 新建IIS站点, 并为其绑定你要用的域名, 以及80端口, 目录随便指向一个目录即可, 如下图

为什么要新建站点?

在IIS全站设置URL转发, 也可以实现IIS代理Apache;

但是IIS代理Apache是要损耗一定性能的.

在全站设置会影响到服务器上其他IIS网站

Step6 在该”转发站”里点”URL重写”, 并添加空白规则, 如下图

Step7 在”入站规则”里如下图这么写

如此用来实现将 www.domain.com的80端口指向由Apache管理的81端口

以上, 曾实例化于Windows Server 2008 R2 + IIS7.5

让Apache记录每个访问的运行时间

在httpd.conf的<Virtual Host>节点里, 加入如下语句

CustomLog "c:/apache_log.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) 

url=%U%q"

然后c:/apache_log.log就是你的日志文件, 里面的内容像下面

[124.64.19.29]2020-11-30 16:37:20 id=- time=19532(us) url=/index.php?m=poster&c=index&a=show_poster&id=1

时间单位应该是微妙

这也适用于Linux