在LAMP环境中测试一个简单的PHP文件上传功能时,发现在/var/log/apache2/error.log中出现了如下的PHP警告:
csharpCopy code
[Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/home/leotody/32883679.jpeg): failed to open stream: Permission denied in /var/upload_file.php on line 25, referer: localhost/info
[Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phps05ssU' to '/home/leotody/32883679.jpeg' in /var/upload_file.php on line 25, referer: localhost/info
这些警告表明没有访问权限。以下是文件上传的代码:
phpCopy code
if (file_exists("upload/". $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] ."already exists.";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"],"upload/". $_FILES["file"]["name"])) {
echo"Stored in:"."upload/". $_FILES["file"]["name"];
} else {
echo"Move error!";
}
}
页面中显示"Move error!",说明move_uploaded_file()函数执行失败。经过查找资料,发现网上有说是SELinux启动的原因,但检查系统并未启动SELinux。查看upload目录默认权限,结果为755:
bashCopy code
drwxr-xr-x 2 root root 4096 2012-01-31 10:59 upload
为了解决问题,将upload目录权限改为777,执行命令sudo chmod 777 upload,再测试上传功能成功。然而,这种修改权限的方法并不安全。
更安全的方式是将upload目录的拥有者改为apache(即-data),执行命令sudo chown -R data:data upload,然后再测试上传功能成功。
最终的upload目录权限应该为:
bashCopy code
drwxr-xr-x 2 data data 4096 2012-01-31 10:59 upload
这样就解决了PHP文件上传功能的权限问题。
iPhone如何给通讯录加密2
通讯录是用户手机中最为重要的隐私数据之一。为了防止不良应用程序滥用用户通讯录并将其上传曝光,iPhone手机提供了加密功能,可以有效保护用户隐私。以下是详细的*作步骤:
*作步骤:
打开iPhone并找到“设置”图标,点击进入;
在“设置”选项中,找到“通用”分项图标,点击进入;
在“通用”设置中,找到“访问限制”。默认状态下,该项目为关闭状态,接下来要把该选项打开才可以使用相应功能。如果您已经打开了“访问限制”,输入密码后请跳到第7步。
进入“访问限制”,此时会看到主列表中有许多应用程序是灰*的不可用状态,要想修改,首先点击上方的“启用访问限制”按钮;
由于“访问限制”权限很大,将影响到很多重要的设置,所以为了安全起见苹果强制要为其设置四位数字密码。按小键盘可输入密码,为防止旁边有人窥视,密码在手机上将统一以点显示;
再次输入四位密码,保证跟前一步的密码相同,并记牢;
设置密码成功后,“访问限制”将可以使用,此时主列表中找到隐私项目中的“通讯录”,点击;
通讯录设置中默认为“允许更改”,即有应用程序要访问通讯录时,会进行提示并允许。在下方的列表中看到已经有一些应用程序已经取得了访问通讯的权限,可以单独对应用程序关闭开关禁止访问。如果想锁定当前的设置,并且不允许新增应用程序访问,还需要点击“不允许更改”。此时,列表将会被锁定不能修改;
点击“不允许更改”禁用所有应用的通讯录访问。
注意事项:
访问权限密码设置后请一定牢记,每次开机及修改设置时均要求输入,密码丢失只有重新刷机才能正常使用;
在禁用通讯录访问前,可对应用程序进行甄别,如微信等应用在禁用通讯访问后,功能上会失去一些便捷*。
linux系统怎么添加计划任务执行php文件3
linux系统怎么添加计划任务执行php文件?PHP不支持多线程,有时候处理问题不是那么爽,应届毕业生小编以php文件为例,讲解linux下的计划任务。
linux系统添加计划任务执行php文件方法
1.打开linux系统命令行界面。
在命令行界面中输入如下命令:whichphp,回车。
1.记住上一步的php路径,继续在命令行下输入:crontab-e,回车,按下“i”键进入vi编辑器的编辑模式,在当前模式下输入如下命令:
10,40,50****/usr/bin/php/opt/lampp/htdocs/wechat/xjtest-web_browser/ptl_test.php
即:计划任务执行频率+php可执行文件路径+要执行的php文件路径。(文章最后会详细解释命令开始的执行频率)
输入完成后,按下“ESC”键并在当前命令行输入“:”,在“:”后输入“wq”,再回车,出现如下提示,*计划任务添加成功。
Linux计划任务的执行频率:
命令开始部分的频率,由五个部分组成,分别代表分钟、小时、日、月、星期(0是星期日)。当前频率全部执行时,用“*”表示,所以才会出现这么多“*”。下面的例子,可以帮助大家理解:
下面的计划任务会一直运行
*****[mand]
下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
0****[mand]
下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
15****[mand]
下面的计划任务每天执行一次,在2:30分
302***[mand]
下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
002**[mand]
下面的计划任务会在每周一的每个小时0分钟时执行一次
0***1[mand]
下面的会每小时运行3次,在0分,10分,和20分时
0,10,20****[mand]
下面是用除号“/”表示每多少运行一次。本例是每5分钟运行一次
*/5****[mand]
还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
05-10***[mand]
另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
@reboot[mand]