【问题标题】:Moving website from Windows localhost to Linux live server: issues with filenames and paths将网站从 Windows localhost 移动到 Linux 实时服务器:文件名和路径问题
【发布时间】:2015-09-22 15:46:46
【问题描述】:

我正在将我的站点移动到实时服务器,并且在此过程中发现 linux 服务器区分大小写,因此使用大写字母的 URL 不是一个好主意。

这对文件名也很重要吗?

我所有的课程都以大写字母开头,这样可以更轻松地浏览文件。

我应该把所有文件都改成小写吗?

【问题讨论】:

  • apache mod_speling 可以解决你的问题....
  • 文件系统约定在大多数文件系统上确实是区分大小写的。甚至不确定除了 MS-Windows 是否还有其他异常。但这与类名无关。骆驼案例类命名方案确实有意义。此外,除了领先的主机名本身之外,我看不出 URL 中的大写字母应该成为问题的任何真正原因。如果您将所有文件名都更改为小写,肯定会为您省去麻烦,是的,但仅此而已......
  • 另一个例外是 HFS+,OS X 上的默认文件系统,默认情况下不区分大小写(但保留大小写)

标签: php linux url web server


【解决方案1】:

无需更改文件名,只需保持一致即可,即使用 PHP 代码中的文件名。如果你的类名是Post在php代码中坚持Post而不是post,实际上类名开头的大写字母是应该遵循的通用标准(只是为了可读性,没有严格的规定) .

如果您在项目中的任何位置硬编码了C:\xampp\htdocs\mysite 之类的路径,文件路径将是一个问题。 避免。请改用相对路径 __FILE__ 和/或 __DIR__http://php.net/manual/en/language.constants.predefined.php

URL 也是如此,避免在代码中使用http://localhost。您可以在项目的开头设置基本 url,您可以在其中编写如下内容:

if(defined('DEV')){
  $url = "http://localhost/mysite";
} 
elseif(defined('PROD')){
  $url = "http://example.com"
}

如果你正在使用任何 php 框架,你可以使用它们的全局变量来访问 base url 并忽略上面的代码。

在windows桌面环境(不是服务器)中,apache的进程一般和文件的所有者是同一个用户。因此,几乎没有人会遇到有关 Windows 权限的任何问题。在 linux 中,请确保所有文件都具有适当的权限。通常人们会发现images 文件夹的问题。根据您的需要更改其权限。 https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

【讨论】:

    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    相关资源
    最近更新 更多