使用ShellExecuteEx应该注意的问题

ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS; 为这个参数时 应该调用CloseHandle(ShellInfo.hProcess);关闭句柄。
ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS|SEE_MASK_FLAG_NO_UI; 可以无UI界面的警告或者错误。
WaitForSingleObject(ShellInfo.hProcess, dwMilliseconds); 阻塞或指定时间等待结束。
GetExitCodeProcess(ShellInfo.hProcess, &dwReturn); 获取返回值。
ShellInfo.lpParameters = cmd; 如果这里含有路径 应该用双引号引起来。

登录vsftpd遇到的530问题

自己照着网上的教程安装vsftpd,完成后登录时直接530验证失败错误,可以确定是验证的问题。后来检查了N久,在另一台vps都没错,两台唯一的区别就是一台是64位的,一台32位的。最后搜索 64位 vsftpd 在一篇文章中有些注意 lib库 和 lib64库 的问题。

32位的应该这样:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

64位的应该这样:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

让lnmp支持tcmalloc

tcmalloc是什么东西?TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来让MySQL在高并发下内存占用更加稳定。(百度百科)
用网上的方法加入到lnmp的 mysql和nginx 是不行的。因为nginx是要编译的时候加进去的,mysql lnmp默认是全部静态编译的。
所以要修改lnmp的安装脚本,由于静态编译所以安装lnmp之前安装 tcmalloc。
64位系统的要装以下的 32位系统的忽略 {
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
tar xf libunwind-1.1.tar.gz
cd libunwind-1.1
./configure --enable-shared
make && make install
}

下载
wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
解压
tar xf gperftools-2.0.tar.gz
cd gperftools-2.0
配置
32位系统的 {
./configure --enable-shared
}
64位系统的 {
./configure --enable-shared --enable-frame-pointers
}
编译安装
make && make install
一切顺利的话
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig

下载
wget -c http://soft.vpser.net/lnmp/lnmp0.9-full.tar.gz
解压
tar xf lnmp0.9-full.tar.gz
cd lnmp0.9-full

修改安装脚本,我这里用的是 centos 的
vi ./centos.sh

让mysql支持tcmalloc
大概在306行 尾部增加
--with-mysqld-ldflags=-ltcmalloc
大概在308行 尾部增加
--with-mysqld-ldflags=-ltcmalloc

让nginx支持tcmalloc
大概在460行尾部增加
--with-google_perftools_module

wq退出保存后,执行./centos.sh 按平时安装lnmp

lnmp安装完成后还要修改一些nginx参数
mkdir -p /tmp/tcmalloc/
chown -R www:www /tmp/tcmalloc/
编辑
vi /usr/local/nginx/conf/nginx.conf
worker_rlimit_nofile 51200; 下面一行增加(反正在外面)
google_perftools_profiles /tmp/tcmalloc/;
wq 保存退出

然后重启lnmp
执行 lsof -n | grep tcmalloc 能看到说明成功了。
nginx 12256 www 9w REG 0,29 0 13011440 /tmp/tcmalloc/.12256
mysqld 13425 mysql mem REG 253,0 10685079 /usr/local/lib/libtcmalloc.so.4.1.0 (path dev=0,29)

UCenter连接出错1045

登录UC中心出现:
UCenter info: Can not connect to MySQL server
Error:Access denied for user 'root'@'localhost' (using password: YES)
Errno:1045

原因 因为近期更换数据库的 账号密码 忘了改一些配置文件
vi ./uc_server/data/config.inc.php
vi ./ucenter/data/config.inc.php
这两个文件

如果是更改数据库账号密码应该修改这些文件
vi ./uc_server/data/config.inc.php
vi ./ucenter/data/config.inc.php
vi ./config/config_global.php
vi ./config/config_ucenter.php

lnmp下Discuz! X2.5的伪静态规则

lnmp自带的discuzx.conf,在Discuz! X2.5下只有一部分能用像日志和插件什么的用不了。
在网上找到一段比较完美的
rewrite ^([^\\.]*)/topic-(.+)\\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\\.]*)/article-([0-9]+)-([0-9]+)\\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\\.]*)/forum-(\\w+)-([0-9]+)\\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\\.]*)/group-([0-9]+)-([0-9]+)\\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\\.]*)/space-(username|uid)-(.+)\\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\\.]*)/blog-([0-9]+)-([0-9]+)\\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\\.]*)/(fid|tid)-([0-9]+)\\.html$ $1/index.php?action=$2&value=$3 last;
rewrite ^([^\\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\\-]+)\\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
return 404;
}