未来往事
尽量不给别人添麻烦。 [2017年 第50周/共52周]

2台机器之间的端口转发iptables

2台机器之间的端口转发iptables方式实现,场景:

两台机器,A机器能正常访问,B机器不能直接被访问,所以希望用A机器进行端口转发间接访问B机器,大致思路:
路由器 —— 指定端口nat到 ———- A机器————-iptables nat 到 ——————B机器的端口

iptables -t nat -A PREROUTING -i em3 -p tcp —dport 5080 -j DNAT —to 192.168.0.230:80
(后面这个ip是B机器的ip加端口,前面的em3是A机器的数据经过的网卡 5080是访问A机器的5080端口就转发到后面机器来)

iptables -t nat -A POST



......
+阅读全文

phpmyadmin Error during session start

错误详细描述:
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
错误截图:
点击在新窗口中浏览此图片

系统环境:
centos7 apache

错误原因分析:
服务端无法写入se......
+阅读全文

减少TCP连接中的TIME-WAIT sockets数

linux TIME-WAIT相关参数:
net.ipv4.tcp_tw_reuse = 0    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 0  表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_syncookies = 0   表示关闭SYN Cookies。
PS:/sbin/sysctl -a可以查看Linux各项内核参数

修改TIME-WAIT相关参数配置:
#vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 表示开启SYN Cooki
......
+阅读全文

删除目录下的所有.svn版本库目录_CentOS

程序开发过程中当使用了svn软件进行版本控制后,程序每个目录下都会有一个.svn目录存在,开发完当交付产品或上线时这些目录是冗余的需要进行删除,批量删除命令如下:
find . -type d -name ".svn"|xargs rm -rf  #先(递归)找到当前路径下含有 .svn的文件目录,再经xargs逐个删除

find . -type d -iname ".svn" -exec rm -rf {} \; #先(递归)找到.当前路径下含有.svn的文件目录,再删除
PS:-iname filename #同-name ,区别 -i 忽略大小写

扩展补充:......
+阅读全文

debian打开crontab日志

......
+阅读全文

linux查找替换目录下文件中包含的字符串-sed命令

linux查找替换目录下文件中包含的字符串-sed命令

查找文件夹下包含字符串的文件
例:查找/opt/web/blog目录下所有包含”demo.fity.cn”的文件。
grep -lr 'demo.fity.cn' /opt/web/blog/*


vim替换单个文件中所有字符串方法
例:替换当前文件中所有demo为blog
:%s/demo/blog/g
#注释:%表示替换说有行,g表示替换一行中所有匹配点


替换文件夹下包含字符串的文件
sed结合grep,例:将目录/opt/web/blog下所有文件中的demo.fity.cn都替换为fity.cn:
sed -i "s/demo.fity.cn/fity.cn/g" `grep de
......
+阅读全文

Thinkphp访问静态资源提示无法加载模块 nginx

......
+阅读全文

Debian安装LNMP报错Error:php not found

Debian安装LNMP报错Error:php not found
如果你在安装中遇到这类问题,建议对错误提示的组件部分进行单独安装或者你也可以将LNMP安装错误日志上传到官方论坛等待处理。本文博主未来往事在安装LNMP中遇到了Error:php not found的错误,最后通过运行LNMP组件中的php升级脚步单独安装php,最终成功安装了LNMP环境:./upgrade_php.sh

关于LNMP升级说明,参考《LNMP升级及Nginx、MySQL/MariaDB、PHP升级说明》
......
+阅读全文

SSH连接端口及监听IP地址修改

......
+阅读全文

PureFTPd安装配置 权限分离

Pure-FTPd FTP工具安装配置 权限分离
已知:服务器nginx web服务使用的账号及组为web web

1、Pure-FTPd软件安装配置(略)

2、编辑配置文件修改默认的21号端口为2199
#vi pure-ftpd.conf
Bind  0.0.0.0,2123 #监听的ip及端口,如果你的机器有多个ip,建议配置监听一个ip

3、创建ftp宿主账号和组:ftpuser
useradd ftpuser -s /usr/sbin/nologin

4、设置网站目录权限格式:
#ls -l
drwxr-xr-x 14 ftpuser web 4096 Dec 17 16:18 fity.cn
(或者ftp和web权限彻底分离,如果是ftp操作......
+阅读全文

Windows系统下访问Linux系统格式分区

linux系统下大多数都是用ext3/ext4文件系统系统,许多流行的linux发行版默认的文件系统就是ext3/ext4,正常我们在windows下是无法识别ext3/ext4分区.导致我们想要提取一些数据的时候而有心无力.Ext2Fsd可以让你在Windows系统中挂在linux的分区。

这里推荐两款可以在windows系统下识别linux分区格式的软件
1、Ext2Read 是一个能够读取etc2/etx3/ext4文件系统的工具。他支持LVM2和Ext4.可以查看和复制文件和文件夹,递归复制整个文件夹。
......
+阅读全文

使用awk统计日志文件中各IP次数

Linux统计日志文件中的IP数   linux下用awk统计日志中各个ip访问页面的次数
日志格式:
211.154.151.115 - - [25/Jun/2013:00:00:01 +0800] "GET /SeeHouse/index/childId/17051 HTTP/1.0" 200 10011 "http://fity.cn/17051.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; 2345Explorer)" 56.132.231.179

统计结果:
[root@iredmail 06]# awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}' newlog_20130624.log
29 222.73.31.71
17 221.194.30.104......
+阅读全文

zeroMQ/php-zmq消息队列安装配置

zeroMQ消息队列介绍及zeroMQ/php-zmq安装
首先了解下ZMQ的概念,ØMQ(ZeroMQ)是啥玩意儿?
ZeroMQ是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。
ZeroMQ是网络栈中新的一层,它是个可伸缩层,分散在分布式系统间。因此,它可支持任意大的应用程序。ØMQ不是简单的点对点交互,相反,它定义了分布式系统的全局拓扑。ØMQ应用程序没有锁,可并行运行。此外,它可在多个线程、内核和主机盒之间弹性伸缩。

与其他的消息队列相比,ZeroMQ有以下一些特点
1、点对点无中间节点
传统的消息队列都需要一个消息服务器来存储转发消息。而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致。以为消息服务器最终还是转化为服务器对其他节点的点对点消息传输上。ZeroMQ能缓存消息,但是是在发送端缓存。ZeroMQ里有水位设置的相关接口来控制缓存量。当然,ZeroMQ也支持传统的消息队列(通过zmq_device来实现)。
2、强调消息收发模式
在点对点的消息传输上ZeroMQ将通信的模式做了归纳,比如常见的订阅模式(一个消息发多个客户),分发模式(N个消息平均分给X个客户)等等。下面是目前支持的消息模式配对,任何一方都可以做为服务端。
• PUB and SUB
• REQ and REP
• REQ and XREP
• XREQ and REP
• XREQ and XREP
• XREQ and XREQ
• XREP and XREP
• PUSH and PULL
• PAIR and PAIR
3、以统一接口支持多种底层通信方式(线程间通信,进程间通信,跨主机通信)
如果你想把本机多进程的软件放到跨主机的环境里去执行,通常要将IPC接口用套接字重写一遍。非常麻烦。而有了ZeroMQ就方便多了,只要把通信协议从"ipc:///xxx"改为"tcp://*.*.*.*:****"就可以了,其他代码通通不需要改,如果这个是从配置文件里读的话,那么程序就完全不要动了,直接复制到其他机器上就可以了。以为ZeroMQ为我们做了很多。
4、异步,强调性能
ZeroMQ设计之初就是为了高性能的消息发送而服务的,所以其设计追求简洁高效。它发送消息是异步模式,通过单独出一个IO线程来实现,所以消息发送调用之后不要立刻释放相关资源哦,会出错的(以为还没发送完),要把资源释放函数交给ZeroMQ让ZeroMQ发完消息自己释放。

zeromq的官方网站: http://www.zeromq.org/

系统环境约定:
OS:centos 6.3 X64
web目录:/htdoc/web
软件临时存放目录:/opt/
zeromq安装目录:/usr/local/webserver/zeromq


一、安装zeromq
Tip:To build on UNIX-like systems,make sure that libtool, autoconf, automake are installed.
[root@iredmail opt]# wget http://download.zeromq.org/zeromq-3.2.3.tar.gz
[root@iredmail opt]# tar -zxvf zeromq-3.2.3.tar.gz
[root@iredmail opt]# cd zeromq-3.2.3
[root@iredmail zeromq-3.2.3]# ./configure --prefix=/usr/local/webserver/zeromq --with-pgm=libpgm-5.1.118~dfsg
(libpgm-5.1.118~dfsg位于zeromq-3.2.3/foreign/openpgm/目录下)
[root@iredmail zeromq-3.2.3]# make && make install
[root@iredmail zeromq-3.2.3]# ldconfig
官方文档:http://www.zeromq.org/area:download
Tip:If you get an error:configure: "error: cannot link with -luuid, install uuid-dev".Please install e2fsprogs-devel


二、安装php扩展
[root@iredmail zeromq-3.2.3]# cd..
[root@iredmail opt]# git clone git://github.com/mkoppanen/php-zmq.git
Tip: If you get an error of git command,please install git or use other download tools
[root@iredmail opt]# cd php-zmq
[root@iredmail php-zmq]# /usr/local/webserver/php5318/bin/phpize
Tip:
①/usr/local/webserver/php5318/is my php installation path;
②If you are using php installed from your distribution's package manager the 'phpize' command is usually in php-dev or php-devel package
[root@iredmail php-zmq]# ./configure --with-php-config=/usr/local/webserver/php5318/bin/php-config --with-zmq=/usr/local/webserver/zeromq
Tip:
①/usr/local/webserver/zeromq is my zeromq installation path;
②If you get an error:"checking libzmq installation... configure: error: Unable to find libzmq installation",please use param"--with-zmq" specify the zeromq installation path.
[root@iredmail php-zmq]# make && make install
Installing shared extensions:     /usr/local/webserver/php5318/lib/php/extensions/no-debug-non-zts-20090626/
表示生成了动态链接库文件zmq.so.这个时候可以查看一下目录里有没有zmq.so 这个文件.

Add the following line to your php.ini:
extension=zmq.so
OR:
If you are using PHP 5.4.x and/or using PHP-FPM, you will need to add a zmq.ini file in /etc/php5/conf.d:
Add the following:
extension=zmq.so
Restart php-fpm

访问phpinfo页面就可以看到zeroMQ的消息了:
点击在新窗口中浏览此图片

官方文档:http://www.zeromq.org/bindings:php
If you need an Java language environment,you can get client from:https://github.com/zeromq/jzmq
If you need an Python language environment,you can get client from:https://github.com/zeromq/pyzmq


三、实例测试
+阅读全文

HTTP/1.1 新建会话失败故障解决方法

故障描述:
今天一台windows2003服务器IIS站点页面访问突然报“HTTP/1.1 新建会话失败”错误,经过排查发现为有效内存过少,来源为COM+,分类为激活,事件:4238

原因分析:
服务器的资源耗尽,或者是IIS,或者内存,或者流量,或者CPU.......

解决方法:
重启IIS或DefaultAppPool或重启服务器。

补充说明:如果你的服务器该故障是因上述原因引起的,那么重新启动服务/服务器后问题就......
+阅读全文

CentOS下yum安装配置samba服务

Samba 是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
这些年来,Windows 和Linux 操作系统各自拥有自己的用户群和市场。然而在一般的公司或学校里,可能同时有Windows 和Linux 操作系统的主机。Windows 主机彼此间可利用“网上邻居”来访问共享的资源,NFS也能使Linux 主机之间实现资源共享。但如何能使Windows 主机和Linux主机之间实现资源共享呢?
微软的“网上邻居(就是Windows 上利用SMB通信协议实现资源共享的程序)”一经推出,便广受用户的好评,大家突然觉得原来要在网上共享资源尽是那么简单,有鉴于此,便有一些Linux 爱好者开始在Linux 主机上实现SMB通信协议,后来这个实现了SMB功能的软件既被称为 Samba ,它使得Windows 主机和Linux主机之间实现了资源共享。

注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目录拥有充分的读写权限属性,读者可顺着本文的思路完成基本配置流程,如需复杂读写权限功能请自行google。

系统信息约定:
操作系统:CentOS 6.3 X64
共享目录:/share/fity.cn

1、使用yum命令安装samba
# yum -y install samba     //-y参数:如遇询问自动选择y,全自动下载并安装samba

2、检查samba服务包的安装情况
# rpm -qa | grep samba
samba-common-3.0.33-3.7.el5_3.1    //服务器和客户端均需要的文件
samba-3.0.33-3.7.el5_3.1                 //服务器端文件

3、用whereis命令查看samba安装位置
# whereis samba
samba: /etc/samba /usr/lib/samba /usr/share/samba /usr/share/man/man7/samba.7.gz

4、配置samba服务
# vi /etc/samba/smb.conf
(1)[global]    //找到全局设置标签,在下面进行配置
workgroup =  WORKGROUP  //说明:设定 Samba Server 所要加入的工作组或者域
server string = Samba Server Version %v  //说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
; hosts allow = 192.168.1. 192.168.2. 127. 找到此行,去掉行首的“;”,并制定访问限制改为hosts allow = 192.168.1. 127.,指定内网IP地址及本地,只允许这两种情况的访问
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。

(2)配置最简单访问目录几个基本属性:
[share]    windows客户端查看时看到的文件夹名
path = /share/fity.cn    共享目录位置,要系统中存在的目录,也可以配置完再创建
read only = no
public   = yes

5、给配置的共享目录设置权限:
# mkdir /var/samba/share       如刚才配置的共享目录不存在则创建
# chown -R nobody. /var/samba/share       设置共享目录归属为 nobody
# chmod 777 /var/samba/share       将共享目录属性设置为 777

6、配置登录用户信息
+阅读全文