虚拟主机中对PHP的特殊设置

 更新时间:2016年11月25日 17:35  点击:1884

虚拟主机设置
<VirtualHost 127.0.10.10>
ServerAdmin webmaster@hostmachine.com
DocumentRoot /www/virtual.com/htdocs
ServerName www.virtual.com
UserDir /www/virtual.com/htdocs
ScriptAlias /cgi-bin/ /www/virtual.com/cgi-bin/
ErrorLog /www/virtual.com/logs/error_log
CustomLog /www/virtual.com/logs/access_log common

目录设置
<Directory /www/virtual.com/htdocs>
# 对该虚拟主机设置是否使用php3
php3_engine On
# 设置php3出错信息的调试级别
php3_error_reporting 1
# 设置是否记录php3出错日志
php3_log_errors On
# 设置php3的出错日志文件
php3_error_log /www/virtual.com/logs/php3_error_log
# 设置一个php3线程的最长存活时间
php3_max_execution_time 180
# 设置用户临时上载目录
php3_upload_tmp_dir /www/virtual.com/htdocs/tmp
# 设置包含头文件
php3_include_path /www/virtual.com/htdocs/include

可执行目录设置

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

用PHP实现"等待指定的时间,然后再跳转到指定页面".
也就是用php实现和HTML中的
一样的效果。

<?
/**
@title:PHP定时跳转
@功能:等待指定的时间,然后再跳转到指定页面(代替html meta方式)
*/
header("refresh:3;url=http://www.etoow.com");

print('正在加载,请稍等...<br>三秒后自动跳转~~~');


/*
补充说明:
若等待时间为0,则与header("location:")等效。
*/

?>

$ftp_server = "*.*.*.*";
$ftp_user = "lu";
$ftp_pass = "love you";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}

// try to login
$filename=date('Ymd').".xml";
$source_file="/usr/local/IVR/sendwireless/xml/data/".$filename; //源地址
echo $source_file;
$destination_file="/ITC/admin/logstat/ftplog/".$filename; //目标地址
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY) or die("Couldn't connect to $ftp_server");
ftp_quit($conn_id);

if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}
ftp_close($conn_id);

最近一段时间对PHP文件处理方面很感爱好,因此在许多站点上看了许多的文件处理的文章,但是国内许多的站点上的PHP文件处理方面的知识大多数是你抄我的我抄你的,用baidu.com或者是google.com搜索出来的东西多是重复的。最近在国外一个站点上盾了一篇文章感觉很不错,因此推荐给大家阅读。

首先我们有必要说明一下文件上传的操作流程及用到的知识点:

文件上传我们需要用到HTML里面表单的type="file"类型,及其enctype属性。这是我们大家必须要用的。当然了PHP函数库当中的FILE函数库,字符串类型函数库,目录函数库及$_FILES[]的使用是我们必须要用到的。

也许每一个站点都可能会对上传文件有许多的限制,这些限制会包括 文件类型,文件大小,扩展名,以及上传目录的存在与否,上传文件的存在与否,目录的可写性,可读性,上传文件的改名及怎样把文件从缓存当中复制到你所需要的目录当中。

当然出错的预处理也是我们不容忽视的!假如再深一步的讨论我们还可以对文件的操作起用事件日志的记录。

下面我们通过一段程序来实现这些功能:

--------------------------------------------------------------------------------------------


首先是我们预设的变量值,它包括文件大小,文件扩展名类型,MIMI类型,及是否删除的开关变量

$MAX_SIZE = 2000000;
$FILE_MIMES = array('image/jpeg','image/jpg','image/gif'
,'image/png','application/msword');

$FILE_EXTS = array('.zip','.jpg','.png','.gif');

$DELETABLE = true;


下一部就是设置浏览器访问变量及目录访问变量:

$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "files/";
$upload_url = $url_dir."/files/";
$message ="";


建立上传目录并相应改变权限:

if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files directory doesn't exist and creation failed");
if (!chmod($upload_dir,0755))
die ("change permission to 755 failed.");
}



用户请求的处理:

if ($_REQUEST[del] && $DELETABLE) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]n");
fclose($resource);

if (strpos($_REQUEST[del],"/.")>0); //possible hacking
else if (strpos($_REQUEST[del],"files/") === false); //possible hacking
else if (substr($_REQUEST[del],0,6)=="files/") {
unlink($_REQUEST[del]);
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
}
else if ($_FILES['userfile']) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."n");
fclose($resource);

$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));

//文件大小的检查:

这是一个用PHP制作的意见反馈表,稍加修改也可用于网上发信程序,主要是让访问者填写表单,用PHP处理后发送到治理员信箱,并向访问者信箱发送一个证实信件。

about.php
-------------------------
<html>
<head>
<title>意见反馈表</title>
</head>
<body>
<?php

$adminmail="admin@etoow.com"; #治理员信箱
$pagename="Acme"; #主页名称
$pageline="http://etoow.com"; #主页地址

#治理员信件内容
if (($formno1!="") and ($formno4!="") and ($formno11!="")) {

$Email=$formno4; #来访者E-mail
$sender=$formno1; #送信人
$nowtime=date("Y年m月d日H时i分");


$tmpfilename = tempnam("./tmp", "dm");
$fp = fopen($tmpfilename, "w");

fwrite($fp, "From: ".$Email."n");
fwrite($fp, "Subject: ".$sender." <".$pagename."-意见反馈表>nn");
fwrite($fp, "送信人:".$sender."n发信IP:".$REMOTE_ADDR."n发信时间:".$nowtime."nn");
fwrite($fp, "反馈表具体内容:n------------------------------------------------------n");
fwrite($fp, "姓名:".$formno1."n性别:".$formno2."n年龄:".$formno3."nE-mail:".$formno4."n工作单位:".$formno5."n联系地址:".$formno6."n邮编:".$formno7."n电话:".$formno8."n传真:".$formno9."n网址:".$formno10."n意见建议:".$formno11."n------------------------------------------------------n");
fclose($fp);

$execstr="cat ".$tmpfilename." | /usr/sbin/sendmail ".$adminmail;
exec($execstr);

$execstr="echo $sender $nowtime $REMOTE_ADDR $REMOTE_HOST >> mail.log";
exec($execstr);

#来客信件内容;
$tmpfilename1 = tempnam("./tmp", "dm");
$fp = fopen($tmpfilename1, "w");

fwrite($fp, "From: ".$adminmail."n");
fwrite($fp, "Subject: 你在[".$pagename."]填写的<意见反馈表>nn");
fwrite($fp, "****此信为自动回复信件,请勿回复。给你带来不便,我们深表歉意。****nn------------------------------------------------------n非常感谢你在[".$pagename."]填写意见反馈表!n以下是您在".$nowtime."填写的具体内容,请确认:n------------------------------------------------------n");
fwrite($fp, "姓名:".$formno1."n性别:".$formno2."n年龄:".$formno3."nE-mail:".$formno4."n工作单位:".$formno5."n联系地址:".$formno6."n邮编:".$formno7."n电话:".$formno8."n传真:".$formno9."n网址:".$formno10."n意见建议:".$formno11."n------------------------------------------------------n".$pagename.":".$pageline."nE-mail:".$adminmail);
fclose($fp);

$execstr="cat ".$tmpfilename1." | /usr/sbin/sendmail ".$Email;
exec($execstr);

#确认页开始;
echo "
<style type=text/css><STYLE>
A {FONT-SIZE: 9pt}
A:link {COLOR: #006666; }
A:visited {COLOR: #006666;}
A:hover {COLOR: #ff0000; TEXT-DECORATION: underline}
TD {FONT-SIZE: 9pt}
INPUT {FONT-SIZE: 9pt}
</style>
<br><p align=center><font size=4><b>*** 非常感谢你在<a href=$pageline>$pagename</a>填写意见反馈表! ***</b></font></p>以下是您填写的具体内容:<hr><br>
<b>姓名:</b>  $formno1<br>
<b>性别:</b>  $formno2<br>

[!--infotagslink--]

相关文章

  • 使用xampp搭建运行php虚拟主机的详细步骤

    最近,新装了xampp这么一个软件搭建自己的web开发环境,安装完毕自然要虚拟几个目录放自己的项目了,现将如何在xampp搭建的web服务器环境下新建虚拟主机的过程总结分享一下,大致过程分为三步,如下: 第一步: 用记事本打开C:/WIN...2015-10-23
  • 使用FileZilla上传网站文件到GoDaddy主机

    使用FileZilla上传网站文件到GoDaddy主机并不难不过因为是英文的许多的新手不懂,今天我们一起来看看吧,希望文章能够帮助到各位. 上传网站程序文件到GoDaddy主机有两...2016-10-10
  • 一篇文章带你搞懂Vue虚拟Dom与diff算法

    这篇文章主要给大家介绍了关于Vue虚拟Dom与diff算法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-26
  • docker容器与宿主机的数据交互方式总结

    这篇文章主要给大家介绍了关于docker容器与宿主机的数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-09
  • HostUS KVM便宜美国VPS主机购买过程及配置速度综合性能参数

    下面我们来看一篇关于HostUS KVM便宜美国VPS主机购买过程及配置速度综合性能参数的例子,希望这篇教程能够为大家带来帮助,具体的如下文介绍。 在众多便宜VPS主机商...2016-10-10
  • 玩转虚拟域名◎+

    玩转虚拟域名◎+ . 不知道大家最近上网是否发现一个新现象,就是有一些网站开始提供“username@server”的虚拟域名服务。由于“@”的魅力,大家纷...2016-11-25
  • 详解如何调用zabbix API获取主机

    Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。这篇文章主要介绍了如何调用zabbix API获取主机。...2021-05-07
  • 虚拟主机与独立服务器

    虚拟主机利用网络空间技术,把一台服务器分成许多的“虚拟主机”,每一台网络空间都具有独立的域名和IP地址,具有完整的Internet服务器功能。网络空间之间完全独立,在外界看...2017-07-06
  • 在apache下限制每个虚拟主机的并发数

    下载模块: http://www.nowhere-land.org/prog ... st_limit-0.4.tar.gz 官方网址: http://www.nowhere-land.org/programs/mod_vhost_limit/ 安装: apxs -c mod_vhost_...2016-01-28
  • zabbix执行远程主机的脚本或指令详解

    这篇文章主要介绍了在zabbix执行远程主机的脚本或指令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • 详解Nginx虚拟主机配置中server_name的具体写法

    这篇文章主要介绍了Nginx虚拟主机配置中server_name的具体写法,server_name服务器名是虚拟主机中必须配置的重要参数,需要的朋友可以参考下...2016-05-22
  • 清平云 betweb云服务完美版虚拟主机自动化套件使用介绍

    这篇文章主要介绍了清平云 betweb云服务完美版虚拟主机自动化套件使用介绍,需要的朋友可以参考下...2016-09-28
  • docker容器间跨宿主机通信-基于overlay的实现方法

    这篇文章主要介绍了docker容器间跨宿主机通信-基于overlay的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-20
  • NPOINT免费虚拟主机管理系统windows2003的安装方法【图文】第1/2页

    这是一款免费的虚拟主机管理系统,无限制,并可以二次开发...2016-01-27
  • zabbix 添加你需要监控的主机步骤详解

    这篇文章主要介绍了zabbix 添加你需要监控的主机,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • 解决docker容器与宿主机相差8小时的问题

    使用docker-compose部署时,在输出的日志以及相关事件校验及输出时,导致事件与现实相差8小时。纠结怎么回事呢?下面小编给大家分享下解决docker容器与宿主机相差8小时的问题,一起看看吧...2021-09-29
  • BlueHost Windows主机控制面板介绍

    在BlueHost中文官网有Linux和Windows两种操作系统的虚拟主机,前者采用的是大家熟悉的cPanel控制面板,而Windows主机使用的则是Plesk面板。今天小编就给大家介绍一下BlueHost Windows主机的Plesk控制面板...2017-07-06
  • 如何在mac下配置python虚拟环境

    这篇文章主要介绍了如何mac下配置python虚拟环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-06
  • windows2003 apache配置虚拟主机和绑定域名服务

    年前就找朋友申请一个域名,由于工作比较忙也没弄,昨天下午在搞apache虚拟主机配置,试了很多次就是不行,不知道怎么搞。今天上午终于找到原因了。。。。。。。。。自己太粗心了,忘了一个设置。实在惭愧啊! ...2016-01-27
  • Javaweb resin4如何配置端口虚拟目录

    这篇文章主要介绍了Javaweb resin4如何配置端口虚拟目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26