服务器开放端口

有的时候服务/软件配置没有问题,就是无法访问,可能是你没有在主机上开放对应的端口。


防火墙设置

Error:注意:出于安全考虑不建议关闭防火墙!

centos命令:

#开放对应tcp端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#开放对应udp端口
firewall-cmd --zone=public --add-port=80/udp --permanent
#防火墙重载配置
firewall-cmd --reload

#临时关闭防火墙(不推荐)
systemctl disable firewalld
#禁用防火墙(不推荐)
systemctl stop firewalld

通用命令:

Error:注意:出于安全考虑不建议关闭防火墙!
#编辑防火墙规则
sudo vim /etc/sysconfig/iptables

#添加22端口tcp协议规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#添加22端口udp协议规则
iptables -A INPUT -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT

#检查防火墙规则
iptables -L -n

#保存防火墙的设置
serivce iptables save

#重启防火墙
service iptables restart

#永久开启防火墙
chkconfig iptables on
#永久关闭防火墙
chkconfig iptables off

#临时开启防火墙
service iptables start
#临时关闭防火墙
service iptables stop


云服务器控制台

这里以阿里云为例。

1. 首先打开控制台

打开控制台打开控制台

解决提示需要 GLIBC_2.18 问题

解决提示需要 GLIBC_2.18 问题

因为我这是linux,某些软件运行可能会提示需要 GLIBC_2.18

提示需要GLIBC_2.18提示需要GLIBC_2.18

当然,你可以使用下面的命令查看是否有GLIBC_2.18。

strings /usr/lib64/libc.so.6 | grep ^GLIBC_

检查是否安装GLIBC检查是否安装GLIBC

ps:mmp!就差2.18!

好吧,安!安装命令如下

Error:如果不懂请复制命令运行,注意检查不要复制错了!编译安装时间略长!请耐心等待。
#安装gcc和curl(一般默认都有,可以跳过)
sudo yum install gcc
sudo yum install curl

#获取glibc-2.18.tar.gz
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

#解压glibc-2.18源代码
tar zxf glibc-2.18.tar.gz

#进入目录
cd glibc-2.18/

#创建build目录
mkdir build
cd build/

#编译安装
../configure --prefix=/usr
make -j2
make install

OK,安装完毕

glibc-2.18安装成功glibc-2.18安装成功

PHP获取文件后缀名的7种方法

PHP获取文件后缀名(扩展名)的7种方法。

字符串截取

56916556427627.png56916556427627.png

$file_name = 'a.b.c.png';
echo strrchr($file_name, '.');
info:使用 strrchr() 函数找到字符 . 在字符串中最后出现的位置,并返回从该位置到字符串结尾的所有字符。

569171433075971.png569171433075971.png

$file_name = 'a.b.c.png';
echo substr($file_name, strrpos($file_name, '.'));
info:使用 strrpos() 函数找到字符 . 在字符串中最后一次出现的位置,然后使用 substr() 函数从该位置开始截取字符串。

数组分割

569172894770027.png569172894770027.png

$file_name = 'a.b.c.png';
$arr=explode('.', $file_name);
echo $arr[count($arr)-1];
info:使用 explode() 函数分割字符串到数组,然后返回数组的最后一个元素。

569171460915041.png569171460915041.png

$file_name = 'a.b.c.png';
$arr=explode('.', $file_name);
echo end($arr);
info:基本同上,这里使用 end() 函数返回数组的最后一个元素。

569171085222251.png569171085222251.png

$file_name = 'a.b.c.png';
echo strrev(explode('.', strrev($file_name))[0]);
info:strrev() 函数,反转字符串。这里先反转文件名字符串,然后使用 . 分割字符串并返回数组的第一个元素,最后再次反转。
warning:PS:个人感觉整个有一点简单问题复杂化。好处就是,不用判断数组长度了。

使用路径函数

56917619385548.png56917619385548.png

$file_name = 'a.b.c.png';
echo pathinfo($file_name)['extension'];
info:pathinfo() 函数以数组的形式返回文件路径的信息。
//`pathinfo()` 函数返回的数组包括以下的数组元素:
Array
(
[dirname] // 文件路径 “.”
[basename] // 文件名 “a.b.c.png”
[extension] // 文件扩展名 “png”
)

569171548380459.png569171548380459.png

$file_name = 'a.b.c.png';
echo pathinfo($file_name, PATHINFO_EXTENSION);

info:
基本同上。

可选的参数。规定要返回的数组元素。默认是 all。

  • PATHINFO_DIRNAME - 只返回 dirname
  • PATHINFO_BASENAME - 只返回 basename
  • PATHINFO_EXTENSION - 只返回 extension

部分内容参考 https://www.php.cn/php-weizijiaocheng-392130.html

windows server 2008 r2 开机不自动运行服务器管理器

windows server 2008 r2 开机不自动运行服务器管理器。

为啥要禁止这个呢?主要是因为我的NAS,性能一般,没事远程桌面联机都要卡半天。(更重要的是,我都配置好了,定期看看日志就行,每次弹出来太烦了。)

禁止自动运行服务器管理器方法:

  1. 打开服务器管理器
  2. 点击摘要
  3. 勾选 登陆时不要显示此控制台

2020-01-18_192645.png2020-01-18_192645.png

Git报错:Could not read from remote repository.

今天新建一个Git仓,远程提交的时候报 Could not read from remote repository. 错误。

具体报错如下:

$ git push -u origin master
ssh: Could not resolve hostname nas-pc192.168.199.102: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

2020-01-18_183224.png2020-01-18_183224.png


感觉可能是密钥出现问题。毕竟好久没用了。(这是个备份仓)

检查发现没有问题。(另一个项目提交没有问题)

2020-01-18_182636.png2020-01-18_182636.png


尝试添加密钥到这个仓库(仍然报错)

#若执行 ssh-add 报:Could not open a connection to your authentication agent. 错误,则先此命令(见下图)
ssh-agent bash

#添加密钥
ssh-add ~/.ssh/id_rsa

尝试添加密钥后仍报错尝试添加密钥后仍报错


观察发现,远程仓库地址不一致,怀疑问题出在这里。

仓库报错仓库报错

实际仓库地址实际仓库地址


重新添加地址,用单引号包裹,ok问题解决。

2020-01-18_183853.png2020-01-18_183853.png

远程仓库添加成功远程仓库添加成功


info:反思:这次问题可能是,命令行把 NAS-PC$@ 中的 $@ 识别为变量,导致地址错误。下次添加时候要用单引号包裹。