在全新安装 Joomla CMS 核心的时候,安装程序能自动探测服务器端的文件系统绝对路径,从而自动填写“全局设置”中“临时文件夹”(tmp)和“日志文件夹”(logs)的路径。但是,有些时候你还未安装 Joomla 就必须知道绝对路径,该怎么办?

最简单的解决办法当然是:直接问主机商客服。但有些时候,客服的回应并没有那么及时;甚至,有些主机商扭扭捏捏就是不愿意告诉你绝对路径。还有一种糟糕的情况是,你购买了一个 VPS,但并不怎么懂服务器配置,稀里糊涂用网上的“一键 LAMP”教程搭建起了服务器,但是你还不清楚 Joomla 安装包上传的位置到底是哪个绝对路径?本文将介绍几种办法,让你能够快速得知 tmp 或者 logs 的绝对路径。

 

Linux File System Structure
Linux File System Structure
 

 

举个例子:如果你刚刚得到一个新的虚拟主机空间,想要用网站在旧服务器上的备份包(由 Akeeba Backup 备份而成)在新主机上还原网站,这时候,在第一个步骤“解压备份包”的界面上,你会发现 kickstart 这个解压工具要求你填写备份包所在位置的绝对路径(如下图所示)。从截图上可以看出,kickstart 默认探测的路径只是一个 root 这个单词,这显然不是正确的路径,因此第二行的“压缩包文件”这里,也不会显示正确的备份包文件名。

 

b_600_0_16777215_00_images_stories_article_tutorial_2016tutorial_akeeba-kickstart-absolute-path.png  

 

下面我们介绍两种方式来快速得到绝对路径。

方法一:使用 PHP 的 “echo __FILE__”功能

在你的 PC 上,用文本编辑器(例如:Notepad++)新建一个名为 mypath.php 的文件,内容如下:

<?php
echo __FILE__;
?>

 

对,就这么简单。

然后,把这个文件上传到网站根目录下(也就是你上传备份包的位置)—— 我想 FTP 你肯定能用的吧,否则备份包也传不上去啊。

接下来通过浏览器访问这个文件,网址应该是: https://你的域名.com/mypath.php

例如,我在测试服务器上访问该文件,浏览器显示了一个页面,上面只有一行内容:

/home/admin/web/gate.com/public_html/mypath.php

当我把这个路径填写到 kickstart 解压工具的“绝对路径”一栏(填写时当然要去掉路径末尾 mypath.php 这个文件名),它马上探测到了备份包:

b_600_0_16777215_00_images_stories_article_tutorial_2016tutorial_akeeba-kickstart-backup-package-detected.png 

 

看到了吗?整个过程恐怕不超过5分钟,就解决了问题。 

补充:经验证,这个方法不仅可以用在 Linux 服务器上,也可以在 Windows 环境中工作,例如在 Windows 10 PC 上安装 XAMPP for Windows 测试服务器之后,可以通过这个方法得到 Joomla 临时目录的绝对路径,其结果一般是:“D:\xampp\htdocs\j3\tmp\mypath.php”。

方法二:使用命令行 realpath 命令

如果服务器是你自己搭建的(例如:使用 VestaCP 搭建了 LAMP 建站环境),你应该拥有 SSH 远程登录的权限。那么,在 Xshell 或者 PuTTY 等 SSH 客户端上,可以通过执行 realpath 这个 Linux 命令来获得当前目录中指定文件的绝对路径。

例如,我们已知 Joomla 根目录下都有一个 README.txt 文件,那么可这样操作(注意下面是动画演示,如果已经播放完毕,可点击画面右下角 slow 这个按钮重播):

 

 

可以看到,执行 realpath 命令之后,系统立即就给出了 README.txt 这个文件的绝对路径是:

/home/admin/web/gate.com/public_html/README.txt
 

上面这个路径去掉末尾的文件名,就是网站根目录(即备份包所在位置)的绝对路径。

 

绝对路径还有什么用?

以前我们曾经说过,可以将 Joomla 后台“全局设置”中的 tmp 文件夹路径填写为 “../tmp”这个相对路径,这样做可以避免在迁移网站时因服务器结构变化而导致路径失效,因为该参数会被写入到 Joomla 根目录下的 /configuration.php 文件中。

现在我们意识到,填写相对路径会带来一些问题。例如,有时候安装 Joomla 扩展时,会发生如下报错:

The archive file is corrupt, truncated or archive parts are missing

在中文版可能显示如下报错消息:

压缩包文件已损坏,或者缺少文件头,或者部分缺失

这就是因为 tmp 文件夹的路径没有填写绝对路径造成的。将该参数改成绝对路径,就可以解决这个问题。

总评分 (0)

0 (满分5分)

免费下载最新Joomla!核心中文版

扫描此二维码,立即开始下载 Joomla 3 核心中文版

付费下载汉化版扩展

付费后即可下载独家海量

Joomla! CMS 扩展汉化版

了解付费会员制度

点击这里给我发消息

了解 joomlagate.com 网站的付费会员制度