解决php-fpm启动了端口监听但是不能连接的问题

CentOS7里面重启了一下php-fpm,然后发现服务不能用了,查看php-fpm是否正常监听:

netstat -lpn|grep php-fpm

显示端口监听正常,但是网站就是不能访问,telnet端口显示连接被拒绝,查看php-fpm的运行日志:

tail -100f /var/log/php-fpm/error.log

看不到任何异常,php-fpm默认是不打开子进程的日志输出的,手动打开:

vim /etc/php-fpm.d/xx.conf

修改内容: 

catch_workers_output = yes

重启服务: systemctl restart php-fpm

错误日志终于出来了:

WARNING: [pool www] child 24297 said into stderr: "ERROR: Connection disallowed: IP address '202.x.x.x' has been dropped."

原来是IP不在允许访问列表内的原因,再次修改配置文件:

vim /etc/php-fpm.d/xx.conf

listen.allowed_clients = 127.0.0.1,202.x.x.x

 
重启服务: systemctl restart php-fpm

一切正常了

 

 

详细解析Linux scp命令的应用

Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程、从远程复制到本地是两种使用方式。这里有具体举例:

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

Linux scp 命令

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

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:

scp [可选参数] file_source file_target

======

从 本地 复制到 远程

======

* 复制文件:

* 命令格式:

scp local_file [email protected]_ip:remote_folder

或者

scp local_file [email protected]_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

* 例子:

scp -P 22222 /home/space/music/1.mp3 [email protected]:/home/root/others/music

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3

scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music

scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:

* 命令格式:

scp -r local_folder [email protected]_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

* 例子:

scp -r /home/space/music/ [email protected]:/home/root/others/

scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======

从 远程 复制到 本地

======

从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:

scp [email protected]:/home/root/others/music /home/space/music/1.mp3

scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

Linux scp命令的使用方法应该可以满足大家对Linux文件和目录的复制使用了。

linux下查看文件被哪个进程读写

一台服务器被写入了一个ddos木马,会在/root下生成一个conf.n的文件,删除后很快又会自动生成,用lsof没办法查出来谁在读写这个文件。此时可以使用stap来监控。
1、df
/dev/xvda1      20509308 10556432   8888020  55% /
找到对应目录挂载的磁盘
2、ls -al /dev/xvda1
brw-rw—- 1 root disk 2021 Dec 20 15:33 /dev/xvda1
找到磁盘在系统中对应的序号
3、stat -c '%i'  conf.n
920087
找到要监视的文件对应的系文件系统ID
4、wget https://raw.githubusercontent.com/soarpenguin/systemtap-script/master/inodewatch.stp
下载需要用到的脚本
5、stap inodewatch.stp 202 1 920087
开始监控指定文件
测试:cat conf.n
cat(25149) vfs_read 0xca00001/920087
cat(25149) vfs_read 0xca00001/920087
可以看到哪个命令、进程号访问了指定的文件

执行stap时,如果报错,错误内容为找不到系统debug库之类的,需要安装debuginfo库:

echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse
" | sudo tee -a /etc/apt/sources.list.d/ddebs.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01
apt-get updateapt-get install linux-image-$(uname -r)-dbgsym
centos下:
yum install systemtap kernel-devel debuginfo-install kernel

在windows中安装nginx服务

有的服务器难免使用windows操作系统,将nginx安装为windows系统服务后可以随系统自动启动,比较方便。由于nginx本身不提供安装服务的功能,因此需要借助于第三方工具实现,这里介绍其中的一种方式,通过winsw来安装系统服务。

在 https://github.com/kohsuke/winsw 这里可以找到winsw的下载链接,下载后可以放到任意地方,建议就放在和nginx相同的目录。winsw的运行需要DotNet3.5支持,高版本的windows一般不再自带DotNet3.5版本,运行winsw时会弹出对话框自动联网安装,如果网络比较慢,而电脑上刚好有windows的安装盘,可以将windows的安装盘载入后,用离线的方式安装DotNet3.5:

用管理员身份运行cmd窗口,输入以下命令:

Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:I:\sources\sxs /LimitAccess

其中红色标记的I需要替换成windows安装盘的实际盘符。很快DotNet3.5就离线安装好了。

在winsw.exe所在目录新建一个文件,命名为winsw.xml,内容如下:

<configuration>
  <id>nginx</id>
  <name>nginx</name>
  <description>A Http Server</description>

  <executable>D:\nginx-1.8.0\nginx.exe</executable>
  <arguments></arguments>
</configuration>

其中一些参数可以根据自己情况调整,保存后继续以管理员身份在cmd中输入如下命令:

winsw.exe install

执行成功后在系统服务中就可以看到nginx的服务出现了。

RHEL中yum环境设置

Ubuntu下的apt相当好用,可惜现在服务器的操作系统很少用到Ubuntu,大部分都是安装的Red Hat Enterprise Linux,RHEL的yum库要付费给Red Hat,所以需要把RHEL升级到CentOS,然后使用CentOS的免费yum库。

1.安装安全证书

rpm –import http://mirror.centos.org/centos-5/5/os/x86_64/RPM-GPG-KEY-CentOS-5

2.安装release package

rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/centos-release-notes-5.8-0.x86_64.rpm

rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/centos-release-5-8.el5.centos.x86_64.rpm

3.rpm -qa | grep yum

卸载 原有的yum

4. 装上新CentOS的yum

rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm

rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm

强制安装

rpm -Uvh –nodeps http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm

5.更新

yum update

至此便可以正常使用yum来管理软件包了