当你将php命令行脚本加入到linux cron计划任务中后,如果使用require
和include
加载相对路径中的文件总是报错
可以用以下几个方案来解决问题:
假设脚本项目所在根目录为/home/wwwroot/running
; 该目录下又两个文件:run.php
和foo.php
; 其中run.php
需要执行的文件; 如果你运行:
require_once('foo.php');
文件foo.php
在命令行模式下是能够被加载的,但如果在cron任务计划中运行,则无法被正确加载;
解决方案一:通过绝对路径加载
require('/home/wwwroot/running/foo.php')
解决方案二:进入当前工作目录后加载
$curDir = dirname(__FILE__);
chdir($curDir);
require('foo.php');//加载文件相对当前目录所在位置
解决方案三:设置包含路径(推荐)
define('ROOT_PATH',dirname(__FILE__) . '/../'); //设定根目录路径常量
set_include_path(ROOT_PATH);//所有要加载的文件都以根路径开始
require('running/foo.php');//相当于普通情况下加载'/home/wwwroot/running/foo.php'
搜索
标签
study
ab
amap
apache
apahe
awk
aws
bat
centos
CFS
chrome
cmd
cnpm
composer
consul
crontab
css
curl
cygwin
devops
di
docker
docker,docker-compose
ethereum
excel
fiddler
fluentd
framework
front-end
git
gitgui
github
glide
go
golang
gorm
grafana
gzip
ioc
item2
iterm2
javascript
jenkins
jsonp
kafka
laradock
laravel
larval
linux
liunux
log
mac
mac, wi-fi
macos
magento
mariaDB
minikube
mongoDB
msp
mysql
netbeans
nginx
nodejs
nohup
npm
nsq
oracle
php
php-fpm
php7
phpstorm
php扩展
Protobuf
python
redis
scp
server
shell
soap
socket
socket5
sql
sre
ssdb
ssh
ssl
study
sublime
swift
system
td-agent
uml
v2ray
vagrant
vagrnat
vim
vpn
vue
vue.js
webpack
webrtc
websocket
webtatic
windows
windows7
word
wps
xdebug
yarn
yii2
yum
zookeeper
世界国家
互联网
以太坊
分类
前端
小程序
打印机
排序算法
搞笑
权限
粤语
缓存
网络
虚拟机
视频
设计模式
项目管理
热门文章
友情链接