技术圈开发者交流群:

Samba文件共享服务基础

Samba服务的安装

1.[root@rhel6-002 Packages]# ls ./samba*

     ./samba-3.5.10-114.el6.i686.rpm                          服务器软件包

     ./samba-client-3.5.10-114.el6.i686.rpm                共同需要的

     ./samba-common-3.5.10-114.el6.i686.rpm         客户端软件

     ./samba-winbind-3.5.10-114.el6.i686.rpm           WEB软件包

     ./samba-winbind-clients-3.5.10-114.el6.i686.rpm       WEB客户端

2.[root@rhel6-002 ~]# yum -y install samba*

 

Samba服务器的主要程序

      smbd:提供对服务器中文件、打印资源的共享访问 (139 TCP端口号)

      nmbd:提供基于NetBIOS主机名称的解析 (137和138 UDP端口号)

Samba的服务脚本

      /etc/init.d/smb

Samba的配置目录及文件

     /etc/samba/

     /etc/samba/smb.conf

配置文件检查工具:testparm


Samba配置文件    /etc/samba/smb.conf

[global]

workgroup =  指定工作组或域

server string = 描述

security = 指定主机访问

log gile = 知道日志文件存放位置

max log size = 指定日志文件大小

passwd backend = 设置共享账户文件类型

[常见共享目录配置]

comment = 对共享目录的注释

path = 共享目录在服务器中的对应的实际路径

browseble = 该共享目录在“网上邻居”是否可见

guest ok = 是否允许所有人访问,等效于“public”

writable = 是否可写,与read only的作用相反

directory mask = 0755

create mask = 0644        设置上传文件和目录默认权限

image.png

Linux 2017年09月11日 39236

基于Laravel5.5的模块化开发

laravel 安装后是单模块应用,但通常情况下,我们的项目往往会有很多模块,如果按单模块去做,文件目录会异常庞大,不利于维护,耦合性太大。 那么下面就详细说一下利用最新laravel5.5如何进行分模块开发。

composer create-project --prefer-dist laravel/laravel ./
PHP 2017年09月11日 430394

我的Sublime Text配置

{
    "SublimeLinter":
    {
        "linters":
        {
            "php":
            {
                "cmd": "F:\\program\\phpStudy\\php\\php-7.1.8-nts\\php.exe"
            }
        }
    },
    "color_scheme": "Packages/User/SublimeLinter/Monokai (SL).tmTheme",
    "font_face": "Courier New",
    "font_size": 14,
    "ignored_packages":
    [
        "Vintage"
    ],
    "theme": "Soda Dark 3.sublime-theme",
    "update_check": false,
    "word_wrap": "auto"
}
  • CTags
  • DeleteBlankLines
  • DocBlocker
    {
    "jsdocs_extra_tags":[
        "@author   [Tech1024] <xxxxxx@163.com>",
        "@datetime {{datetime}}"
    ]
    }
  • Emmet
  • Git
  • HTML-CSS-JS Prettify
  • jQuery
  • Markdown Preview
  • phpfmt
    {
    "autocomplete": true,
    "enable_auto_align": true,
    "format_on_save": false,
    "indent_with_space": 4,
    "option": "value",
    "passes":
        [
            "MergeElseIf"
        ],
    "php_bin": "F:/program/phpStudy/php/php-7.0.12-nts/php.exe",
    "psr1": true,
    "psr1_naming": true,
    "psr2": true,
    "version": 3
    }
  • SublimeLinter
  • SublimeLinter-php
  • Theme-Soda
  • SideBarEnhancements
工具 2017年09月08日 37189

php格式化输出json

格式化输出json,php版本要求5.4或更高

    /**
     * 浏览器友好的变量输出json格式
     * @param mixed     $var 变量
     * @param boolean   $echo 是否输出 默认为true 如果为false 则返回输出字符串
     * @return void|string
     * @author TechLee
     */
    function ddj($var, $echo = true)
    {
        header('content-type:application/json;charset=utf8');
        $output = json_encode($var, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
        if ($echo) {
            echo ($output);
            return;
        } else {
            return $output;
        }
    }


PHP 2017年09月08日 25562

php格式化输出代替var_dump/print_r

PHP输出变量函数print_r和var_dump,没有格式化,易读性太差

下面结合thinkphp礼包dump函数改进的

    /**
     * 浏览器友好的变量输出
     * @param mixed     $var 变量
     * @param boolean   $echo 是否输出 默认为true 如果为false 则返回输出字符串
     * @param string    $label 标签 默认为空
     * @return void|string
     * @author TechLee
     */
    function ddp($var, $echo = true, $label = null, $flags = ENT_SUBSTITUTE)
    {
        $label = (null === $label) ? '' : rtrim($label) . ':';
        ob_start();
        var_dump($var);
        $output = ob_get_clean();
        $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);

        if (!extension_loaded('xdebug')) {
            $output = htmlspecialchars($output, $flags);
        }
        $output = '' . $label . $output . '';

        if ($echo) {
            echo ($output);
            return;
        } else {
            return $output;
        }
    }


PHP 2017年09月08日 25445

磁盘阵列基本知识

基础知识

一、RAID的定义

是Redundant Array of Independent Disks(独立磁盘冗余阵列),RAID就是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来的一个硬盘组(逻辑硬盘)。

软RAID:是通过软件实现多块硬盘冗余的.

硬RAID是一般通过RAID卡来实现RAID的.

二、RAID0

image.png

 

三、RAID1

image.png

四、RDID5

image.png

 

五、RAID100+1

image.png

六、基本命令

1、创立Raid:

  Raid1 卷

mdadm -C /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

或mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1

  Radid5 卷

mdadm -C /dev/md5 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1

或mdadm -Cv /dev/md5 –l5 –n3 /dev/sdb1 /dev/sdc1 /dev/sdd1

 

2、查看raid

mdadm -D /dev/md0

mdadm  --examine /dev/sdb1

或:

mdadm  /dev/md0 --examine /dev/sdb1


3、停止raid 

mdadm -S /dev/md0 

 

4、激活raid 

mdadm -A /dev/md0 /dev/sdd1 /dev/sdc1 

 

5、替换设备: 

mdadm /dev/md0 -f /dev/sdb0 

把设备列为有问题 

mdadm /dev/md0 -r /dev/sdb0 

移除成员 

mdadm /dev/md0 -a /dev/sdc0 

添加成员 

mdadm /dev/md0  --re-add   /dev/sdc0 

重新把最近移除的RAID成员重新添加到RAID中 

 

6、扩容与缩减 

mdadm -G /dev/md0  -n4 

mdadm /dev/md5 -f /dev/sde1 

mdadm /dev/md5 -r /dev/sde1 

mdadm -G /dev/md5 --size=3

Linux 2017年08月30日 12751

LINUX进程管理

程序

保存在硬盘、光盘等介质中的可执行代码和数据

是静态保存的代码

进程

在CPU及内存中运行的程序代码

是动态执行的代码

父、子进程:每个进程可以创建一个或多个进程

 

ps命令

用途:查看静态的进程统计信息

格式:ps aux

      ps -elf

 

使用ps命令工具时,要注意选项前是否有”-“引导符,例如”e“和”-e”选项的含义是有区别的

ps命令结合“aux”选项使用时,将显示系统中所有的进程信息

    PID:该进程在系统中的数字ID号,在当前系统中是唯一的;    %CPU:CPU占用百分比;    %MEM:内存占用百分比

ps命令结合“-elf”选项使用时,将以长格式显示系统中所有的进程信息,包含更丰富的内容(其中PPID列表示进程的父进程的PID号)

 

image.png

定制属性

ps axo pid,comm,%cpu  --sort=%cpu | tail -1

 

进程状态

image.png

 

常见进程状态

image.png

 

进程优先级决定了CPU对进程调度顺序.在Linux中,进程优先级受nice值(-20-19)影响,默认值为0,nice值越小,则进程对cpu的使用权越具有优先性

调整进程优先级的命令:

nice(启动进程时使用)

nice  -n 5  vi

   renice (对于已经启动的进程)

                  renice 9 1236

 

top命令

用途:查看动态的进程排名信息

 

切换到虚拟机环境演示ps(包括ps aux、ps –elf的用法)、top命令的使用,并讲解输出结果中的要点(CPU占用、内存占用等)

从用途上对比ps、top两个命令的不同,可适当介绍top工具的命令按键:P、M、N、h、q

按P键根据CPU占用情况对进程列表进行排序

按M键根据内存占用情况进行排序

按N键根据启动时间进行排序

按h键可以获得top程序的在线帮助信息

按q键可以正常退出top程序

使用空格键可以强制更新进程状态显示

 

pgrep命令

用途:根据特定条件查询进程PID信息

 

[root@localhost ~]# pgrep "init"

1

[root@localhost ~]# pgrep -l "log"

2538 syslogd

2541 klogd

3221 login

[root@localhost ~]# pgrep -l -U teacher -t tty1

27483 bash

27584 vim

 

 

pgrep命令

用途:根据特定条件查询进程PID信息

 

[root@localhost ~]# pstree -aup

init,1

  ├─acpid,2866

  ├─atd,3060

  ├─auditd,2516

     ├─python,2518 /sbin/audispd

     └─{auditd},2517

……

[root@localhost ~]# pstree -ap teacher

bash,27483

  └─vim,27674 myfile.txt

 

手工启动

前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入“&”符号

[root@localhost ~]# cp /dev/cdrom mycd.iso &

[1] 28454

 

调度启动

使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

 

Ctrl+Z 组合键

将当前进程挂起,即调入后台并停止执行

jobs命令

查看处于后台的任务列表

fg命令

将处于后台的进程恢复到前台运行,需指定任务序号

[root@localhost ~]# jobs

[1]-   Stopped                 cp /dev/cdrom mycd.iso

[2]+  Stopped                 top

[root@localhost ~]# fg 1

 

Ctrl+C组合键

中断正在执行的命令

kill、killall命令

kill用于终止指定PID号的进程

killall用于终止指定名称的所有进程

-9 选项用于强制终止

[root@localhost ~]# pgrep -l "portmap"

2869  portmap

[root@localhost ~]# kill  -9  2869

[root@localhost ~]# killall -9 vim

[1]-  已杀死               /usr/bin/vim file1

[2]-  已杀死               /usr/bin/vim file2

 

pkill命令

用途:根据特定条件终止相应的进程

常用命令选项:

 -U:根据进程所属的用户名终止相应进程

 -t:根据进程所在的终端终止相应进程

[root@localhost ~]# pgrep –l -U "hackli"          

3045 bash

[root@localhost ~]# pkill -9 -U "hackli

[root@localhost ~]# pgrep -l U "hackli


Linux 2017年08月30日 37060

SELinux管理

DACMAC

1.DAC(Discretionary Access Control),主体是用户,访问目标文件由文件本身的权限决定,依进程运行时的用户身份决定其访问权限权限.

2.MAC(Mandatory Access Control),主体是进程,访问目标文件由策略决定.

 

SELinux配置文件  /etc/sysconfig/selinux

1.三种模式

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=enforcing           --selinux的工作状态

#     SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted            --指定保护级别

 

2.设置selinux的模式

    sestatus           查看SELinux状态

    semodule -l            查看selinux加载的内核模块

     getenforce          查询当前SELinx配置文件模式

    setenforce  1 | 0    Enforcing | Permissive

3.SElinux的五种元素

     ls -Z   查看文件的安全上下文

     ps -Z    查看进程的上下文

     id -Z    查看用户的上下文

     User:role:type:sensitivity:category

     User_u:object_r:tmp_t:s0:c0

4.selinux策略的控制文件  /selinux/booleans

     getsebool [ -a ] 查看某个(所有)控制策略启用情况

     setsebool [ -P ] 开启或者关闭某个策略,-P表示始终

5.例如查看samba的相关策略

    

image.png


Linux 2017年08月30日 16969

Server2016 安装IIS+PHP+Mysql教程

Server2016 安装IIS+PHP+Mysql教程


PHP安装与配置

php.ini-development为开发环境配置文件模板,生产环境请使用php.ini-production

  • 打开php.ini文件

    • 设置时区,找到 ;date.timezone = ,去掉前面的‘;’号,改为date.timezone = PRC

    • 开启常用扩展,找到; extension_dir = "ext",同样去掉前面的‘;’号。

    • 找到;extension=php_bz2.dll 该行,该行以下均是扩展,去掉前面的‘;’号即可。

    • 常用的扩展有:

    • extension=php_curl.dll

    • extension=php_fileinfo.dll

    • extension=php_gd2.dll

    • extension=php_mbstring.dll

    • extension=php_mysqli.dll

    • extension=php_openssl.dll

    • extension=php_pdo_mysql.dll

安装IIS

  • 开始菜单-服务器管理器-添加角色和功能-默认下一步下一步-选择角色(勾选Web服务器)-下一步-选择角色服务(勾选如图)-下一步-等待安装完成。  

配置IIS和PHP

  • 开始菜单-windows管理工具-Internet Information Services (IIS)管理器

  • 选择网站-处理程序映射-添加模块映射。   

  • 添加默认文档index.php 

安装Mysql,傻瓜式安装,这里就不啰嗦了

下载地址参考 https://dev.mysql.com/downloads/installer/

大功告成,验证时刻

  • 网站目录新建index.php 

  • 浏览器打开http://localhost/ ,见到下面的页面,就成功啦 


windows 2017年08月29日 42740
鄂ICP备19028750号 @copyright 2019 tech1024.com