环境配置

PHP版本必须在5.5以上,包含5.5

如果需要用到数据库,则需要安装并启用mysqli扩展

php.ini配置中则需要把short_open_tag打开

/config/autoload.php 为自动加载配置类,必须具有写权限

/logs/ 目录为日志记录文件夹,也必须具有写权限

本例子中主要介绍linux下nginx的配置

nginx根目录需要指向/web/目录下,示例如下

  1. location / {
  2. root /data/billge/biny/web/; // 这里为框架/web目录的绝对路径
  3. index index.php index.html index.htm;
  4. try_files $uri $uri/ /index.php?$args;
  5. }

Apache 配置如下:

  1. # 设置文档根目录为框架/web目录
  2. DocumentRoot "/data/billge/biny/web/"
  3.  
  4. <Directory "/data/billge/biny/web/">
  5. RewriteEngine on
  6. # 如果请求的是真实存在的文件或目录,直接访问
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. # 如果请求的不是真实文件或目录,分发请求至 index.php
  10. RewriteRule . index.php
  11.  
  12. # 以下三行apache默认会有,如无法正常使用请自行添加
  13. # Options +Indexes +Includes +FollowSymLinks +MultiViews
  14. # AllowOverride All
  15. # Require local
  16.  
  17. # ...other settings...
  18. </Directory>

/web/index.php是程序的主入口,其中有几个关键配置

  1. //默认时区配置
  2. date_default_timezone_set('Asia/Shanghai');
  3. // 开启debug调试模式(会输出异常)
  4. defined('SYS_DEBUG') or define('SYS_DEBUG', true);
  5. // 开启Logger页面调试
  6. defined('SYS_CONSOLE') or define('SYS_CONSOLE', true);
  7. // dev pre pub 当前环境
  8. defined('SYS_ENV') or define('SYS_ENV', 'dev');
  9. // 系统维护中。。。
  10. defined('isMaintenance') or define('isMaintenance', false);

其中SYS_ENV的环境值也有bool型,方便判断使用

  1. // 在\lib\App.php 中配置
  2. // 测试环境
  3. defined('ENV_DEV') or define('ENV_DEV', SYS_ENV === 'dev');
  4. // 预发布环境
  5. defined('ENV_PRE') or define('ENV_PRE', SYS_ENV === 'pre');
  6. // 线上正式环境
  7. defined('ENV_PUB') or define('ENV_PUB', SYS_ENV === 'pub');