Posts Tagged file

more than 400 attempts to create a session failed

使用WHM->Transfers >> Copy an account from another server with account password方法迁了个cpanel帐号到新的VPS上,迁成功后,打开CPANEL,报错如下:

more than 400 attempts to create a session failed

查了下,是VPS上的Inodes 数目太小了,一下子全用光,造成无法创建新的文件

服务器上的网站也因为无法创建mysql缓存而无法正常显示

ssh登陆,用df -i命令查看:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
vzfs                  200000  200000       0  100% /
none                 1020063      95 1019968    1% /dev

果然用满了,但之前的另一台VPS里,最大Inodes是2000000,这次的这台VPS明显Inodes数太小了

联系服务器提供商,写信如下:

Please increase the inode for my vps, thanks!

Below is the df -i result:

……

希望能快点解决

另外,临时的解决方法是,先删了一些文件量大但没用的目录,让服务器先可以正常访问

  • Share/Bookmark

Tags: , , , , , ,

cPanel还原全部备份

cPanel里的备份选项可以生成全部备份(full backup)或部份备份,部份备份是可以在cPanel里面实现还原的,但全部备份则需要使用WHM的权限和功能才能进行

先传输全部备份到目标服务器上,WHM可以自动检测的路径只有下面几个:

/home, /home2, /home3, /root, /usr, /usr/home, /web

在WHM里面选择功能:

Main >> Backup >> Restore a Full Backup/cpmove file

如果备份文件和保存路径没问题的话,会自动检测出备份文件

输入要还原的备份文件的主帐号,cPanel生成的全部备份都会有帐号标识

当然,这个帐号和目标服务器上的cPanel帐号不能有重复

然后点击Restore,OK,成功,WHM会自动创建一个和原虚拟主机一样的cPanel帐号并将数据完整导入

连所有帐号密码都没有改变,只是虚拟主机IP变了

  • Share/Bookmark

Tags: , , , ,

CentOS 5.x系统服务优化详解

下面的建议主要是针对 Linux 单机服务器的角色来说明的,不是针对桌面环境

服务名称 功能简介
acpid (系统)进阶电源管理的介面,这是一个新的电源管理模组, 可以监听来自核心层的电源相关事件而予以回应。 CentOS 的设定档在 /etc/acpi/events/power.conf 中,预设仅有当你按下 power 按钮时,系统会自动关机!

anacron(可关闭) (系统)与循环型的工作排程 cron 有关,可在排程过期后还可以唤醒来继续执行, 设定档在 /etc/anacrontab。

apmd(可关闭) (系统)设定档在 /etc/sysconfig/apmd ,也是电源管理模组! 可侦测电池电量,当电池电力不足时,可以自动关机以保护电脑主机。

atd (系统)单一的例行性工作排程,抵挡机制的设定档在 /etc/at.{allow,deny}

auditd (系统)可以让系统需 SELinux 稽核的讯息写入 /var/log/audit/audit.log 中。若此服务没有启动,则讯息会传给 syslog 管理。

autofs(可关闭) (系统)可用来自动挂载来自网路上的其他伺服器所提供的网路磁碟机 (一般是 NFS)。 不过我们是单机系统,所以目前还没必要这个服务。

avahi-daemon(可关闭) (系统)也是一个用户端的服务,可以透过 Zeroconf 自动的分析与管理网路。 Zeroconf 较常用在笔记型电脑与行动装置上,所以我们可以先关闭他!

bluetooth(可关闭) (系统)用在蓝芽装置的搜寻上,如果 Linux 是当作伺服器使用时, 这个服务可以暂时关闭也没关系!

cpuspeed (系统)可以用来管理 CPU 的频率功能。若系统闲置时,此项功能可以自动的降低 CPU 频率来节省电量与降低 CPU 温度喔!

crond (系统)系统设定档为 /etc/crontab。

cups(可关闭) (网路)用来管理印表机的服务,可以提供网路连线的功能,有点类似列印伺服器的功能哩! 你可以在 Linux 本机上面以浏览器的 http://localhost:631 来管理印表机!由于我们目前没有印表机,所以可以暂时关闭他。

firstboot(可关闭) (系统)还记得系统第一次进入图形介面还需要进行一些额外的设定吗? 就是这个服务的帮忙啦!既然已经安装妥当,现在你可以将这个服务关闭啰。

gpm (系统)在 tty1~tty6 的环境下你竟然可以使用滑鼠功能来复制贴上,就是这个 gpm 提供的能力啦!

haldaemon(可关闭) (系统)通常用在桌上型电脑的环境中,可侦测类似 usb 的装置呢! 不过,如果是伺服器环境,这个服务倒是可以关闭啦!如果是桌上型电脑,那最好可以启动啰!

hidd(可关闭) (系统)也是蓝芽服务的功能啦!可以提供键盘、滑鼠等蓝芽装置的侦测哩! 须搭配 bluetooth。伺服器环境倒是不需要此项服务。

hplip(可关闭) (系统)主要是针对 HP 的印表机功能所开发的脚本服务,如果你的环境中并没有 HP 相关设备,这个服务就给他关闭吧!

ip6tables(可关闭) (网路)是针对本机的防火墙功能!这个防火墙主要是针对 IPv6 的版本, 如果你的网路环境并没有 IPv6 的设备,那么这个服务是可以关闭的。

iptables (网路)本机防火墙功能,是核心支援的呢!所以功能与效能都非常棒!当然不能够取消啊! 只是设定上就得要努力研究啦!我们会在伺服器篇介绍网路相关资讯的。

irqbalance (系统)如果你的系统是多核心的硬体,那么这个服务要启动, 因为它可以自动的分配系统中断 (IRQ) 之类的硬体资源。

isdn(可关闭) (网路)ISDN 是一种宽频设备 (数据机的一种) ,但是在台湾我们比较常使用 ADSL 及光纤设备, 所以这个服务是可以关闭啦。

kudzu(可关闭) (系统)如果你有增加新的硬体时,这个服务可以在开机时自动的侦测硬体, 并且会自动的呼叫相关的设定软体,方便你在开机时就处理好你的硬体啊!

lm_sensors(可关闭) (系统)这个服务可以帮你侦测主机板的相关侦测晶片,举例来说, 某些主机板会主动的侦测 CPU 温度、频率、电压等,这个 lm_sensors 能够将这些温度、频率等数据显示出来喔!

lvm2-monitor (系统)我们已经谈过 LVM 啰!所以我们当然要启动这个服务比较妥当。

mcstrans (系统)与 SELinux 有关的服务,最好也启动啊!

mdmonitor(可关闭) (系统)可以侦测所有软体的状态,暂时似乎也不需要启动这个服务哩!

messagebus(可关闭) (系统)可用来沟通各个软体之间的讯息,有点类似剪贴簿的感觉。 不过在伺服器环境则没有强烈需求就是了。

microcode_ctl(可关闭) (系统)Intel 的 CPU 会提供一个外挂的微指令集提供系统运作, 不过,如果你没有下载 Intel 相关的指令集档案,那么这个服务不需要启动的,也不会影响系统运作。

netfs(可关闭) (网路)可以进行网路磁碟机 (NFS, SMB/CIFS) 的挂载与卸载功能。 目前我们尚未使用网路,因此这个服务可以先关闭。

network (网路)提供网路设定的功能,所以一定要启动的啦!

nfslock(可关闭) (网路)NFS 为一种 Unix like 的网路磁碟机,但在进行档案的分享时, 为了担心同一档案多重编辑的问题,所以会有这个锁住 (lock) 的服务!可以避免同一个档案被两个不同的人编辑时所造成的档案错误问题。

pcscd(可关闭) (系统)智慧卡侦测的服务,可以关闭他啦。

portmap (网路)用在远端程序呼叫的服务,很多服务都使用这个玩意儿来辅助连线的, 因此建议不要取消他,除非你确定你的系统没有使用到任何的 RPC 服务喔!

readahead_early
readahead_later
(可关闭) (系统)在系统开机的时候可以先将某些程式载入到记忆体中,以方便快速的载入, 可加快一些启动的速度。

restorecond (系统)利用 /etc/selinux/restorecond.conf 的设定来判断当新建档案时,该档案的 SELinux 类型应该如何还原。需要注意的是,如果你的系统有很多非正规的 SELinux 档案类型设定时,这个 daemon 最好关闭,否则他会将你设定的 type 修改回预设值。

rpcgssd
rpcidmapd
(可关闭) (网路)与 NFS 有关的用户端功能,在你还没有玩到网路阶段时, 这两个咚咚也能够先取消啦!

sendmail (网路)这就是电子邮件的软体啊!我们想要拥有可寄信的功能时, 这个服务可不能关闭。不过,预设这个服务仅能支援本机的功能,无法收受来自网际网路的邮件喔!

setroubleshoot (系统)一定要启动啊!因为这玩意儿可以将你的 SELinux 相关讯息记录在 /var/log/messages 里面,非常有帮助喔!

smartd (系统)这个服务可以自动的侦测硬碟状态,如果硬碟发生问题的话, 还能够自动的回报给系统管理员,是个非常有帮助的服务喔!不可关闭他啊!

sshd (网路)这个是远端连线伺服器的软体功能, 这个通讯协定比 telnet 好的地方在于 sshd 在传送资料时可以进行加密喔!这个服务不要关闭他啦!

syslog (系统)这个服务可以记录系统所产生的各项讯息, 包括 /var/log/messages 内的几个重要的登录档啊。

xfs(可关闭) (系统)这个是 X Font Server,主要提供图形介面的字型的一个服务, 如果你不启动 X 视窗的话,那么这个服务可以启动。但是如果你有需要用到 X 时,一定要启动这玩意儿,否则图形介面是无法启动的喔。

xinetd (系统)就是 super daemon 啊,不必讲了吧 ^_^

yum-updatesd (可关闭)可以透过 yum 的功能进行软体的线上升级机制, 若有升级的软体释出时,就能够以邮件或者是 syslog 来通知系统管理原来手动升级啊。

上面的服务是 CentOS 5.x 预设有启动的,这些预设启动的服务很多是针对桌面电脑所设计的,所以啰,如果你的 Linux 主机用途是在服务器上面的话,那么有很多服务是可以关闭的啦!如果你还有某些不明白的服务想要关闭的, 请务必要搞清楚该服务的功能为何喔!举例来说,那个 syslog 就不能关闭,如果你关掉他的话,系统就不会记录登录档, 那你的系统所产生的警告讯息就无法记录起来,你将无法进行 debug 喔。

下面继续说明一些可能在你的系统当中的服务,只是预设并没有启动这个服务就是了。只是说明一下, 各服务的用途还是需要您自行查询相关的文章啰。

其他服务的简易说明
服务名称 功能简介
dovecot (网路)可以设定 POP3/IMAP 等收受信件的服务,如果你的 Linux 主机是 email server 才需要这个服务,否则不需要启动他啦!
httpd (网路)这个服务可以让你的 Linux服务器成为 www server 喔!
named (网路)这是域名解析服务器 (Domain Name System) 的服务, 这个服务非常重要,但是设定非常困难!目前应该不需要这个服务啦!
nfs (网路)这就是 Network Filesystem,是 Unix-Like 之间互相作为网路磁碟机的一个功能。
ntpd (网路)服务的全名是 Network Time Protocol ,这个服务可以用来进行网路校时, 让你系统的时间永远都是正确的哩!
smb (网路)这个服务可以让 Linux 模拟成为 Windows 上面的网路上的芳邻。 如果你的 Linux 主机想要做为 Windows 用户端的网路磁碟机服务器,这玩意儿得要好好玩一玩。
squid (网路)作为代理服务器的一个服务,可作为一个区域网路的防火墙之用。
vsftpd (网路)作为档案传输服务器 (FTP) 的服务。

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

CentOS 5 优化方案

系统环境部署及调整
检查系统是否正常
# more /var/log/messages (检查有无系统内核级错误信息)
# dmesg (检查硬件设备是否有错误信息)
# ifconfig(检查网卡设置是否正确)
# ping www.163.com (检查网络是否正常)

[1] 停止打印服务

  如果不准备提供打印服务,停止默认被设置为自动启动的打印服务。

root@sample ~]#/etc/rc.d/init.d/cups stop ← 停止打印服务
Stopping cups:            [OK]    ← 停止服务成功,出现“OK”

[root@sample ~]#chkconfig cups off ← 禁止打印服务自动启动

[root@sample ~]#chkconfig –list cups ← 确认打印服务自启动设置状态
cups0:off 1:off 2:off 3:off 4:off 5:off 6:off ← 0-6都为off的状态就OK(当前打印服务自启动

被禁止中)
[2] 停止ipv6

  在CentOS默认的状态下,ipv6是被启用的状态。因为我们不使用ipv6,所以,停止ipv6,以最大限

度保证安全和快速。

  首先再次确认一下ipv6功能是不是被启动的状态。

root@sample ~]#ifconfig -a ← 列出全部网络接口信息

eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame.:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0×1400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame.:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)

sit0 Link encap:IPv6-in-IPv4 ← 确认ipv6是被启动的状态
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame.:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
  然后修改相应配置文件,停止ipv6。

[root@sample ~]#vi /etc/modprobe.conf ← 修改相应配置文件,添加如下行到文尾:

alias net-pf-10 off
alias ipv6 off

[root@sample ~]#shutdown -r now ← 重新启动系统,使设置生效

[3]Centos5中自带的源就蛮好了,一装完我就yum install -y rdesktop了,建议保留,再加system-config-packages,装程序会事产功倍

[4]使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel

[5] 修改命令history记录
# vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=200

[6] 对TCP/IP网络参数进行调整,加强抗SYN Flood能力
# echo ‘net.ipv4.tcp_syncookies = 1′ >> /etc/sysctl.conf
# sysctl -p

[7]关闭不需要的服务
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律关闭:
crond
irqbalance (仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。)
microcode_ctl
network
random
sendmail
sshd
syslog

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , , , , , , , ,

通过网页按钮启动本地程序

<SCRIPT language=JavaScript>
function Run(strPath) {
exe.value=strPath;
try {
var objShell = new ActiveXObject(“wscript.shell”);
objShell.Run(strPath);
objShell = null;
}
catch (e){alert(‘找不到文件”‘+strPath+’”(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。’)

}
}
</SCRIPT>

请输入要运行的程序:<br><input name=exe type=text size=20 value=”regedit”><BUTTON onclick=”Run(exe.value)”>确定</BUTTON><BUTTON onclick=exe.value=”";>重新输入</BUTTON><br>
<BUTTON onclick=”Run(‘notepad’)”>记事本</BUTTON><br>
<BUTTON onclick=”Run(‘mspaint’)”>画图板</BUTTON><br>
<BUTTON onclick=”Run(‘calc’)”>计算器</BUTTON><br>
<BUTTON onclick=”Run(‘cmd’)”>cmd</BUTTON><br>
<BUTTON onclick=”Run(‘Regedit’)”>Regedit</BUTTON><br>
<BUTTON onclick=”Run(‘Msconfig’)”>Msconfig</BUTTON><br>
<BUTTON onclick=”Run(‘file:///D:/Program%20Files/Winamp/WINAMP.EXE’)”>WINAMP</BUTTON><br>
<BUTTON onclick=”Run(‘IEXPLORE.EXE’)”>IE</BUTTON><br>
<BUTTON onclick=”Run(‘..’)”>..</BUTTON><br>
<BUTTON onclick=”Run(‘%windir%’)”>%windir%</BUTTON><br>
<BUTTON onclick=”Run(‘%temp%’)”>%temp%</BUTTON><br>
<BUTTON onclick=”Run(‘file:///D:/Program%20Files/Tencent/qq.EXE’)”>WINAMP</BUTTON>

前提要求有两个:

一、安装 wscript.shell:

在cmd下运行: 
         regsvr32 WSHom.Ocx 安装
         regsvr32 WSHom.Ocx  /u   卸载

二、internet选项:

安全->自定义级别->对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本

开启这一项

  • Share/Bookmark

Tags: , , , , , , ,

通过flashfxp和windows计划任务定时备份FTP

需要一款能定时备份FTP数据的软件,网上找了下,只有搜索结果绿环FTP数据备份v1.4比较常见且免费

但下下来一开NOD就报木马,干脆不用了,因为在windows server 2008根本不是木马不木马的问题,直接运行不了

只好通过flashfxp来设定

先队列好要备份的数据,并设置好文件存在规则,然后退出非空队列

在flashfxp程序根目录下会生成一个以日期命名的fqf文件,这在flashfxp启运时会自动提醒我们载入

把这个文件重命名下,如重命名为backup.fqf,就不会被flashfxp软件自动识别了

然后写个.bat脚本,并加入到windows的计划任务即可

脚本内容可如下:

taskkill /IM flashfxp.exe
cd D:\Program Files\FlashFXP
D:
start flashfxp.exe backup.fqf

只作参考

  • Share/Bookmark

Tags: , , , , , ,

cPanel没有backup选项的解决方法

买了个VPS,发现cPanel界面里没有backup选项,这个选项一般是在Files目录里的

强行进去,即通过frontend/x3/backup/index.html地址进入backup功能,可以操作,但操作并得不到执行

其实是因为whm里没有设置好,因为使用的是默认设置,不同的服务器商可能默认设置也不同

具体设置方法如下:

进入WHM->Main >> Packages >> Feature Manager

编辑Default Feature List,如果你的packages使用的是它的话

勾选 Backup Manager    Backup Wizard 两个选项即可

Packages >> Feature Manager里面的设置是开启相应的cpanel功能,说明如下:

The feature manager allows you to disable/enable features inside of each users cPanel. Once you build a feature list you should edit the package you wish to assign it to and add the feature list.

The feature lists for cPAddons (user installable scripts) can be found by following the link in the feature list editor
Two special feature lists called “default” and “disabled” will affect all users.

  • Share/Bookmark

Tags: , , , ,

nginx文件类型错误解析漏洞(80sec)

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。
漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问

将会得到一个URI
/80sec.jpg/80sec.php
经过location指令,该请求将会交给后端的fastcgi处理,nginx为其设置环境变量SCRIPT_FILENAME,内容为
/scripts/80sec.jpg/80sec.php
而在其他的webserver如lighttpd当中,我们发现其中的SCRIPT_FILENAME被正确的设置为
/scripts/80sec.jpg
所以不存在此问题。
后端的fastcgi在接受到该选项时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用,所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为
/scripts/80sec.jpg和80sec.php
最后,以/scripts/80sec.jpg作为此次请求需要执行的脚本,攻击者就可以实现让nginx以php来解析任何类型的文件了。

http://www.80sec.com/80sec.jpg/80sec.php

 

POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:

访问http://www.80sec.com/robots.txt
HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:05:30 GMT
Content-Type: text/plain
Content-Length: 18
Last-Modified: Thu, 20 May 2010 06:26:34 GMT
Connection: keep-alive
Keep-Alive: timeout=20
Accept-Ranges: bytes

访问访问http://www.80sec.com/robots.txt/80sec.php
HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:06:49 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.2.6

其中的Content-Type的变化说明了后端负责解析的变化,该站点就可能存在漏洞。

漏洞厂商:http://www.nginx.org

解决方案:

我们已经尝试联系官方,但是此前你可以通过以下的方式来减少损失
关闭cgi.fix_pathinfo为0
或者
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

  • Share/Bookmark

Tags: , , , , , , , , , , ,

WHM pureftpd启动失败

在进行WHM设置时,选择了pureftpd,配置了参数,并重启,但显示重启失败

Waiting for ftpserver to restart…………..finished.
ftpserver has failed, please contact the sysadmin.

联系管理员,毛都不回

只好自己进服务器看,通过find命令查找到

/usr/local/cpanel/etc/init/scripts/centos/pureftpd 脚本并执行

但报错了,意思是没找到这个文件:/usr/sbiStarting : auth_ok:0
end
WARNING: initlog is deprecated and will be removed in a future release
execvp: No such file or directory
WARNING: initlog is deprecated and will be removed in a future releasen/pure-authd

又find了一下,是有个长得差不多的文件:/usr/sbin/pureauth

试着把该文件改了下名,再执行,OK了:

Starting : auth_ok:0
end
WARNING: initlog is deprecated and will be removed in a future release
execvp: No such file or directory
WARNING: initlog is deprecated and will be removed in a future release

但似乎还有点问题,出现警告了,不管

到WHM里面重启FTP服务,也是OK

  • Share/Bookmark

Tags: , , , , , , , ,

php远程下载文件到服务器

由于所买的虚拟主机没有申请SSH或根本不提供SSH访问,无法直接在shell里用get命令获取远程数据,在转移数据时只能通过FTP下载到本地再上传到另一台主机上,速度很慢,如果能直传就好了

解决方法如下,写个PHP文件在A主机上,直接通过PHP脚本下载B主机上的文件到A主机,代码如下:

<form method=”post”>
文件地址:<input name=”url” size=”50″ /><br>
操作密码:<input name=”pwd” size=”30″ />
<input name=”submit” type=”submit” />
</form>
<?php
$pwd=’abcd’;
if ($_POST['pwd']!=$pwd)
exit(‘Sorry ,you are not validate user!’);
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();
// folder to save downloaded files to. must end with slash
$destination_folder = ‘temp/’;
 
$url = $_POST['url'];
$newfname = $destination_folder . basename($url);
$file = fopen ($url, “rb”);
if ($file) {
$newf = fopen ($newfname, “wb”);
if ($newf)
while(!feof($file))
{
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
if ($file)
{
fclose($file);
}
if ($newf) {
fclose($newf);
echo ‘OK,File has been downloaded!’;
}
?>

基中$pwd是操作密码,这样不会被人乱下东西挤爆硬盘了

  • Share/Bookmark

Tags: , , , , , , , , ,