技术圈开发者交流群:

Hyper-v安装Server 2016 教程

Hyper-v安装Server 2016


windows10 开启hyper-v功能

  • 开始菜单 - windows系统 - 控制面板 - 程序 - 启用和关闭Windows功能 - 勾选“Hyper-V” - 确定 

打开hyper-v

  • 开始菜单 - windows管理工具 - hyper-V管理器

安装Server2016

接下来我就不多说了,和安装windows10差不多的步骤

如需要激活请参考 http://www.aiweibk.com/5315.html


windows 2017年08月27日 46892

PHP批量检查并清除bom头

Cannot send session cache limiter - headers already sent (output started at...) on line ...

在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)

<?php
if (isset($_GET['dir'])) {
    // config the basedir
    $basedir = $_GET['dir'];
} else {
    $basedir = '.';
}

$auto = 1;

checkdir($basedir);
function checkdir($basedir)
{
    if ($dh = opendir($basedir)) {
        while (($file = readdir($dh)) !== false) {
            if ($file != '.' && $file != '..') {
                if (!is_dir($basedir . "/" . $file)) {
                    // 如果是文件
                    echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " 
";
                } else {
                    $dirname = $basedir . "/" . $file; // 如果是目录
                    checkdir($dirname); // 递归
                }
            }
        }
        closedir($dh);
    }
}
function checkBOM($filename)
{
    global $auto;
    $contents   = file_get_contents($filename);
    $charset[1] = substr($contents, 0, 1);
    $charset[2] = substr($contents, 1, 1);
    $charset[3] = substr($contents, 2, 1);
    if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
        // BOM
        // 的前三个字符的ASCII
        // 码分别为
        // 239
        // 187
        // 191
        if ($auto == 1) {
            $rest = substr($contents, 3);
            rewrite($filename, $rest);
            return ("");
        } else {
            return ("");
        }
    } else {
        return ("BOM Not Found.");
    }

}
function rewrite($filename, $data)
{
    $filenum = fopen($filename, "w");
    flock($filenum, LOCK_EX);
    fwrite($filenum, $data);
    fclose($filenum);
}


PHP 2017年08月26日 20014

LINUX计划任务管理_AT与crontab

at命令

一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式:at  [HH:MM]  [yyyy-mm-dd] 

[root@localhost ~]# date
2011年 02月 21日 星期一 14:45:05 CST
[root@localhost ~]# at 14:55 2011-02-21
at> pgrep -U root | wc -l > /tmp/ps.root
at>
job 1 at 2011-02-21 14:55 
[root@localhost ~]# cat /tmp/ps.root
63

案例

在当天的21:30时自动关闭当前系统

root@localhost ~]# at 21:30
at> shutdown -h now
at>
job 7 at 2011-02-21 21:30

查看未执行任务列表

[root@localhost ~]# atq
1       2011-02-21 14:55 a root
2       2011-02-21 21:30 a root

删除第二条任务

[root@localhost ~]# atrm 2
[root@localhost ~]# atq
1       2011-02-21 14:55 a root

at计划任务 所在目录/var/spool/at

at的控制文件/etc/at.allow和 /etc/at.deny 

===================================================================================

crontab命令

按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务 

启用周期性任务有一个前提条件,即对应的系统服务crond必须已经运行

全局配置和系统默认配置中的内容一般不需要用户去修改,用户只需设置/var/spool/cron/目录下与本帐号同名的文件即可,接下来介绍如何设置用户自己的计划任务

[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]

查看计划任务:crontab  -l  [-u  用户名]

删除计划任务:crontab  -r  [-u  用户名]

 

用户只需执行“crontab -e”命令后会自动调用文本编辑器(默认为vi)并打开“/var/spool/cron/用户名”文件,无需手动指定文件位置

image.png

  • 时间数值的特殊表示方法

    • *       表示该范围内的任意时间

    • ,    表示间隔的多个不连续时间点

    • -       表示一个连续的时间范围

    • /       指定间隔的时间频率

  • 应用示例

    • 0  17        *  *  1-5        周一到周五每天17:00

    • 30  8        *  *  1,3,5          每周一、三、五的8点30分

    • 0  8-18/2        *  *  *          8点到18点之间每隔2小时

    • 0  *        */3  *  *              每隔3天

 

  • 示例1(root用户)

    • 每天早上7:50自动开启sshd服务,22点50时关闭

    • 每隔5天清空一次FTP服务器公共目录/var/ftp/pub

    • 每周六的7:30时,重新启动httpd服务

    • 每周一、三、五的17:30时,打包备份/etc/httpd目录

[root@localhost root]# crontab -e
50 7 * * *   /sbin/service  sshd  start
50 22 * * *   /sbin/service  sshd  stop
0 0 */5 * *   /bin/rm –rf /var/ftp/pub/*
30 7 * * 6   /sbin/service  httpd  restart
30 17 * * 1,3,5   /bin/tar  jcf  httpdconf.tar.bz2  /etc/httpd/
  • 示例2jerry用户)

    • 每周日晚上23:55时将“/etc/passwd文件的内容复制到宿主目录中,保存为pwd.txt文件

[root@localhost root]# crontab -e -u  jerry
55 23 * * 7   /bin/cp  /etc/passwd  /home/jerry/pwd.txt
  • 示例3

    • root用户查看自己的计划任务列表

    • 查看并删除jerry用户设置的计划任务

[root@localhost root]# crontab -l -u jerry
55 23 * * 7  /bin/cp /etc/passwd /home/jerry/pwd.txt
[root@localhost root]# crontab -r -u jerry
[root@localhost root]# crontab -l -u jerry
no crontab for jerry
[root@localhost root]#

Crontab安全性

默认情况下,所有用户都可使用cron工具,要限制对cron的访问,可以使用/etc/cron.allow与/etc/cron.deny文件。

1、这两个文件都不存在时,每个用户都可以访问cron工具。

2、若两个文件都存在,只有/etc/cron.allow中的用户可以访问cron工具,忽略/etc/cron.deny文件

3、如果/etc/deny文件不存在,则/etc/allow中的用户不可以访问cron工具。


Linux 2017年08月16日 19872

Centos搭建 NFS网络文件系统 教程

NFS服务器

1.安装nfs-utils 

  yum -y install nfs-utils

2.创建需要共享的文件或目录

  mkdir /test/share1 /test/share2 /test/share3

3.NFS配置文件

  vi /etc/exports

image.png

4 .启动相关服务

  service rpcbind start
  service nfs start

 5.关闭防火墙

   service iptables stop

6.查看当前主机的共享目录列表

  showmount -e   localhost
  exportfs -rv         使NFS服务器重新读取exports文件中的设置
  exports  -auv      停止当前主机中NFS服务器的所有目录输出


NFS客户端

1.安装nfs-utils

yum -y install nfs-utils

2 .启动相关服务

service rpcbind start
service nfs start

3.查看指定主机共享目录信息

showmount -e 192.168.8.241

image.png

 4.Linux客户端挂载NFS文件系统

image.png

5.系统启动自动挂载NFS文件系统

image.png

image.png

 6.重新读取fstab文件,或者重启计算机

mount -a

7.查看挂载信息

df -T


Linux 2017年08月16日 19783

PHP7.1中AES加密解密方法 mcrypt_module_open()替换方案


mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。


PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt.

/**
 * [AesSecurity aes加密,支持PHP7.1]
 */
class AesSecurity
{
    /**
     * [encrypt aes加密]
     * @param    [type]                   $input [要加密的数据]
     * @param    [type]                   $key   [加密key]
     * @return   [type]                          [加密后的数据]
     */
    public static function encrypt($input, $key)
    {
        $data = openssl_encrypt($input, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
        $data = base64_encode($data);
        return $data;
    }
    /**
     * [decrypt aes解密]
     * @param    [type]                   $sStr [要解密的数据]
     * @param    [type]                   $sKey [加密key]
     * @return   [type]                         [解密后的数据]
     */
    public static function decrypt($sStr, $sKey)
    {
        $decrypted = openssl_decrypt(base64_decode($sStr), 'AES-128-ECB', $sKey, OPENSSL_RAW_DATA);
        return $decrypted;
    }
}


可据需求,自行改编。

PHP 2017年08月16日 413025

史上最全PHP常见开发工具 视频教程 文档资料

[PHP常见开发工具]

php开发工具众多,主要有两类,一类是普通文本编辑器,另一类是集成开发工具(IDE)。

普通文本编辑器:

    1、Sublime Text

    2、微软的跨平台代码编辑器 visual studio code

    3、Atom

    4、还有notepad++,editplus,vi等等不再列举

集成开发工具(IDE)

    1、zend官方的zend studio

    2、JetBrains 公司的PhpStom

    3、netbeans IED for php

    4、eclipse for php

    ……

[流行的MVC]

1、ThinkPHP 国人自己的

2、laravel 以优雅著称

3、Yii 快速、安全、专业 的 PHP 框架

4、zend framework  zend自家的

5、Yaf(Yet Another Framework)  高性能的C语言编写的框架

6、phalcon使用 C 扩展编写、针对高性能优化的 PHP 框架

7、CodeIgniter、CakePHP、Symfony 等等

[视频教程]

    1、慕课网-程序员的梦工厂

            慕课网(IMOOC)是IT技能学习平台。慕课网(IMOOC)提供了丰富的移动端开发、php开发、web前端、android开发以及html5等视频教程资源公开课。并且富有交互性及趣味    性,你还可以和朋友一起编程。

    2、网易云课堂 - 领先的实用技能学习平台

            云课堂是网易公司研发的一款大型在线教育平台服务,该平台面向学习者提供海量免费、优质课程,创新的个性化学习体验, 自由开放的交流互动环境。继网易公开课后,云课堂是网易公司在教育领域的又一重量级产品。

    3、腾讯课堂_专业的在线教育平台

            腾讯课堂-腾讯推出的专业在线教育平台,聚合大量优质教育机构和名师,下设职业培训、公务员考试、托福雅思、考证考级、英语口语、中小学教育等众多在线学习精品课程,打造老师在线上课教学、学生及时互动学习的课堂。腾讯课堂,学习成就梦想!

    4、极客学院IT在线教育平台-中国专业的IT职业在线教育平台

            极客学院作为中国专业IT职业在线教育平台,拥有海量高清IT职业课程,涵盖30+个技术领域,如Android,iOS ,Flash,Java,Python,HTML5,Swift,Cocos2dx等视频教程.根据IT在线学习特点,极客学院推出IT学习知识体系图,IT职业学习实战路径图,帮助IT学习者从零基础起步,结合IT实战案例演练,系统学习,助你快速成为IT优秀技术人才!

    5、优酷学堂

            优质课程、智能问答、趣味实践、随心笔记、教育、优酷公开课、计算机开发、交互视觉设计、Udacity、it、互联网、会计、视频教程、交流互动、免费、名师、实用、培训


PHP 2017年06月10日 49299

Node.js/Express学习笔记_02 快速开始express

一、express介绍

我们知道,php有thinkphp、laravel、yii、yaf等等一系列开源框架,java有spring、structs、Hibernate等,python有Django、webpy等,那么Node.js也有很大框架,比较主流的有express、koa框架,接下来我就选择express来开始学习。

npm 提供了大量的第三方模块,其中不乏许多 Web 框架,我们没有必要重复发明轮子,

因而选择使用 Express 作为开发框架,因为它是目前最稳定、使用最广泛,而且 Node.js

方推荐的唯一一个 Web 开发框架。

Express http://expressjs.com/ ) 除了为  http 模块提供了更高层的接口外,还实现了

许多功能,其中包括:

q  路由控制;

q  模板解析支持;

q  动态视图;

q  用户会话;

q  CSRF 保护;

q  静态文件服务;

q  错误控制器;

q  访问日志;

q  缓存;

q  插件支持。

 

二、安装express

1、运行:npm install -g express

        未命名图片.png

       2、创建项目:express --view ejs blog

          未命名图片2.png

         3、按照提示 cd blog && npm install

          未命名图片3.png

            4、启动项目 SET DEBUG=blog:* & npm start

          未命名图片4.png            

5、打开浏览器http://127.0.0.1:3000/,看到如下页面,表示express项目安装成功

未命名图片5.png


三、express目录结构

        未命名图片6.png

app.js是项目的入口文件

routes是项目的路由文件目录

view是模板目录,根据上面的安装,我们是有模板引擎是ejs,该模板引擎通俗易懂。


Node.js 2017年06月05日 62315

Node.js/Express学习笔记_01 安装与配置Node.js

一、环境说明

1windows 10

2node.js v6.10.3 LTS 下载地址 https://nodejs.org/en/

3、编辑器 sublime text 3

 

二、安装node.js

1、双击安装,一路下一步,安装完成。

未命名图片.png

2cmd命令行 查看node.js版本:node --version  ,如果出现版本号,说明安装成功,npmnodejs的包管理工具,安装node的时候自动安装了npm

未命名图片.png

 

三、Hello Node.js

1、建立一个名为 app.js 的文件,内容为:

//app.js
var http = require('http');
http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('Node.js');
    res.end('Hello World');
}).listen(3000);
console.log("HTTP server is listening at port 3000.");

 

2、运行 node app.js 命令,

未命名图片.png

打开浏览器访问 http://127.0.0.1:3000

未命名图片.png

 

四、到此,node.js环境就配置完成了


Node.js 2017年06月05日 71647

排行

解决方案

网站建设

专业企业官网建设,塑造企业形象,传递企业价值

系统开发

系统软件开发,用心思考,用心设计,用心体验

技术支撑

打破技术瓶颈,让不堪重负的项目起死回生

业务中台

构建全渠道一体化运营能力,实现全链路数字化

文案策划

文案撰写、营销策划,专注品牌全案

新媒体运营

一站式解决企业互联网营销痛点和难题

以技术的力量,改变互联网

联系我们
鄂ICP备19028750号 @copyright 2019 tech1024.com