[TOC=2]
## 环境最低要求
> PHP >= 5.4.0(注意:PHP5.4dev版本和PHP6均不支持)
PDO PHP Extension
MBstring PHP Extension
CURL PHP Extension
开启URL重写
支持pathinfo
若使用微信模块,则要求PHP版本 >=5.5.9
## Linux + Apache平台相关环境配置
我这里使用的是[LNMP](https://lnmp.org)集成环境(不过安装时使用的是Apache而不是Nginx),这个集成环境的[安装方法看这里](https://lnmp.org/install.html)
### 添加一个虚拟主机
按照[此贴](https://lnmp.org/faq/lnmp-vhost-add-howto.html)添加一个虚拟主机,设置的访问域名用 `www.yfcmf.com`,本手册以后的演示都使用这个测试地址。
然后修改`hosts`,在里面添加一条记录(其中`IP`地址改成自己`yfcmf`系统所运行的服务器地址)
`127.0.0.1 www.yfcmf.com`
### 开启伪静态
打开Apache配置文件`>vi /usr/local/apache/conf/httpd.conf`
找到`#LoadModule rewrite_module modules/mod_rewrite.so`这一行,去掉前面的`#`井号并保存,然后重启Apache。
![](https://box.kancloud.cn/67b6d6db05d5464b423c4473ff23a0da_465x243.png)
查看网站根目录下是否有一个`.htaccess`的文件(windows和linux系统一般都有,但`macOS`系统上有可能会弄丢),如果没有,就自己建一个,内容为:
~~~
<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>
~~~
### pathinfo
`yfcmf`系统还需要`pathinfo`支持,但`Apache`好像默认就支持的,那咱们就不管了,直接用。
## Linux + Nginx平台相关环境配置
我这里使用的是[LNMP](https://lnmp.org)集成环境,这个集成环境的[安装方法看这里](https://lnmp.org/install.html)
### 添加一个虚拟主机
按照[此贴](https://lnmp.org/faq/lnmp-vhost-add-howto.html)添加一个虚拟主机,设置的访问域名用 `www.yfcmf.com`,本手册以后的演示都使用这个测试地址。
然后修改`hosts`,在里面添加一条记录(其中`IP`地址改成自己`yfcmf`系统所运行的服务器地址)
`127.0.0.1 www.yfcmf.com`
### 开启伪静态
也许你在上面添加虚拟机时已经添加了伪静态规则,但`LNMP`集成环境自带的一些伪静态规则都不适合我们,我们得自己改一下配置文件,输入命令
`>vi /usr/local/nginx/conf/vhost/www.yfcmf.com.conf`
编辑配置,在里面找到`include other.conf;`这句话(如果有的话,没有就算了),把它替换成下面这段配置:
~~~
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
~~~
### pathinfo
`yfcmf`系统还需要`pathinfo`支持,同样是修改上面那个配置文件,找到`include enable-php.conf;`这句话,把它改成`include enable-php-pathinfo.conf;`,最终两个主要的地方修改如下图:
![](https://box.kancloud.cn/98484e8dba8989f62c5c48f624dd7426_675x424.png)
### 重启Nginx
`>/etc/init.d/nginx restart`
## YFCMF系统安装
从 osc@git 上下载源码到刚才创建的虚拟主机里:[http://git.oschina.net/rainfer/YFCMF](http://git.oschina.net/rainfer/YFCMF)
![](https://box.kancloud.cn/0b9bfe65062c90da14242e57142a3125_503x343.png)
1. 访问`www.yfcmf.com`即可看到一个安装引导界面,点`接受`
![](https://box.kancloud.cn/efd98112db52c6fa3911fcbf145ee523_860x655.png)
2. 下面是检测环境界面,如果环境都没问题,就点`下一步`
![](https://box.kancloud.cn/c1615234a88d414fdd5e169b48d35c8a_836x698.png)
3. 下面是数据及网站基础配置信息的填写,填写好后点`创建数据`
![](https://box.kancloud.cn/06532c3a9b27dbcd83d906754b049a57_827x984.png)
4. 看到下面界面所说明安装成功了
![](https://box.kancloud.cn/3e32519f2bfad0994cbe336b9d917788_831x344.png)
5. 点击`进入后台`,输入账号密码验证码开始`yfcmf`之旅。
## 添加 ThinkPHP5 命令行工具入口文件
由于`yfcmf`作者平时是在win上开发的(猜的),所以他干掉了 ThinkPHP5 的命令行工具入口文件,但这东西有大用处,我们去把它补上。
在网站根目录新建一个名为`think`的文件,不要后缀了,和 ThinkPHP5 原版保持一致的命名,然后内容填入下面代码:
~~~
#!/usr/bin/env php
<?php
// 定义项目路径
define('APP_PATH', __DIR__ . '/app/');
// 定义运行时目录
define('RUNTIME_PATH', __DIR__ .'/data/runtime/');
// 加载框架引导文件
require './thinkphp/console.php';
~~~
> 如果你之前从[TP5官方git库](https://github.com/top-think/think)里复制过这个文件到`yfcmf`系统里,一定记得修改定义项目路径的`application`为`app`,并且添加这句代码`define('RUNTIME_PATH', __DIR__ .'/data/runtime/');`,否则很多功能是无法正常使用的。
在网站根目录执行`>php think`命令显示下图所示内容说明成功了
![](https://box.kancloud.cn/9ed57e7488174bd1993110be774062e5_643x486.png)
## 其他问题
### PHP exif 模块
`LNMP`集成环境没有默认安装PHP的`exif`模块,如果你的使用了`ThinkPHP5`框架的文件上传功能,请[参照此贴](https://www.vpser.net/manage/lnmp-php-install-ext.html)安装`exif`模块。