linux中PHP dirname(__FILE__)路径问题解决

近期在给wordpress开发模板功能时发现,直接使用include(“文件名”)的形式调用其他php代码片段时会出现路径错误。之前服务器环境一直都是iis,未曾出现过类似的BUG,但换成linux服务器后便出现了路径调用错误。在网上搜寻了一番,发现可以在调用时使用dirname(__FILE__)来解决linux服务器下包含文件时的路径错误。

其实主要问题来自于linxu服务器下的站点根目录问题,在linux服务器下包含某个文件时,其路径为/home/web/。如果直接使用include(“/文件名”)的格式,则实际上包含的文件路径为/home/web/文件名。

完整的使用方法为include dirname(__FILE__) . ‘/page.php’

这段代码引用的文件需要与代码所在文件处于同一目录,如果需要调用上一层目录可以使用dirname(dirname(__FILE__))来调用上一层目录的文件。

如果大家在网站更换服务器后遇到包含类问题时,不妨检查一下网站是否有引用路径的错误。建议在书写php包含时就使用dirname(__FILE__)的方法引用文件,以解决多数情况下的引用问题。

时间: 2024-10-27 16:12:02

linux中PHP dirname(__FILE__)路径问题解决的相关文章

linux中PHP dirname(

  在php 中dirname() 函数返回路径中的目录部分,__FILE__而当前运行文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名.这是一个魔法变量(预定义常量),在windows中没有问题但在linux中路径出现的问题,下面我们一起来看看路径问题解决方法. 近期在给wordpress开发模板功能时发现,直接使用include("文件名")的形式调用其他php代码片段时会出现路径错误.之前服务器环境一直都是iis,未曾出现过类似的BUG,但换成linux服务器后

linux中tar打包指定路径文件

压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory 解压: cd /data/test  tar xzvf /data/backup/test.tar.gz 问题是,解压后的文件,在/data/test/data/a/b/directory里面 要想解压在当前目录路径. 这样写就可以解决了 tar czvf /data/backup/test.tar.gz /data/a/b/directory 改成 tar czvf /data/

linux中"dig: command not found"问题解决办法

今天老蒋有在调试Dnsmasq创建本地DNS服务器的时候有需要用到dig命令测试效果,但是默认Linux系统中好像没有安装dig支持组件.于是有错误提示"-bash: dig: command not found". 快速解决"dig: command not found"问题 主要问题是默认系统中缺少bind-utils工具包导致的,我们直接yum安装看看呗. yum -y install bind-utils 这样,我们在安装工具包之后,再去dig命令就没有任何

linux中shell脚本提取路径中提取目录名、文件名及扩展名

编写脚本(Shell)时,经常会遭遇包括全路径的文件名里提取路径名.文件名等. 在这里包括全路径的文件名为 /usr/local/apach2/etc/httpd.conf 定义为 FILE="/usr/local/apach2/etc/httpd.conf" (1)提取文件名 FILENAME=${FILE##*/} ##*/ 表示删除从最前面开始至最后一个/出现的部分,因此FILENAME为httpd.conf. (2)提取文件扩展名 EXT=${FILE##*.} 和(1)一样,

linux中ssh登录很慢问题解决办法

使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码.严重影响工作效率.登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因: 1. DNS反向解析问题 OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间. 解决办法: 在目标服务器上修改sshd服务器端配置,并重启sshd vi /e

linux中安装PycURL出现的问题解决办法

使用pip安装PycURL时发现如下报错: src/pycurl.h:152:5: warning: #warning "libcurl was compiled with SSL support.... 但是系统中已经安装libcurl及libcrul-devel,最后google到了原因,是因为CentOS源中libcurl的版本过低,需要自行编译安装最新版本的curl: wget http://curl.haxx.se/download/curl-7.39.0.tar.gz tar xf

linux中Neo4j Server启动失败问题解决办法

最近需要用到Neo4j做个小试验,看似顺利安装却在启动server的时候报错.最终发现问题是JDK1.7安装时,少修改了一个symlink. 我的安装步骤如下: 从Oracle下载了JDK1.7,在~/.bashrc里修改了JAVA_HOME变量.  代码如下 复制代码 export JAVA_HOME=/usr/libexec/java_home -v 1.7 检查了一下当前jdk版本.  代码如下 复制代码 > source ~/.bashrc > java -version java v

linux中ssh密钥登录失败问题解决办法

搞一个ssh的密钥登录,结果发现就是无法使用密钥登录,非让我输入密码.苦恼. 输入ssh连接代码 ssh -i private.key -v user@host.com -p22 从连接的信息中看不出有什么问题. debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug1: Next authentication method: publickey debug1

linux中Firefox浏览器flash 崩溃问题解决办法

这一篇介绍一种 Linux 系统下 flash 崩溃的解决办法. 环境如下: 操作系统:openSUSE 13.2 32 位 浏览器:Firefox 34 版本 状况:凡使用 flash 的页面均出现 Adobe Flash 插件已崩溃. 尝试 Chrome 浏览器,同样存在问题: Shockwave Flash has crashed. 排查步骤如下: 打开 Firefox 附加组件页面,检查 flash 相关插件的安装情况,如下图: 我们能看到两个版本的 flash 插件: Shockwav