zblog作为国内一款优秀的php开源系统(当然也是有asp的版本的,并且最初也是asp版的),堪称中国版的wordpress,国内市场广泛得到使用,其中最著名的也许就是大名鼎鼎的月光博客以及卢松松博客(哦……没错,都是博客……),学习研究和使用zblog很有必要。作为开篇以及起步,先来看一下zblog的目录结构(或者成为文件结构):

zblog系统文件结构

zb_install 安装文件夹
zb_system 系统文件夹
    admin 管理
    css 后台CSS
    defend 系统保留文档
    function 系统核心
    image 系统图片
    script 系统脚本
    xml-rpc xml-rpc组件
zb_users 用户文件夹
    avatar 头像缓存
    cache 缓存
    data 数据库
    emotion 表情图片
    include 引用文件
    language 语言
    plugin 插件
    theme 主题
    upload 上传
index.php 主页
search.php 搜索面
feed.php rss页

Yii2是一款非常优秀的php开发框架,足够出色,学习曲线并不是很高,适合高效率开发需求。本文仅以安装配置yii2高级版为例,记录说明使用composer安装配置yii2。
一、composer方式安装
php版本>=5.4
1.安装composer
下载Composer并安装.--环境变量设置
如果composer安装成功:
执行composer self-update命令更新Composer为最新版本,
然后进入你要安装yii的有效web目录(www目录下)

2.composer安装yii

基础版
composer create-project --prefer-dist yiisoft/yii2-app-basic yii
高级版
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii
注: yii是在www下新建yii目录,可根据需要自定
关联点 :输入github账户的Token
登录github.com ---settings---Personal access tokens---

3.进入当前安装目录,初始化 执行 init

4.配置数据库 common/config/main-local.php
执行 yii migrate
创建user、migration表

5.url和汉化
去掉index.php
形式: web/controller/action/params
.htaccess
Options +FollowSymLinks
IndexIgnore /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

otherwise forward it to index.php

RewriteRule . index.php
注:
上述htaccess要存放在frontend和backend的web下各一份,否则访问前台时候会跳到后台模块(根目录配置htaccess rewriterule. backend/web/index.php的情况下)
(这是为了隐藏 Index.php,apache必须要开启rewrite模块)

下面的urlManager配置在common/main.php

'components'=>[]中添加
'urlManager'=>[

        'enablePrettyUrl'=> true,
        'enableStrictParsing'=> false,//严格解析,要求当前请求至少匹配一个路由规则,否则判定为无效路由
        'showScriptName'=>false,//是否显示入口文件
        'suffix'=>'',//后缀自定义如.html
        'rules'=>[
            "<controller:\w+>/<id:\d+>"=>"<controller>/view",
            "<controller:\w+>/<action:\w+>/<id:\d+>"=>"<controller>/<action>",
            "<controller:\w+>/<action:\w+>"=>"<controller>/<action>"       
        ]
    ],

配置
'language'=>'zh-CN',
//'sourceLanguage'=>'zh-CN',
sourceLanguage 代表你的数据源语言标记
language 表示当前语言标记

6.admin、adminLTE
http://www.yiichina.com/tutorial/876
其中adminLTE生成权限数据表4张
cmd 到安装目录
安装adminLTE
composer require dmstr/yii2-adminlte-asset "2.*"
复制 vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app 到 backend/views/,需要覆盖的则覆盖
注:可理解为adminLTE只是模板

安装admin
项目目录下执行
composer require mdmsoft/yii2-admin "2.x-dev"

配置 backend/config/main.php 文件
"modules" => [

"admin" => [
    "class" => "mdm\admin\Module",
],

],
"aliases" => [

"@mdm/admin" => "@vendor/mdmsoft/yii2-admin",

],
'as access' => [

'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
    //这里是允许访问的action
    //controller/action
// * 表示允许所有,后期会介绍这个
    '*'
]

],
'components' => [

"authManager" => [
    "class" => 'yii\rbac\DbManager',
    "defaultRoles" => ["guest"],
],

],

7、导入 rbac 表格
执行.sql 文件:vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql/ ?
cmd如何执行?
console配置组件中添加
'authManager'=>[

        'class'=>'yii\rbac\DbManager',
        'itemTable'=>'{{%auth_item}}',
        'itemChildTable'=>'{{%auth_item_child}}',
        'assignmentTable'=>'{{%auth_assignment}}',
        'ruleTable'=>'{{%auth_rule}}',
        'defaultRoles'=>['default'],
    ],

php yii migrate --migrationPath=@yii/rbac/migrations
生成四张表如下:

8、
前台注册用户
运行 127.0.0.1/advanced/backend/web/admin/route 预览效果

9、关于gii
MVC功能模块开发
数据库字典设计,sql语句,生成tables
gii生成
model、controller、view基础模板
修改MVC细节优化

模型、控制器方法添加
对应views修改

其他:
安装时间控件
composer require kartik-v/yii2-widget-datetimepicker "*"(优先)

composer require kartik-v/yii2-widget-timepicker "*"

补充:
地区选择插件
composer require chenkby/yii2-region "dev-master"

'options' => ['class' => 'form-horizontal'],

  'fieldConfig' => [
      'template' => "<div class='col-xs-3 col-sm-2 text-right'>{label}</div><div class='col-xs-9 col-sm-7'>{input}</div><div class='col-xs-12 col-xs-offset-3 col-sm-3 col-sm-offset-0'>{error}</div>",

Echarts插件
composer require --prefer-dist daixianceng/yii2-echarts "*"
composer require daixianceng/yii2-echarts "*"
--prefer-dist 为了强制使用压缩包,而不是克隆源代码。
composer require bower-asset/echarts "*"

ueditor
composer require kucha/ueditor "*"

至此,yii2高级版安装和初始设置完毕,开始你的yii2高效开发旅程!

phpstudy作为一款优秀的php环境搭建工具,新版的phpstudy支持自定义php版本(只支持php5.3.0以后的任意版本),此次开发过程中需要安装php7.2,研究了一下,顺便总结下phpstudy安装自定义版本php的操作流程,总结如下。

安装过程

  • 1.下载php压缩包,例如本人使用win10,下载对应windows版本php的zip压缩包(本人选择32位) php下载 ,选择 VC15 x86 Non Thread Safe (2018-Aug-16 02:38:16) 也就是nts版本的(支持apache+nginx,没有nts的php只有apache支持)php下载
  • 2.phpstudy下: phpstudy安装目录下的php文件夹下新建文件夹php-7.2.9-nts,将压缩包解压到该文件夹下
    注意:目录一定要保留版本号及nts 信息。没有nts的php只有apache支持。有nts的版本apache、nginx都支持。
  • 3.重启phpstudy(建议退出之后,再次运行,本人直接点击重启后查看不到新安装的php版本)
    选择php版本

安装php7.2.9
查看PHPinfo

php7.2.9安装完成,其他版本的php安装流程同上,可根据需求自行参考安装。

typecho骨子里支持markdown,如此神器,为何不用,好用必须多用。
markdown与typecho气质相投,同样特性简单,极简主义的精神发挥到极致,因而,typecho默认支持和使用markdown,并不难理解。
学习使用markdown也是相当简单,多加练习,几乎大多数人都可以实现短期内纯熟自如的运用。
笔者一直使用的有道云笔记也是支持markdown的,其他,简书平台也是很好的选择。
或者,MarkDownPad也是一款足够优秀的用来使用markdown写作的好工具,

目前推荐MarkDownPad2

MarkDownPad下载

安装后可能会出现
请输入图片描述

html 渲染错误的问题:

MarkdownPad 的 FAQ 文档中给出了解决该问题的办法,可以按照文档采用操作。
详见:http://markdownpad.com/faq.html 页面中搜索 This view has crashed

windows 10系统 需要下载 一个 awesomium_v1.6.6_sdk_win 这是一个 HTML UI ENGINE

下载地址 http://markdownpad.com/download/awesomium_v1.6.6_sdk_win.exe

亲测下载安装后渲染正常;

目标:使用一台虚拟主机搭建多个网站
前提:虚拟主机支持开启伪静态,而且可以绑定多个域名(一般虚拟主机都支持)
思路:通过自定义.htaccess,实现不同域名访问不同站点目录
操作流程如下:
1.域名解析与绑定,虚拟主机一般情况下使用cname解析,将要创建站点的域名做好cname解析
2.根目录(站点存放目录,根据虚拟主机具体情况,一般是类似www/web/home之类的)创建.htaccess文件,
本文仅以域名test1.com对应站点目录test1,test2.com对应站点目录test2,test3.com对应站点目录test3为例;
根目录下.htaccess文件代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

test1.com

RewriteCond %{HTTP_HOST} ^(www.)?test1.com$ [NC]
RewriteCond %{REQUEST_URI} !^/test1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ test1/$1 [L,QSA]

没有输入文件名的默认到到首页

RewriteCond %{HTTP_HOST} ^(www.)?test1.com$ [NC]
RewriteRule ^(/)?$ test1/index.html

test2.com

RewriteCond %{HTTP_HOST} ^(www.)?test2.com$ [NC]
RewriteCond %{REQUEST_URI} !^/test2/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ test2/$1 [L,QSA]

没有输入文件名的默认到到首页

RewriteCond %{HTTP_HOST} ^(www.)?test2.com$ [NC]
RewriteRule ^(/)?$ test2/index.html

test3.com

RewriteCond %{HTTP_HOST} ^(www.)?test3.com$ [NC]
RewriteCond %{REQUEST_URI} !^/test3/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ test3/$1 [L,QSA]

没有输入文件名的默认到到首页

RewriteCond %{HTTP_HOST} ^(www.)?test3.com$ [NC]
RewriteRule ^(/)?$ test1/index.html

</IfModule>

3.站点目录下分别创建.htaccess文件,实现站点域名访问限制(例如:test1.com只能访问test1目录不能访问test2/test3目录)
.htaccess文件代码如下,textx仅作示范,对应目录下testx分别改为test1/test2/test3:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

只许绑定的域名访问

RewriteCond %{HTTP_HOST} !^(www.)?testx.com$ [NC]

RewriteRule (.*) testx/$1 [L,R=301]

</IfModule>

如上就是使用一台虚拟搭建多个网站的操作方法。