作者: Jefsky

  • 服务器发回了不可路由的地址,使用服务器地址代替

    n

    Filezilla —–服务器发回了不可路由的地址,使用服务器地址代替

    nnnn

    FTP应该算是常见网络服务中最简单搭建的,初次在国内云服务器上搭建FTP的朋友们应该不会对下面的报错感到陌生,“服务器发回了不可路由的地址,使用服务器地址代替”和“读取目录列表失败”其实是两个问题,反正最终结果就是无法使用FTP,所以很多朋友觉得就是一回事。这里以Linux宝塔面板在腾讯云上搭建Pure-Ftpd为例,给大家分享一下怎么彻底解决这个问题。

    nnnn

    故障分析
    服务器发回了不可路由的地址,使用服务器地址代替。

    nnnn

    网上最多的解决方案是修改Filezilla客户端的传输方式,也就是把“使用服务器的外部ip地址来代替”改为“回到主动模式”,这个答案并没有说错,但实在过于片面,所以绝大部分朋友最终还是未能解决问题!导致登陆FTP报错的原因主要有两个,按顺序依次开始分析。

    nnnn

    第一个 服务器发回了不可路由的地址,使用服务器地址代替

    nnnn

    腾讯云服务器的基础网络是通过NAT与互联网连接,服务器上的网卡IP为内网地址,而且Pure-Ftpd配置文件中未指定强制被动通信的外网IP地址。

    nnnn

    第二个 读取目录列表失败

    nnnn

    很多朋友以为只要禁用了VPS上的防火墙,就能畅通无阻,然而大型企业提供的云计算服务,一般都还有一道防火墙存在。腾讯云安全组策略中,未开放Pure-Ftpd被动端口范围,导致无法使用被动模式通信。

    nnnn

    解决方案
    第一个

    nnnn

    进入宝塔面板,依次点击软件管理-pure-ftpd 1.0.47-配置修改,搜索“ForcePassiveIP”,定位到下图位置:

    nnnn

    服务器发回了不可路由的地址,使用服务器地址代替。

    nnnn

    去掉ForcePassiveIP前面的注释符号,并把后面的IP地址修改为服务器的外网IP地址,保存配置后重载配置或者重启服务生效,解决报错:服务器发回了不可路由的地址,使用服务器地址代替。

    nnnn

    第二个

    nnnn

    Pure-Ftpd配置文件使用的被动端口范围是39000-4000,如需自定义可以编辑修改Pure-Ftpd配置文件。进入腾讯云主机的安全组,添加放行TCP39000-40000,解决报错:读取目录列表失败。

    nnnn

    服务器发回了不可路由的地址,使用服务器地址代替。

    n
  • Windows系统安装MySQL

    n

    今天给公司的电脑装上了win10,心血来潮想自己搭建wamp。前面的都还好啦,系统安装,php解压,apache的安装配置,就是弄mysql有点麻烦,毕竟不是可以像linux一行命令搞掂。

    nnnn

    1、首先到官网下载最新的mysql,官网:https://dev.mysql.com/downloads/mysql/

    nnnn

    MSI版本的是直接界面化安装,zip压缩包解压dos窗口安装,我选择了zip

    nnnn

    2、下载之后解压到安装的目录,并用cmd进入当前目录/bin

    nnnn

    3、接下来,在安装目录下,创建一个新空文件夹data和一个my.ini文件,其内容如下:

    nnnn
    [mysql]# 设置mysql客户端默认字符集default-character-set=utf8 n[mysqld]#设置3306端口nport = 3306 # 设置mysql的安装目录nbasedir=E:/mysql-5.7.12-winx64n# 设置mysql数据库的数据的存放目录ndatadir=E:/mysql-5.7.12-winx64/datan# 允许最大连接数nmax_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8n# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBnbasedir:安装mysql的路径nndatadir:刚创建的data目录路径n
    nnnn

    4、cmd 输入 mysqld –initialize-insecure

    nnnn

    再输入:mysqld -install (如果说已经存在,可以使用 sc delete mysql 或者 mysql -remove 将其删除)
    显示Service successfully installed你就棒棒哒了
    net start mysql #启动mysql服务
    如果出现MySQL 服务无法启动状况,你可以看看my.ini文件中basedir和datadir中的路径有没有写好

    nnnn

    5、以上都通过之后,我们需要配置一下mysql的密码(因为这时候是没有密码的)

    nnnn

    cmd 输入 mysqladmin -u root password *******

    nnnn

    mysql -u root -p //进入mysql

    nnnn

    show databases; //尝试一下

    nnnn

    如果可以正常显示数据库出来,就说明你已经成功了

    nnnn

    注意哟!

    nnnn

    如果在mysqld –initialize-insecure这一步报错,请百度下载vcredist_x64.exe或者vcredist_x86.exe,安装后解决报错

    n
  • ubuntu 软连接创建与删除

    n

    mkdir test_chk //创建文件夹

    nnnn

    touch test_chk/test.txt //创建文件

    nnnn

    vim test_chk/test.txt //往test写点内容

    nnnn

    ln-s test_chk test_chk_ln //创建test_chk目录的软链接

    nnnn

    软链接创建好了,我们来看看怎么删除它

    nnnn

    正确的删除方式(删除软链接,但不删除实际数据)

    nnnn

    rm -rf ./test_chk_ln

    nnnn

    错误的删除方式

    nnnn

    rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)

    nnnn

    现在看到区别了吧,所以说,以后大家在用rm -rf 删除软链接时,注意了!!!!

    n
  • 解决国内mac无法安装homebrew神器

    n

    这是官方的安装方法:https://brew.sh/index_zh-cn

    nnnn

    如果你在国内,并且访问国外网站比较卡,建议你通过一下方式安装,因为博主试过很多次,都以失败告终

    nnnn

    自动安装

    nnnn
    nhttps://www.jefsky.com/archives/538.htmln
    nnnn

    手动安装

    nnnn

    第一步:通过命令删除之前的brew,创建一个新的Homebrew文件夹

    nnnn
    sudo rm -rf /usr/local/Homebrewnnsudo mkdir /usr/local/Homebrewn
    nnnn

    回车后,要输入电脑开机密码(输入的密码不会显示出来,输入完正常回车)。

    nnnn

    第二步:git克隆(如果此时扩展说明-1)

    nnnn
    sudo git clone https://mirrors.ustc.edu.cn/brew.git /usr/local/Homebrewn
    nnnn

    回车后,会提示Receiving objects: xx% 等待下载完成。

    nnnn

    第三步:删除原有的brew,创建一个新的

    nnnn
    sudo rm -f /usr/local/bin/brewnnsudo ln -s /usr/local/Homebrew/bin/brew /usr/local/bin/brewn
    nnnn

    第四步:创建core文件夹、克隆

    nnnn
    sudo mkdir -p /usr/local/Homebrew/Library/Taps/homebrew/homebrew-corennsudo git clone https://mirrors.ustc.edu.cn/homebrew-core.git /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
    nnnn

    (下面两句非必须操作)如果需要brew-cask的话,运行:

    nnnn
    sudo mkdir -p /usr/local/Homebrew/Library/Taps/homebrew/homebrew-casknnsudo git clone https://mirrors.ustc.edu.cn/homebrew-cask.git /usr/local/Homebrew/Library/Taps/homebrew/homebrew-caskn
    nnnn

    第五步:删除之前brew环境,重新创建:

    nnnn
    sudo rm -rf /usr/local/var/homebrew/ nnsudo mkdir -p /usr/local/var/homebrewnnsudo chown -R $(whoami) /usr/local/var/homebrew
    nnnn

    最后一步:获取权限 运行更新(两句话分开运行)

    nnnn
    sudo chown -R $(whoami) /usr/local/Homebrewnnbrew update
    nnnn

    显示Already up-to-date.表示成功,再进行最后设置(国内下载源)

    nnnn

    最后设置:设置环境变量,再运行下面两句后,重启终端:

    nnnn
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrcnnecho 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profilenn
    nnnn

    扩展说明(非必要)

    nnnn

    1、每一步中的https://mirrors.ustc.edu.cn/可以替换为下面任意一个:

    nnnn
    https://mirrors.aliyun.com/homebrew/nnhttps://mirrors.tuna.tsinghua.edu.cn/git/homebrew/
    nnnn

    如果更换了源依旧速度慢,换下稳定网络,例如手机4G热点或者用网线。

    nnnn

    2、看评论说没有git,运行下面这句话,弹出的窗口点安装。(如果提示error表示已经安装)

    nnnn
    xcode-select --install
    nnnn

    3、brew有一个自检程序,如果有问题自检试试:

    nnnn
    brew doctor
    n
  • 报错:Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘login_time’ at row 1

    n

    报错说明

    nnnn

    Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘login_time’ at row 1

    nnnn
    n

    原因:MySQL5.7对时间处理更加严格了。

    n
    nnnn

    解决方式

    nnnn

    在MySQL中执行:
    show variables like 'sql_mode';

    nnnn

    把NO_ZERO_IN_DATE,NO_ZERO_DATE这两个删掉即可:
    set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    n
  • 让你在linux上运行macos的程序

    n

    今日 Hacker News 上有个热议的工具,类似 Wine !

    nnnn

    所谓 Wine 就是让你可以在 Linux 平台运行 Windows 版程序,而 Darling 则支持在 Linux 平台运行 macOS 版程序。

    nnnn

    Darling 官网:http://darlinghq.org/
    Wine 官网: https://www.winehq.org/

    n
  • vue 有关于命名大小写的问题

    n

    记录一下命名的的一些坑

    nnnn

    引入文件时, 默认第一个字母大写

    nnnn

    import Vue from 'vue'

    nnnn
      n
    • 组件命名的大小写,定义组件名的方式有两种:
    • n
    nnnn

    使用 kebab-case(短横线分隔命名)

    nnnn

    Vue.component('my-component-name', { /* ... */ })

    nnnn

    当使用 kebab-case 定义一个组件时,
    也必须在引用这个自定义元素时使用 kebab-case,例如。

    nnnn

    使用 PascalCase(首字母大写命名)

    nnnn

    Vue.component('MyComponentName', { /* ... */ })

    nnnn

    两者均可
    当使用 PascalCase 定义一个组件时,你在引用这个自定义元素时两种命名法都可以使用。也就是说 和 都是可接受的。

    nnnn
    n

    注意,尽管如此,直接在 DOM (即非字符串的模板) 中使用时只有 kebab-case 是有效的。

    n
    nnnn
      n
    • prop命名的大小写
      HTML 中的特性名是大小写不敏感的,
      所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:
    • n
    nnnn
    Vue.component('blog-post', {n  // 在 JavaScript 中是 camelCase 的n  props: ['postTitle'],n  template: '<h3>{{ postTitle }}</h3>'n})n<!-- 在 HTML 中是 kebab-case 的 -->n<blog-post post-title="hello!"></blog-post>
    nnnn
    n

    重申一次,如果你使用字符串模板,那么这个限制就不存在了。

    n
    nnnn
      n
    • 自定义事件的大小写
      不同于组件和 prop,事件名不会被用作一个 JavaScript 变量名或属性名,
      所以就没有理由使用 camelCase 或 PascalCase 了。并且 v-on 事件监听器在 DOM 模板中会被自动转换为全小写 (因为 HTML 是大小写不敏感的),
      所以 v-on:myEvent 将会变成 v-on:myevent——导致 myEvent 不可能被监听到。
    • n
    nnnn

    因此,我们推荐你始终使用 kebab-case 的事件名,禁止使用驼峰命名, 直接使用中划线即可
    ————————————————
    版权声明:本文为CSDN博主「ZH_TX」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ZHXT__/article/details/102791205

    n
  • Ubuntu系统Apache 2部署SSL证书

    n

    环境准备

    nnnn

    操作系统:Ubuntu

    nnnn

    Web服务器:Apache 2

    nnnn

    前提条件

    nnnn

    已从SSL证书控制台下载Apache服务器证书。
    已安装Open SSL。

    nnnn

    操作步骤

    nnnn

    运行以下命令在apache2目录下创建ssl目录:
    mkdir /etc/apache2/ssl
    运行以下命令将下载的阿里云证书文件复制到ssl目录中:
    cp -r YourDomainName_public.crt /etc/apache2/ssl
    cp -r YourDomainName_chain.crt /etc/apache2/ssl
    cp -r YourDomainName.key /etc/apache2/ssl
    运行以下命令启用SSL模块:
    sudo a2enmod ssl

    nnnn

    SSL模块启用后可执行:

    nnnn

    ls /etc/apache2/sites-available

    nnnn

    查看目录下生成的default-ssl.conf文件。

    nnnn
    n

    说明

    nnnn

    443端口是网络浏览端口,主要用于HTTPS服务。SSL模块启用后会自动放行443端口。若443端口未自动放行,可执行:

    nnnn

    vi /etc/apache2/ports.conf 并添加 Listen 443手动放行。

    n
    nnnn

    运行以下命令修改SSL配置文件default-ssl.conf:
    vi /etc/apache2/sites-available/default-ssl.conf
    在 default-ssl.conf文件中找到以下参数进行修改后保存并退出。

    nnnn
    ServerName#修改为证书绑定的域名 www.YourDomainName.comnnSSLCertificateFile /etc/apache2/www.YourDomainName_public.crt nn#将 /etc/apache2/www.YourDomainName.com_public.crt 替换为证书文件路径+证书文件名。 nnSSLCertificateKeyFile /etc/apache2/www.YourDomainName.com.key nn#将 /etc/apache2/www.YourDomainName.com.key  替换为证书秘钥文件路径+证书秘钥文件名。 nnSSLCertificateChainFile /etc/apache2/www.YourDomainName.com_chain.crt nn#将 /etc/apache2/www.YourDomainName.com_chain.crt  替换为证书链文件路径+证书链文件名。 nn/sites-available:该目录存放的是可用的虚拟主机;nn/sites-enabled:该目录存放的是已经启用的虚拟主机。 n
    nnnn
    n

    说明

    nnnn

    default-ssl.conf文件可能存放在 /etc/apache2/sites-available 或
    /etc/apache2/sites-enabled 目录中。

    n
    nnnn

    运行以下命令:

    nnnn

    sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

    nnnn

    把 default-ssl.conf 映射至 /etc/apache2/sites-enabled 文件夹中建立软链接、实现二者之间的自动关联

    nnnn

    运行以下命令:

    nnnn

    sudo /etc/init.d/apache2 force-reload

    nnnn

    重新加载Apache 2配置文件

    nnnn

    运行以下命令:

    nnnn

    sudo /etc/init.d/apache2 restart

    nnnn

    重启Apache 2服务

    nnnn

    后续操作 Apache 2服务重启成功后,您可在浏览器中输入 https://www.YourDomainName.com 验证证书安装结果。

    nnnn

    浏览器地址栏显示绿色的小锁标识说明证书安装成功。件名。 

    nnnn

    SSLCertificateKeyFile /etc/apache2/www.YourDomainName.com.key 

    nnnn

    #将 /etc/apache2/www.YourDomainName.com.key  替换为证书秘钥文件路径+证书秘钥文件名。 

    nnnn

    SSLCertificateChainFile /etc/apache2/www.YourDomainName.com_chain.crt 

    nnnn

    #将 /etc/apache2/www.YourDomainName.com_chain.crt  替换为证书链文件路径+证书链文件名。 

    nnnn

    /sites-available:该目录存放的是可用的虚拟主机;

    nnnn

    /sites-enabled:该目录存放的是已经启用的虚拟主机。 

    nnnn
    n

    说明 

    n
    nnnn

    default-ssl.conf文件可能存放在 /etc/apache2/sites-available 或 /etc/apache2/sites-enabled 目录中。 

    nnnn

    <br/>

    nnnn

    运行以下命令:

    nnnn

    sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf 

    nnnn

    把 default-ssl.conf 映射至 /etc/apache2/sites-enabled 文件夹中建立软链接、实现二者之间的自动关联

    nnnn

    运行以下命令:

    nnnn

    sudo /etc/init.d/apache2 force-reload 

    nnnn

    重新加载Apache 2配置文件

    nnnn

    运行以下命令:

    nnnn

    sudo /etc/init.d/apache2 restart 

    nnnn

    重启Apache 2服务

    nnnn

    后续操作 Apache 2服务重启成功后,您可在浏览器中输入 https://www.YourDomainName.com ; 验证证书安装结果。

    nnnn

    浏览器地址栏显示绿色的小锁标识说明证书安装成功。

    n
  • linux怎么添加root用户?

    n

    linux下添加用户并赋予root权限

    nnnn
      n
    • 添加用户,首先用adduser命令添加一个普通用户,命令如下:
    • n
    nnnn
    #adduser tommyn//添加一个名为tommy的用户    n#passwd tommy   //修改密码nChanging password for user tommy.    nNew UNIX password:     //在这里输入新密码nRetype new UNIX password:  //再次输入新密码npasswd: all authentication tokens updated successfully.n
    nnnn
      n
    • 赋予root权限
    • n
    nnnn

    方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉

    nnnn
    ## Allows people in group wheel to run all commandsn%wheel    ALL=(ALL)    ALLn
    nnnn

    然后修改用户,使其属于root组(wheel),命令如下:

    nnnn
    #usermod -g root tommyn
    nnnn

    修改完毕,现在可以用tommy帐号登录,然后用命令 su – ,即可获得root权限进行操作。

    nnnn

    方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

    nnnn
    ## Allow root to run any commands anywherennroot    ALL=(ALL)     ALLnntommy   ALL=(ALL)     ALLn
    nnnn

    修改完毕,现在可以用tommy帐号登录,然后用命令 sudo – ,即可获得root权限进行操作。

    nnnn

    方法三:修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:

    nnnn
    tommy:x:0:33:tommy:/data/webroot:/bin/bash
    n
  • mysql 新增、修改、删除 字段 sql语句

    n

    nnnn
    -- 在test_table 表的 valid_status 字段之后,新增一个字段,设置对应的类型,长度,是否为null,默认值,注释nnALTER TABLE test_table ADD COLUMN `is_staff` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否是从业人员 0否 1是' AFTER `valid_status`;n
    nnnn

    nnnn
    -- 删除test_table表的 test_value字段 nALTER TABLE test_table DROP COLUMN test_value;n
    nnnn

    nnnn
     -- 修改一个字段的类型nALTER TABLE test_table MODIFY test_value VARCHAR(10) NOT NULL DEFAULT '' COMMENT '字段注释';n     n-- 修改一个字段的名称,此时要重新指定该字段的类型nALTER TABLE test_table CHANGE test_value_old test_value_new VARCHAR(10) NOT NULL DEFAULT '' COMMENT '字段注释';
    n