分类: 文章

  • Linux服务器下搭建多站的Apache配置方法

    前面写了一篇在win系统下面搭建多个网站的Apache配置方法,后来在Linux上面用同样的方式测试了一遍,发现win的配置方法并不适用于Linux(测试环境为CentOS 7 ),但是两者的配置方法还是差不了多少的,在这贴一下步骤,可供大家参考。

    一、搭建网站

    这个就不用多说了,只要在www目录下面搭建多个网站,每个网站一个文件夹就好,下面的图片是我的两个网站目录。

    二、配置Apache文件

    1、配置httpd.conf文件(文件位置一般在Apache安装目录的conf文件夹下面),查找内容 httpd-vhosts.conf ,将这一行前面的#注释号去掉,然后保存。这句话的意思有事开启使用httpd-vhosts.conf文件。

    2、配置httpd-vhosts.conf文件(文件位置在conf文件夹下面的extra文件夹下面),文件夹里面可能会存有一些样例数据,没注释掉的那些都是,这些代码直接删掉就好,如果不删掉的话会报错的。然后添加下面的代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [cce_xml]
    <VirtualHost *:80>
        ServerName vvso.cn   #定义域名
        ServerAlias www.vvso.cn   #定义子级域名
        DocumentRoot "/yjdata/www/www/blog/"   #定义网站目录
        #下面这一行适合php未配置解析目录的,如果已经定义了解析目录就不需要了,腾讯云的一般需要加。
        #ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:10000/yjdata/www/www/blog/$1
        DirectoryIndex index.html index.php
        #下面的代码是定义文该网站的Apache日志的生成位置,注意,目录一定要存在,否则会报错。
        CustomLog "| /usr/local/apache2/bin/rotatelogs /wwwlogs/blog/%Y_%m_%d_access_log 86400 480" combined
      <Directory "/yjdata/www/www/blog">
          Options  FollowSymLinks  #禁止显示文件目录
          AllowOverride None
          Order allow,deny
          Allow from all   #允许所有人访问
      </Directory>
    </VirtualHost>

     

    注意将上面域名部分改成你自己的域名和Apache目录和网站目录!!。

     

    如果是多个站,只需要在下面多添加些即可。

    做好这些之后重启Apache,命令行为: service httpd restart  注意不同的版本命令不一样,一般是这个。

    在写做完上面的配置之后,我发现有些效果和Apache不太一样,比如并没有配置外网ip的访问目录,但是仍然可以使用外网访问,这个我找了半天原因也没有找到,最后在下面用外网ip配置了一遍,禁止访问才可以,不像win上面,直接为每个域名开启虚拟主机,如果不配置外网是没办法访问的。如果有朋友找到了原因还请留言。

  • 关掉这几个功能iPhone多用3小时(iOS13省电教程)

    曾有网友调侃,“我的iPhone不是在充电就是在充电的路上。”一直以来,困扰很多iPhone用户的一大问题就是续航。最新推出的iPhone 11 Pro Max电池容量达到了3969mAh(历史之最),但是相较同级别安卓旗舰机型(如Mate 30 Pro)还是少了500多mAh,而iPhone11 Pro的电池容量则只有3046mAh。
    不过好消息是,苹果新推出的iOS 13系统针对iPhone的续航做了多种优化方案,只不过有些需要我们手动开启,那么今天我们就来详细了解下如何给你的iPhone省电吧。
    关闭定位服务

    我们每个人的iPhone都会有大量的App,这些App在我们初次下载运行时,都会弹出“想要获取你所在位置”的请求。
    如果你选择了允许,那么这些App就会始终在后台获取定位,而这样则会加快耗电。
    所以正确的做法是关闭那些不常用或不重要的App定位服务,或者选择“使用App期间”,这样可以有效降低耗电。
    操作方法:设置——隐私——定位服务
    关闭获取新数据

    iPhone原生的邮件App是我非常喜欢使用的一款应用程序,因为它用起来很方便,而且没有广告,把经常使用的邮箱账号添加进来,就可以随时查收邮件。
    不过邮件的默认设置是在后台自动获取新数据,会比较耗电。
    甚至连苹果自己都在设置选项里标注了“若要延长电池续航能力,请减少获取数据的频率”的提示。
    所以最省电的做法就是把“自动”改为“手动”,这样只有在你进入“邮件”App时才会获取最新的数据更新。

     

    操作方法:设置——密码与账户——获取新数据——关闭“推送”并在下面选择“手动”
    关闭后台App刷新

    后台应用刷新有点类似于上面提到的获取新数据,而且它也比较耗电,如果手机里的很多应用程序都默认开启了这个功能,必然会加快耗电。
    反之,关闭这个功能可以说等同于开启了低电量模式,省电效果明显。
    这里我建议大家保留几个最常用的软件就行了,比如微信、QQ、微博等,其他不常用的App通通关掉吧。
    操作方法:设置——通用——后台App刷新——关闭
    关闭“嘿 Siri”唤醒

    Siri作为苹果最重要的智能语音助手,早在iPhone 4S上就已经开始使用;但是到了今天,我不知道大家日常使用它的频率高不高?反正就我自己来说,使用频率还是比较低的。
    需要注意的是,很多人iPhone上的“嘿 Siri”设置默认是开启状态,此外像Siri搜索建议、查询建议和锁屏建议也是默认开启的。
    也就是说,手机麦克风随时都处于调用状态,耗电自然也比较明显。如果不常用“嘿 Siri”的话,建议把它关掉。
    操作方法:设置——Siri与搜索——关闭“嘿 Siri”唤醒及“Siri建议”
    关闭抬起唤醒

    iPhone的抬起唤醒功能本意是为了方便用户在不使用按键的情况下也能查看时间和通知,但是这个功能最大的问题就是太费电了,因为手机感应装置只要监测到手机被抬起,屏幕就会点亮。

     

    如果你用的是iPhone X以上机型,此时恰好又看了眼屏幕那么手机就被解锁了,确实很烦人。
    所以,最好的办法就是把它关掉,这样可以节省不少电量。
    操作方法:设置——显示与亮度——抬起唤醒——关闭
    删除不常用的小组件

    iPhone的很多App即使在你没有点击运行的状态下也可以快速浏览,点亮主屏幕并滑到最左侧,可以看到这些随时处于运行状态的App。
    虽然很方便快速了解信息,但如果你的iPhone有很多App都在这一栏里,则会大幅增加耗电。
    所以建议大家把最常用的几个App(如天气、备忘录、提醒事项等)保留在小组件里就可以了。
    操作方法:点击小组件最下方的“编辑”按钮——删除不常用的App——点击“完成”按钮
    关闭应用通知

    应用通知是更加令人反感的一个功能,如果很多App都开启了通知,你将会被各种有用没用的信息打扰,最重要的是这样会非常耗电。
    所以,这里也建议大家保留几个常用的App就行了(如微信、电话、短信),这样不仅省电,也不会有没完没了的通知打扰你的工作和休息了。
    操作方法:设置——通知——关闭不需要的App通知
    关闭视角缩放

    iOS 13新增了不少静态墙纸,当我们选择一张墙纸预览时,可以看到底部中间位置有一个视角缩放的图标,默认是处于开启状态。
    此时,当你转动手机,墙纸也会呈现出浮动的效果。不过,这个功能除了会增加耗电,我觉得并没有带来多好的视觉效果,所以建议大家还是把它关掉吧。
    操作方法:设置——墙纸——选取新墙纸——静态墙纸——关闭视角缩放——同时设定
    以上就是本次关于iOS 13的详细省电教程,按照这些方法关闭不常用的功能,你的iPhone续航一定会有显著提升。
    我不敢说关闭这些功能之后你的iPhone能用上两天,但至少让你多用3个小时应该没什么问题。

    当然了,如果你每天都是各种游戏、短视频不离手,那还是做好随用随充的准备吧。

  • CentOS7 Minimal安装GNOME图形界面

    CentOS7 Minimal下安装图形化界面的方法,有些时候纯命令的确有时候不方便,图形化界面更加友好方便个人学习和使用,但是在服务器部署环境的情况下个人是不建议去用图形化。

    由于CentOS 7 Minimal是一个比较简洁的liunx发行版,只有基本的服务,并没有带图形化的界面。反正个人喜欢简简单单,不需要多余的服务,需要再安装一个也不迟。

    安装准备

    首先使用Root用户登录,不是root安装可能会导致安装失败或者其他权限原因!!!

    使用 yum 安装 X窗口系统

    yum -y groupinstall "X Window System" -y
    yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

    输入 y ,然后下载需要的package 进行安装。这个过程大概20分钟左右,耐心等待。

    当出现Complete! 说明已经安装成功!

    检查一下我们安装的软件以及可以安装的软件

    yum grouplist

    Available Environment Groups 代表是已经安装
    Available Groups 代表还没有安装的

    安装图形化桌面 GNOME

    标注如上图,安装命令为:

    yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

    出现Complete! 这时候就已经安装完成了。

    这时候可以通过startx 来进入桌面,第一次进入会比较慢,等一下就好了。可以通过VNC来进行远程管理

    修改系统启动即为图形化界面

    ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
    startx

    安装中文支持和输入法

    安装中文语言

    yum groupinstall "Chinese Support" -y

    安装输入法

    yum groupinstall "Input Methods"
  • 数据库基础知识

    关系型数据库 SQL

    优点:

    容易理解:
    二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解;

    使用方便:
    通用的SQL语言使得操作关系型数据库非常方便;SQL,结构化查询语言,全称是Structured Query Language,是用于访问和处理数据库的标准的计算机语言。

    缺点:

    高并发:
    网站的用户并发性非常高,往往达到每秒上万次读写请求,对于关系型数据库来说,硬盘I/O是一个很大的瓶颈

    大数据读写:
    网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的

    扩展性和可用性:
    在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

    流行的关系型数据库有:Mysql 、 Oracle 、PostgreSQL 、SQLServer等。

    非关系型数据库 NOSQL

    当关系型数据库的很多特性不再需要了:

    事务一致性:
    关系型数据库在对事物一致性的维护中有很大的开销,而现在很多web2.0系统对事务的读写一致性都不高

    读写实时性:
    对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比如发一条动态之后,过几秒乃至十几秒之后朋友才看到这条动态是完全可以接受的

    复杂SQL,特别是多表关联查询:
    任何大数据系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品阶级角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能极大的弱化了

    于是,非关系型数据库应运而生;

    非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

    优点:

    用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。

    缺点:

    非关系型数据库由于很少的约束,他也不能够提供像SQL所提供的where这种对于字段属性值情况的查询。并且难以体现设计的完整性。他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数据库显的更为合适。

    流行的非关系型数据库主要有:
    key-value存储:MemcacheDB、Redis等;写在内存里面,主要特点是具有极高的并发读写性能;
    文档存储:MongoDB等;主要特点是从大数据中快速查询;
    还有其它存储方式,不了解,先不扯。

  • 宝塔几款实用性较高的插件

    1、宝塔的免费防火墙

    主要是Nginx服务器,有功能比较强大的免费防火墙可以使用,很多人不知道,这个免费防火墙功能几乎也可以媲美收费版的防火墙的,不过需要你先注册和登陆宝塔账户才能安装。所以建议先去注册一个宝塔账户,https://www.bt.cn/register.html,等注册了宝塔账户之后,就可以在自己的宝塔面板中登陆账户然后点击购买插件就可以免费安装这个功能强大的防火墙,针对常见的各种攻击渗透还是比较有效的。

    2、堡塔面板静态文件加速

    这个插件还是比较推荐安装的,因为我们很多人买的海外服务器或者是买的国内1Mbps低带宽的服务器,而宝塔页面加载大约有2.3M大小,安装1Mbps带宽计算。加载完成宝塔面需要18s左右。所以速度相对较慢的。这个插件就是解决这个问题通过加速公共静态文件实现访问宝塔面板加速的效果。

    3、堡塔APP

    这个插件就是连接app实现手机上管理宝塔面板的,宝塔一直没有开发移动端自适应页面,我们无法在手机上访问宝塔面板并且管理网站和服务器,堡塔APP就是来解决这个问题的。不过这个插件显示的是付费插件,可以组队5个人免费领取使用,队长拿3年使用权,队员1年免费使用,这个app退出不久还在成长阶段可能很多功能还不够成熟,不过日常的使用基本是可以满足的了。

    4、文件搜索和批量修改插件

    有时候我们需要定位我们网页代码的位置搜索文件这个工具对于不熟悉linux的用户来说就太容易了。文件内容搜索及批量修改(可整站修改及自动备份)。

    5、堡塔网站加速

    重构版,基于页面缓存的网站加速插件,安装或升级到此版本,将会卸载旧版本,如果是Apache需要先安装Memcached。若加速插件为网站并发性能提升10倍,则免费版上限为3 ~ 5倍,专业版上限为7 ~ 8.5倍,企业版的不限制
    注意:免费版和专业版的加速上限会因服务器情况,站点并发等影响,所以会在一定的范围内浮动,属正常情况

  • CentOS 7安装Firewalld防火墙与常用命令

    firewalld是Linux操作系统的防火墙管理工具。它通过充当Linux内核的netfilter框架的前端来提供防火墙功能,就像iptables一样。

    安装firewalld

    默认情况下CentOS 7可能已经安装了firewalld服务,若确实没有安装直接使用yum命令安装即可:

    #安装firewalld
    yum -y install firewalld
    Bash

    运行firewalld之前的准备

    firewalld默认规则已经放行SSH服务(22端口),但如果您修改过SSH端口,则必须先放行,否则一旦启用firewalld将被阻挡在外,无法连接服务器,那就杯了个具。

    比如您将SSH端口修改为了2018,可尝试直接编辑firewalld的配置文件vi /etc/firewalld/zones/public.xml,里面加入一条规则:

    <port protocol="tcp" port="2018"/>
    XML

    接着输入命令:systemctl start firewalld来启动firewalld,这样就不会阻挡在外啦。

    常用命令

    安装完成后firewalld并没有运行,有必要先来熟悉下基本的命令:

    #查看运行状态
    firewall-cmd --state
    #启动firewall
    systemctl start firewalld
    #设置开机自启
    systemctl enable firewalld
    #删除开机自启
    systemctl disable firewalld
    #停止firewall
    systemctl stop firewalld
    Bash

    如果您在启动的时候提示“Failed to start firewalld.service: Unit firewalld.service is masked.”,输入下面的命令可解决:

    systemctl unmask firewalld.service
    Bash

    一些常用的列子

    放行某个指定的TCP端口,如放行80端口:

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    Bash

    放行端口范围(8000-9000):

    firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent
    Bash

    查看已经放行的端口:

    firewall-cmd --zone=public --list-ports
    Bash

    删除某个已经放行的端口(6022):

    firewall-cmd --zone=public --remove-port=6022/tcp --permanent
    Bash

    阻止某个IP(123.57.22.204)连接:

    firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=123.57.22.204 reject"

    仅允许特定的IP访问特定的端口:

    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="101.32.40.130" port protocol="tcp" port="3306" accept"

    注意上面的所有列子都需要输入: firewall-cmd --reload重载firewall使其生效。

    总结

    个人感觉firewalld使用起来比iptables简单,CentOS 7默认使用firewalld作为防火墙也肯定是有原因的,因此赶紧把这篇文章收藏了肯定没坏处(此处应有一个坏笑的表情)。上面仅提供了firewalld的基本使用方法,应对大部分情况应该足够了,如果需要详细了解参数含义可网上自行搜索。

  • Linux资源监控面板X-Prober 简洁Web面板

    x探针一款 PHP 环境探针程序,它可以十分直观地显示服务器的信息,很实用的监控面板,很适合小服务的运维工作,官方宣称和苹果iPhone X/XS/XS Max/XR 有一样丑陋的刘海,也是个很有意思的开发者!

    安装教程

    面板的简约算是很吸引我的一点,没有那么繁杂,一目了然,安装方式也就是一个文件上传一下,简单干净。面板简约清新,中小服务器个人使用监控服务器绝对是不二之选!

    https://github.com/kmvan/x-prober/blob/master/README-zh_CN.md
    访问地址找到下载一个文件,命名为 x.php 上传到您的服务器上。
    通过浏览器访问 x.php 即可看到。如果你想默认访问到修改名字为 index.php

    • 多节点监控
    • 系统负载
    • CPU 占用
    • 真实内存占用
    • 内存缓存
    • 内存缓冲
    • SWAP 占用
    • SWAP 缓存
    • 网络口收发信息
    • 服务器php信息
    • php扩展信息
    • 数据库信息
    • 甚至还支持给自己服务器跑个分

    Linux资源监控面板X-Prober 简洁Web面板

    Github地址:https://github.com/kmvan/x-prober
    官方演示地址:https://prober.inn-studio.com/

  • linux的h服务升级后无法启动修复

    directspace的VPS一直用了很多年,价格也非常的实惠,所以挂着垃圾站,周六的时候VPS挂掉等了几十分钟又自动好了,是directspace在升级母鸡。directspace是OVZ小鸡。 后来就没有注意,可以登录ssh一直无法链接,但是网站什么都正常,就进去VNC看了是OpenBSD Secure Shell挂了。
    用错误ssh.service: Failed with result start-limit-hit. 搜索到一个大佬也遇到我同样错误,记录一https://xsin.gitee.io/2019/03/20/%E8%AE%B0%E4%B8%80%E6%AC%A1ssh%E6%9C%8D%E5%8A%A1%E6%8C%82%E6%8E%89%E8%A7%A3%E5%86%B3/

    排查的过程

    service ssh status 
    Bash
    /usr/sbin/sshd -T
    Bash

    *** Missing privilege separation directory: /var/run/sshd***

    也可以用/usr/sbin/sshd -ddd

    /usr/sbin/sshd -ddd
    Bash

    End 解决方法如下,用/usr/sbin/sshd -T 最后检查一下就OK

    mkdir /var/run/sshd
    chmod 0755 /var/run/sshd
    /usr/sbin/sshd -T
  • 伪造Window登录界面窃取密码:FakeLogonScreen

    FakeLogonScreen

    Windows环境中,获取系统密码,提升系统权限。在渗透测试是经常遇到的。今天这里介绍一款伪造windows登录屏幕以达到窃取密码或题全的软件:FakeLogonScreen。FakeLogonScreen这个程序是用于伪造Windows登录凭证以获取系统登录密码。它会获取当前系统配置的背景图片,这样显得更加真实,成功率也会更高。

    另外,该程序会对输入的密码进行Active Directory或本地计算机的认证,以确保窃取密码的准确性。它可以显示在控制台,也可以保存早文件远程系统的硬盘上。这个软件的好处就是可以与其它工具配合使用,可以直接通过内存执行(无文件)。比如可以配合Cobalt Strike的execute-assembly来执行。

    运行环境

    由于使用c#编写,需要系统中有.net framework框架。这里测试windows10和windows7,系统均为64位。在其release的版本中,作者给出来.net framework3.5和4.5的可执行程序。适用于windows7 和windows10等情况。实际中可根据实际情况进行选择。

    利用

    可以配合Cobalt Strike,系统上线后,进入到beacon中,然后直接执行execute-assembly /root/Desktop/FakeLogonScreen.exe 。(后面为控制机上的文件路径,非被控机的路径)。接下来就是等待对方输入密码,即可在进入的beacon中显示输入的密码了。效果图如下:

    也可以使用FakeLogonScreenToFile.exe 在本地执行后,然后去查看文件。

    当然这个程序也有些问题,就是windows7也显示windows10样式的窗口,同时,界面显示仍然与系统原有的有区别,但是对于安全意识低的员工还是有作用的。

    软件下载

    特征

    • 主显示屏显示Windows 10登录屏幕,而其他屏幕变为黑色
    • 如果用户配置了自定义背景,则显示该背景而不是默认背景
    • 关闭屏幕前验证输入的密码
    • 输入的用户名和密码将输出到控制台或存储在文件中
    • 阻止许多快捷键以防止绕过屏幕
    • 最小化所有现有窗口,以避免其他窗口停留在顶部

    软件下载地址:https://github.com/bitsadmin/fakelogonscreen/releases

    • FakeLogonScreen.exe:将输出写入控制台,例如与Cobalt Strike兼容
    • FakeLogonScreenToFile.exe:将输出写入控制台并 %LOCALAPPDATA%Microsoftuser.db

    文件夹:

    • / (root):针对.NET Framework 4.5构建,默认情况下,该框架已在Windows 8、8.1和10中安装
    • DOTNET35:针对Windows 7中默认安装的.NET Framework 3.5构建
  • Linux中给php安装h2拓展

    相信许多人需要安装ssh2拓展,网上的诸多教程要不已经过时,要不过程模糊或者繁杂,今天我来分享一个详细简单的安装教程。
    1.使用yum 安装 libssh。

    yum install libssh2-devel
    PowerShell

    2.下载 ssh2,解压并编译安装(可自行去官网选择对应版本).

    #下载ssh2-1.2.tgz
    wget http://pecl.php.net/get/ssh2-1.2.tgz
    #解压
    tar -xvf ssh2-1.2.tgz
    cd ssh2-1.2/
    #开始编译,我这里用的是宝塔php7.0,所以php的路径是/www/server/php/70/bin/php-config,大家把=后面的路径改成自己对应的版本就行了。
    phpize
    ./configure --with-php-config=/www/server/php/70/bin/php-config
    #如果没报错的话就可以编译了
    make && make install
    PowerShell

    3.修改 php.ini,在末尾追加下面命令,重载php配置,或者直接重启服务器.

    extension=ssh2.so
    PowerShell

    4.查看[phpinfo]是否扩展安装成功或在控制台输入下方命令,成功后返回[ssh2],失败返回空白,如果报错查看编译路径是否正确。

    php -m | grep ssh2
    PowerShell


    好了,到这教程就结束了。