为PHP编译imap扩展(不需要重装PHP)

1、安装imap模块前需要先安装imap所需的库:
先:  yum -y install openssl
CentOS :yum install libc-client-devel
Debian:apt-get install libc-client-dev

2、首先进入php安装目录的ext目录 (php的源码目录)
比如php的安装目录为:/root/lnmp0.4-full/php-5.2.10/
则执行:cd /root/lnmp0.4-full/php-5.2.10/ext/
我们要安装imap模块,执行cd imap/

再执行 /usr/local/php/bin/phpize   (php的安装目录)会返回如下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

再执行以下命令编译:
[root@vpser imap]# ./configure –with-php-config=/usr/local/php/bin/php-config –with-kerberos=/usr –with-imap-ssl=/usr
[root@vpser imap]# make && make install

执行完返回结果:
Build complete.
Don’t forget to run ‘make test’.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

表示已经成功,再修改/usr/local/php/etc/php.ini
查找:extension = 再最后一个extension= 后面添加上extension = “imap.so”
保存, 重启。

用php探针检查一下imap 是否成功!

完毕!!

 

总结:看清楚安装过程中的错误,然后复制到网上搜索,寻找解决方法,这样是解决问题的最快方法!

phpMyAdmin开启“导出保存到务器上的Save文件夹”“导入从网站服务器上传文件夹upload中选择”方法

phpMyAdmin导入导出大型数据库最佳方案

版本越新越好吧,我也不知道你的版本能不能开这个功能!
php默认配置都有一个上传大小的限制,还有由于网络问题导入上传的时候会经常卡死,sql数据库文件太大就很难导入。
一个几百兆或几十兆的sql数据库文件用下图这个功能非常方便,但是phpMyAdmin默认是没有开启这个功能的,下面介绍如何开启此功能!

daoru

 

步骤1. 下载 phpMyAdmin (已经有了就不用下载了,直接开始第二部)

下载页面 http://www.phpmyadmin.net/home_page/downloads.php

phpMyAdmin-3.4.3.1-all-languages.zip

步骤2. 设置备份文件读取目录

新上传的 phpMyAdmin 目录下有一个 config.sample.inc.php 文件,我们将它改名为 config.inc.php 并打开编辑。

找到如下代码:
[cce]
$cfg[‘UploadDir’] = ”;
$cfg[‘SaveDir’] = ”;
[/cce]

更改为:

[cce]
$cfg[‘UploadDir’] = ‘upload’;
$cfg[‘SaveDir’] = ‘Save’;
[/cce]

 

步骤3. 创建目录和上传数据库文件

然后我们在 phpMyAdmin 的目录下创建两个空目录,upload 和 save,并且把要导入的数据库文件传送到 upload 目录下。

04

 

 

 

步骤4. 回到 phpMyAdmin 刷新一下导入的页面,就会看到改功能了!

daoru

 

 

 

有些主机,比如DA控制面板的主机,如果默认上传的是phpmyadmin,也传到public_html目录下,这样访问的地址其实也是:ip/phpmyadmin;这其实是访问的主机默认的phpmyadmin,这样是找不到 从网站服务器上传文件夹 的。

所以建议各位,尽量不要使用phpmyadmin,或者不要上传到public_html目录,可以在public_html下新家一个目录,上传也可以。

 

关于 save 文件夹

我们点击 phpMyAdmin 里的导出,可以看到 “保存到务器上的 save/ 文件夹中”。这时候你保存的数据库就存放在 save 目录下,你就可以通过 ftp 把文件拖回来喽。

06

 

 

这下子我们再也不会因为文件太大而导致 上传/备份下载 失败了!!

CENTOS架设PPTV VPN的方法 一键安装

Linux vps应用指南

很多朋友不会在CENTOS 在安装vpn,因为对于菜鸟来说安装VPN的确是个头晕的事情,特别是安装openvpn,不过安装pptp就稍微简单一点,国内网上有很多安装pptp的教程,但是都很繁杂,我在国外的网站上找到个一键安装PPTV VPN的解决办法,在这里跟大家分享一下。

下面是操作命令,当然你先要进入你的SSH

wget http://avps.pw/script/pptpd6.sh

这个命令是下载安装文件

sh pptpd6.sh

请用root帐号运行上面的命令,就会一键安装好PPTP了,完全全自动,安装结束,你的VPN用户名跟密码会自动显示在你的屏幕上面。

PPTP VPN 的帐号跟密码信息在 etc/ppp/chap-secrets 你可以用下面的命令进入文件进行修改

vi /etc/ppp/chap-secrets

操作就这么简单 希望能对大家有所帮助。

提示:

如果你有下面的错误

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 268: restorecon: command not found

你可以运行下这个命令:

yum install policycoreutils

原文:http://avps.pw/vpsapply/05142256213.html

Linux下载命令wget的使用方法

Linux vps应用指南

wget做为Linux里最常用的下载命令,在我们使用的Linux服务器中最常用到的几个命令中一定有wget的身影。尤其是国外服务器之间文件的下载wget的下载速度和飞一样的感觉。平时大家使用可能只是使用wget基本功能并没有带参数实现特定的功能,今天就给大家介绍一下详细的 wget 小技巧,可以让你更加高效而灵活的使用 wget。

$ wget -r -np -nd http://avps.pw/packages/
这条命令可以下载 http://avps.pw 网站上 packages 目录中的所有文件。
其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。
$ wget -r -np -nd –accept=iso http://avps.pw/centos-5/i386/
与上一条命令相似,但多加了一个 –accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。
$ wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。
$ wget -c http://avps.pw/really-big-file.iso
这里所指定的 -c 选项的作用为断点续传。
$ wget -m -k (-H) http://www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。
如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。
原文:http://avps.pw/vpsapply/05144110219.html

Linux命令基本常识

Linux vps应用指南

今天给大家普及下VPS日常使用中会遇到的各种基本的Linux命令及使用方法等信息。这里我将列出使用Linux vps过程中的常用命令,面向的对象是懂一点命令行的朋友,如果你没有任何命令行基础,建议找本Linux的基础教程来看看。或者多百度以下吧!

一、基本常识:

在讲具体的命令之前,先介绍一下Linux命令行的一些常识:

一条命令一般的格式是这样的:命令名称 [参数] [路径],[]代表可以省略,省略路径表示适用当前路径。

路径有相对路径和绝对路径两种,绝对路径是以根目录(“/”)为起点的,如/home/shine代表根目录下面home目录中的shine子目录,相对路径指的是以当前路径起点的路径,如当前路径为/home,shine/doc代表的绝对路径是/home/shine/doc,“.”代表当前目录,“..”代表上一级目录,例如前一个例子中使用./shine/doc效果是一样的。“~”代表的是当前用户的主目录,如果当前是以shine这个用户登录的,则~/doc也可以达到上面的效果。

如果你不知道一个命令怎么用,可以使用man这个命令来查阅,但一般我们只是记不清命令的具体参数,只要在命令名后加–help就可以了,如ls –help。

命令运行过程中如果想退出却不知道怎么做,一般应该可以尝试Ctrl+C、Ctrl+D、exit、logout、quit。

以下是一些日常使用中遇到的常见命令,先概括下大概以后再详细解释:

cd 改变路径,例如cd /可以把路径切换到根目录下,用户登录后的默认路径为自己的用户目录,使用过程中也可以通过cd或者cd ~回到用户目录。

ls 显示指定目录下的文件和目录,ls -a可以显示包括隐藏文件在内的所有内容,ls -l为列表显示。

su 切换到root身份登录

logout 注销

mkdir 新建目录,默认指定的路径中有不存在的父目录会出错,使用-p参数即可。

rm 删除文件,默认不能删除目录,使用-r参数可以递归删除目录及其内容。

mv 移动文件

cp 复制文件,默认不能复制目录,使用-参数可以复制目录及目录内的所有项目。

cat 显示文件内容

echo 回显输入的内容,可以用来显示一些环境变量的值,如echo $PATH

ln建立链接,有软链接和硬链接之分,一般用-s建立软链接。

tar打包程序,配上一些参数可以实现压缩/解压功能,一般我们在使用VPS中解压用得比较多,使用参数-xvf解压*.tar文件,使用-xzvf解压*.tar.gz,使用-xjvf解压*.tar.bz2,如果需要解压*.zip或者*.rar文件,需要安装相应的压缩软件,用unzip和 unrar命令解压。

df -h 查看硬盘使用情况

du -sh 查看该目录或文件的大小

top 查看进程状态,这里有一篇介绍。

free 参看内存状态

chmod 改变文件权限

chown 改变文件的所有者和所有组

yumCentOS/Fedora中的软件包管理器,在Ubuntu/Debian中使用的是apt软件包管理器。

nano/vi文本编辑器。

 

原文:http://avps.pw/vpsapply/05132512197.html

Linux vps mysql数据备份和恢复的方法

比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump
命令格式如下:
[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql
Enter password:在这里输入数据库的密码

通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。

[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sql
Enter password:在这里输入数据库管理员root的数据库密码

如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

#mysqldump -u root -p tm | gzip > tm_050519.sql.gz

这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
综上所述,我们学习时要学会变通。

 

恢复:
首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql
Enter password:在这里输入密码

如果机器好,数据库比较小,几分钟就好了。

如何导出数据库表的数据?(不同于备份哦)

#mysql

(#mysql>use linux;)#可有可无

#mysql>select * from linux.table-name into outfile “/home/table-name.txt”;

#/home/table-name.txt 可能会报错,如果这样去掉/home直接”table-name.txt”

默认保存在/var/lib/mysql/table-name.txt

对mysql数据库常用命令的一点补充;

几个常用的mysql相关的管理命令
mysql 命令:基本文本的,显示和使用的mysql数据库。前面已经简单的提过用法;比如登录等。
mysqladmin 命令,用来创建和维护mysql数据库的命令,前面已经简单的提过;
isamchk 是用来修复、检查和优化.ism后缀的数据库文件;
mysqldump 是用于备份数据库,前面已经简单的说明过;
myisamchk 用来修复.myi后缀的数据库文件;

比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;

要把mysqld服务器停下来
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop

然后执行
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI

上面的命令的意思就是检查所有的.myi文件,数据库的目录在/opt/mysql/var/linux/目录中

如果有问题,应该用-r参数来修复
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI

7]mysqlshow 命令:显示用户选择的数据库和表
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [数据库名]

比如我要查看名为linux的数据库;应该是:

[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux

 

原文地址:http://till.iteye.com/blog/468405

wdlinux无法登陆 一直提示“登陆超时”的解决方法

如在安装wdos集成版,或安装一键包或wdcp后,登录一直提示”登录超时”
经检查确认
导致该问题的原因,是系统的时间错误,也就是系统的时间,比当前的时间慢了很多
只要把时间修改正确,就可以修复

首先看下时间是否正确,SSH登录后
先用date命令查看下当前的日期和时间,如下显示
[root@wdos ~]# date
Wed Jun 20 23:09:17 CST 2012

如果显示不确定或不是当前时间,就用下面办法修复下
SSH终端上
执行
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -s 20120619
date -s 2308
hwclock -w

完成

注释:
date -s 20120619 //这个表示当前的日期,请使用实际日期代替
date -s 2308 //这个表示当前的时间,请使用时间代替
具体修改时,使用相应的日志和时间即可
如果日期没错,就只修改时间就可以

如果还不行,看下当前的日期日间是多少

Xen Linux VPS硬盘挂载教程(重装系统不丢数据)

由于现在的VPS磁盘容量越来越大,很多VPSer们也未必能用得到默认的容量,XenSystem初始化的根分区(第一磁盘“Xvda”)默认为10G,另外一个磁盘(第二磁盘“Xvdb”)为VPS总容量的剩余容量。如果单独挂载给/home,使用LNMP一键包等程序,在重装时在/home内的数据就不会丢失了。非常适合热爱折腾的客户。 注意:MYSQL数据并没保存在/home,重装前请注意备份。

一、查看当前硬盘情况

[cce]fdisk -l[/cce]
如图,新安装的VPS,Xvdb(第二块虚拟硬盘)尚未被激活。
4224262811

二、新建分区

[cce]fdisk /dev/xvdb[/cce]

SSH执行以上命令,会提示下方填写区域(见黄色字)

11

如下图。
2

三、再次执行fdisk命令查看当前分区状态

[cce]fdisk -l[/cce]
如下图,第二硬盘被激活,并创建了一个分区。
3
若没有问题则写入系统内核。
[cce]partprobe #若没有问题则执行此命令写入内核[/cce]
如果提示命理没找到就运行这个:yum -y install parted

四、将分区格式化为ext3

[cce]mkfs.ext3 /dev/xvdb1[/cce]
SSH执行以上命令后,成功提示如下图:
 4

五、挂载到/home

[cce]mount /dev/xvdb1 /home[/cce]
SSH执行以上命令,将第二硬盘挂载到/home分区。
[cce]df -l[/cce]
SSH执行以上命令,查看挂载状态,成功如下图:
5

六、写入挂载文件

[cce]echo "/dev/xvdb1 /home ext3 defaults 1 3" >> /etc/fstab[/cce]
SSH执行以上命令,写入/etc/fstab,开机时自动挂载。

七、重装系统后恢复方法

在XenSystem中,选择“只格式化系统盘:(推荐)”。安装完毕后,尝试第五步开始。 6

Nginx 504 Gateway Time-out和502 Bad Gateway

在CentOS下配置lnmp组合基本上用的都是同样的配置文件,一直都没出现过问题,可最近在一个vps上安装同样的环境之后,网站在线10多人就出 现了打开速度非常缓慢的情况,有好几次都是直接达到了nginx中设置的脚本最大超时时间300秒,结果导致nginx往客户端浏览器发送了一个504 Gateway Time-out的错误代码,分析了之后改动了几处配置文件,终于避免了该情况的出现。

从错误代码基本可以确定跟nginx本身无关,主要是提交给php-fpm的请求未能正确反馈而导致,一般情况下,提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器,但 我这个vps目前跑的是个纯php应用内容,实际上用户所有的请求都是php请求,有的耗费时间比较久,php-cgi进程就一直都被用满,而php- fpm本身的配置文件只打开了10组php-cgi进程,这样的话在线用户稍微多的话就会导致请求无法被正常处理而出错。

大概分析出了原 因,下面做就比较容易了,首先是更改php-fpm的几处配置:

把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;
把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

接着再更改nginx的几个配置项,减少FastCGI的请求次 数,尽量维持buffers不变:

fastcgi_buffers由 4 64k 改为 2 256k;
fastcgi_buffer_size 由 64k 改为 128K;
fastcgi_busy_buffers_size 由 128K 改为 256K;
fastcgi_temp_file_write_size 由 128K 改为 256K。

好了,重新加载php-fpm和nginx的配置,再次测试,至今两周时间内没有再出现504 Gateway Time-out的情况,算是达到效果了。
另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。
apache-like
从更改完毕到现在的测试表明上述方式的效果还是很明显的,并没有发现一次Nginx502 bad gateway或504 Gateway Time-out错误。当然,如果你的VPS或者服务器的性能足够好可以根据具体情况不必做无谓的改动。

关于lnmp一键安装包的nginx 502 Bad Gateway错误
第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。

解决方法:
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。我们给你分析一下错误原因。

第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间http://www.vpser.net/manage/delete-mysql-mysql-bin-0000-logs.html

第六种原因:
查看php-cgi进程是否在运行
1、调整php-fpm.conf的相关设置(lnmpa没有此文件)
80
30s
2、调整nginx.conf的相关设置
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
3、编辑:/usr/local/apache/conf/extra/下的httpd-vhosts.conf文件
查找:
php_admin_value open_basedir
修改为:
php_admin_value open_basedir “/home/wwwroot:/tmp/:/var/tmp/:/proc/:/etc/”
(#或者直接将它注释掉)
然后,重启LNMPA。
/root/lnmpa restart
打开/usr/local/php/etc/,编辑php.ini文件:
max_execution_time 设置为0

LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法[转]

第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功
解决方法:
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。如果实在不会提供按http://lnmp.org/install.html这个安装时的lnmp.log日志文件(可以用winscp登陆下载lnmp.log,压缩并上传到本论坛),没有错误信息我们没法说什么原因。

第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf (lnmpa没有此文件)将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。

第六种原因:
查看php-cgi进程是否在运行

第七种原因:
将nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都调大一点。

第八种可能原因:http://bbs.vpser.net/thread-1654-1-1.html

九、也可以尝试将unix套接字改成tcp/ip的,修改/usr/local/php/etc/php-fpm.cnf 里设置/tmp/nginx.socket改成127.0.0.1:9000,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_pass unix:/tmp/php-cgi.sock; 替换为fastcgi_pass 127.0.0.1:9000; 之后重启试试。

十、如果虚拟主机的日志文件过大也可能会造成502问题。
建议定期清空一下虚拟主机的日志文件。

十一、有些程序或者程序的主题有死循环或其他非常占用资源的代码也可能会引起502,可以尝试暂时注释掉可能的主机的配置文件,重启看看是否还会502。

十二、如果以上方法都试过,但还有时会出现502错,可以尝试添加502自动重启脚本:http://chenyouyi.com/285