2018年5月

如果没配置URL重写规则的情况下,每次访问都要加上index.php,看起来是没这么美观和方便的。
例如:http://test.ll00.cn/index.php/index/test/hello
本文主要记录Apache、Nginx和IIS配置。

Apache配置

站点配置:

<VirtualHost *:80>
    # 将PHP可以访问的文件限制到指定的目录树(http://php.net/manual/zh/ini.core.php#ini.open-basedir)
    # 配置这个主要是有些环境默认把open_basedir设置为DocumentRoot,导致thinkphp无法正常使用
    # 不是所有环境都这样,所有看情况配置
    php_admin_value open_basedir "/home/wwwroot/www.ll00.cn:/tmp/:/var/tmp/:/proc/"
    DocumentRoot "/home/wwwroot/www.ll00.cn/public"
    ServerName www.ll00.cn
    <Directory "/home/wwwroot/www.ll00.cn">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
    </Directory>
</VirtualHost>

.htaccess配置:

需要Apache加载mod_rewrite.so模块,并且将AllowOverride配置项设置为All,例如AllowOverride All
框架安装后,默认提供一个.htaccess文件,里面就写好了重写规则,一般都是安装即用。
可以说,Apache是对thinkphp框架支持最好的了!

<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>

Nginx

站点配置

server
{
    listen 80;
    server_name www.ll00.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    # 站点目录
    root /www/wwwroot/www.ll00.cn/public;
    
    # URL重写规则
    location / {
        if (!-e $request_filename){
            rewrite  ^(.*)$  /index.php?s=$1  last;   break;
        }
    }
}

IIS

IIS这个了解不大多,只是简单的尝试了下,后面坑太多,放弃了。

web.Config文件配置:

在IIS的高版本下面可以配置下面的URL重写规则,如果不行,再试试其它方式。
主要是rewrite节点的配置,如果配置文件已有其它配置,将rewrite节点的配置放在system.webServer内的最后面即可。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="OrgPage" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="^(.*)$" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

https://www.iis.net/downloads/microsoft/url-rewrite

下载

可以在 github 进行下载,作者目前已将代码放到 github 进行托管。
https://github.com/Wind4/vlmcsd/releases

支持的命令

# /usr/local/vlmcsd/vlmcsd -h
vlmcsd 1113, built 2020-03-28 17:20:35 UTC

Usage:
   ./vlmcsd [ options ]

Where:
  -u <user>             设置 uid 为 <user>
  -g <group>            设置 gid 为 <group>
  -a <csvlk>=<epid>     对 <csvlk> 使用 <epid>
  -r 0|1|2              设置 ePID 随机化级别 (默认为 1)
  -C <LCID>             在随机 ePID 中使用固定的 <LCID>
  -H <build>            在随机 ePID 中使用固定的 <build> 号
  -o 0|1|2|3            设置针对公网IP客户端的保护级别(默认为 0)
  -x <level>            如果达到 <level> 警告级别则退出(默认为 0)
  -L <address>[:<port>] 监听 <address> IP 地址,及可选的 <port> 端口选项
  -P <port>             监听 <port> TCP 端口,-L 的延伸选项 (默认为 1688)
  -F0, -F1              禁用/启用 绑定到外部IP地址 
  -m <clients>          最大同时处理 <clients> 个客户端(默认不限制)
  -e                    记录日志到 stdout
  -D                    在前台运行
  -K 0|1|2|3            设置 KMS ID 白名单级别(默认为 -K0)
  -c0, -c1              禁用/启用 客户端时间检查(默认为 -c0)
  -M0, -M1              禁用/启用 维护客户端(默认为 -M0)
  -E0, -E1              禁用/启用 以空客户端列表启动 (默认为 -E0, 如果设置了 -M0 则忽略)
  -t <seconds>          disconnect clients after <seconds> of inactivity (默认为 30)
  -d                    每次请求后断开客户端连接
  -k                    每次请求后不断开客户端连接(默认)
  -N0, -N1              disable/enable NDR64
  -B0, -B1              禁用/启用 绑定时间功能协商
  -p <file>             写入 pid 到 <file>
  -i <file>             使用 <file> 配置文件
  -j <file>             use KMS data file <file>
  -R <interval>         renew activation every <interval> (默认为 1w)
  -A <interval>         retry activation every <interval> (默认为 2h)
  -l syslog             记录日志到系统日志 syslog
  -l <file>             记录日志到文件 <file>
  -T0, -T1              禁用/启用 带有时间和日期的日志记录(默认为 -T1)
  -v                    记录详细日志
  -q                    不记录详细日志 (默认)
  -V                    显示版本信息并退出 

vlmcs是用于检测KMS服务器
vlmcsd是用于搭建KMS服务器
vlmcsdmulti是上面两者的综合

glibc

GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。 其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。

uclibc

uClibc 一个小型的C语言标准库,主要用于嵌入式。 其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。 对应的,此处的u意思是μ,Micro,微小的意思。 uClibc的特点: (1)uClibc比glibc要小很多。 (2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。

musl

Musl是一个轻量级的C标准库,设计作为GNU C library (glibc)、 uClibc或Android Bionic的替代用于嵌入式操作系统和移动设备。它遵循POSIX 2008规格和 C99 标准,采用MIT许可证授权,使用Musl的Linux发行版和项目包括sabotage,bootstrap-linux,LightCube OS等等。

日期类

YYYY-MM-DD 2018-05-09

/^\d{4}-\d{2}-\d{2}$/

手机电话类

手机号码 13800138000

/^1(3[0-9]|4[579]|5[012356789]|7[01235678]|8[0-9])\d{8}$/

其它

姓名 张三

中国的姓名长度已知为2至15个汉字
/^[\u4e00-\u9fa5]{2,15}$/