PHP FastCGI Server: php5-fpm的配置
FPM配置文件位于/etc/php5/fpm下,包含main.conf(全局配置)和pool.d/*.conf。主要设定在pool.d下的*.conf文件,例如创建一个配置文件www.conf:
其中pm, pm.max_children等设置Fastcgi process manager能创建的child processes的个数。可以根据服务器的内存大小和网站所要承受的负载来调整恰当的值。
如果内存有限(例如使用VPS),则可以考虑将max_children设置得小一些以节省内存。
pm = dynamic
pm.max_children = 8
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
或者设置成静态个数:
pm = static
pm.max_children = 2
完后重启php5-fpm FastCGI server: sudo /etc/init.d/php5-fpm reload
Nginx下WordPresss URL静态化配置
在nginx.conf下添加以下配置,然后
serivce nginx restart
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
Linux下如何查看系统启动时间和运行时间
1.uptime命令
输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00
2.查看/proc/uptime文件计算系统启动时间
cat /proc/uptime
输出: 5113396.94 575949.85
第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间
代码:
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
输出: 2008-11-09 11:50:31
3.查看/proc/uptime文件计算系统运行时间
代码:
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
vsftpd 虚拟用户配置(Ubuntu 10.04环境下通过)
1.首先安装vsftpd和一些工具:
sudo apt-get install vsftpd libpam-pwdfile apache2-utils
PAM是负责认证连接的,apache2-utils主要是使用其中的htpasswd命令,来管理用户认证。
2.配置PAM来负责用户认证:
sudo vim /etc/pam.d/vsftpd
将其中的所有行都注释掉,我们要使用PAM-pwdfile来进行认证连接,其中的ftpd.passwd这个文件名字和路径一会儿我们就创建:
auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd
account required pam_permit.so
3.创建用户名密码文件
sudo htpasswd -c /etc/ftpd.passwd gnuhpc
其中gnuhpc是用户名,若以后想添加多个用户则使用
sudo htpasswd /etc/ftpd.passwd gnuhpc2
4.创建FTP主目录
我们创建/home/vftp这个目录,把它的权限设置为755
sudo mkdir –m 755 /home/vftp
然后将其owner改为ftp:
sudo chown ftp:ftp /home/vftp
5.配置vsftpd
sudo vim /etc/vsftpd.conf
修改以下配置选项,保留其余选项是默认就可以
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/home/vftp/$USER
hide_ids=YES
解释如下:
anonymous_enable=NO 不允许匿名
local_enable=YES 非匿名的登录方式必须打开的选项
write_enable=YES 设置是否可写
local_umask=022 设置umask,022选项表示755,具体参看Linux权限表示。
chroot_local_user=YES 限制用户的目录访问权限,即当用户登录FTP服务器后,不能访问自己目录以外的其他目录或文件
virtual_use_local_privs=YES 虚拟用户与本地用户使用同样的权限,默认是与匿名用户权限相同
guest_enable=YES 将所有非匿名登录都划归为guest登录,将这个虚拟用户映射到guest_username指定的本地用户
user_sub_token=$USER 自动进入虚拟用户名对应的主目录下的子目录,比如用户gnuhpc登录就会到local_root/gnuhpc这个目录下
local_root=/home/vftp/$USER 指定了用户登录以后直接到达的目录
hide_ids=YES 隐藏ID
6.添加用户目录
以gnuhpc这个用户为例,我们创建/home/vftp/gnuhpc这个目录,把它的权限设置为755
sudo mkdir –m 755 /home/vftp/gnuhpc
然后将其owner改为ftp:
sudo chown ftp:ftp /home/vftp/gnuhpc
7.重启服务:
sudo service vsftpd restart
这样我们就已经设置好了一个可上传下载的虚拟用户,以后添加用户的时候只用执行第3,6步和第7步就能添加新的虚拟用户了。
附1:若你想每一个用户都有自己的主目录和配置权限那么在vsftpd.conf中设置
user_config_dir=/etc/vsftpd/user
附2:若你想限制本地用户登录ftp请创建一个用户列表文件,举例我们创建/etc/vsftpd/user_list,内容为
gnuhpc
gnuhpc2
并且在vsftpd.conf中设置:
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list
那么只有这个列表上的用户可以登录。
Linux中JFreeChart项目汉字显示方块解决方案
刚挂一个项目到Linux下,WEB浏览发现Jfreechart图标中显示汉字全是乱码,经查是Linux系统没有安装中文字库,下来通过yum三条命令搞定
1 2 3 4 5 | yum install fonts-chinese yum install m17n-db-common-cjk yum install m17n-db-chinese |
重启tomcat,再次浏览,汉字正常显示!
通过mount磁盘备份数据
由于IDC中分析日志的服务器空间不足,需要备份每日分析出的日志数据库表文件,手里找了一台机器还有240G freedisk,刚好,就用它了。首先要将该服务器开启samba服务,通过yum install samba,安装好smb服务,需要在/etc/rc.d/rc.local中添加
1 2 | /usr/sbin/smbd -D & /usr/sbin/nmbd -D & |
开启smb服务之后,需要在日志分析服务器需要mount过来,命令简单
1 | smbmount //diskServerHost/DB_bak /home/DB_bak/ -o user=username,pass=pw,iocharset=utf8 |
当然需要在rc.local添加以上命令,以便于开机可以自动mount磁盘,通过df -h命令可以看到
1 | //diskServerHost/DB_bak 261G 79G 169G 32% /home/DB_bak |
,表示已经mount成功,现在可以写shell了
1 2 3 4 | #!/bin/sh cp /usr/local/mysql/data/test/`date -d"1 day ago" +"%Y_%m_%d"`.frm /home/DB_bak/ cp /usr/local/mysql/data/test/`date -d"1 day ago" +"%Y_%m_%d"`.MYD /home/DB_bak/ cp /usr/local/mysql/data/test/`date -d"1 day ago" +"%Y_%m_%d"`.MYI /home/DB_bak/ |
把上面的命令保存成.sh脚本,赋予执行权限,添加到crontab中
00 20 * * * /usr/local/hswreport/bin/cpMySQL_Table.sh,每日20点复制文件,这样计划任务就添加好了,每日服务器就可自动复制mysql日表到磁盘服务器,打完收工!