首页 > 编程技术 > php

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

发布时间:2016-11-25 17:35

虚拟主机设置
<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--]

您可能感兴趣的文章: