我试图让 SSI 在运行 Apache 的 Debian 上工作,但是.shtml
文件没有被解析。从 PHP 文件中,phpinfo()
我可以看到加载的模块部分显示以下内容:
mod_mime_xattr mod_mime mod_mime_magic
Run Code Online (Sandbox Code Playgroud)
在/etc/apache2/mods-enabled/mime.conf
我有(除其他外):
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Run Code Online (Sandbox Code Playgroud)
在/etc/apache2/sites-enabled/domain.com.conf
(对于有问题的虚拟主机)我有:
<Directory /home/username/public_html>
Options +Includes
allow from all
AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)
为了更好地衡量,我还添加了以下内容:
<Directory />
Options +Includes
</directory>
Run Code Online (Sandbox Code Playgroud)
在用户的.htaccess
文件中,我尝试添加:
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
Run Code Online (Sandbox Code Playgroud)
似乎没有任何效果。我怎么能调试呢?
编辑:
这是输出,ls /etc/apache2/mods-enabled/
以防万一
actions.conf dav_svn.load proxy_balancer.load
actions.load deflate.conf proxy.conf
alias.conf deflate.load proxy_connect.load
alias.load dir.conf proxy_http.load
auth_basic.load dir.load proxy.load
auth_digest.load env.load python.load
authn_file.load …
Run Code Online (Sandbox Code Playgroud) 我无法使用 DSA 密钥通过 X2GO 连接到远程服务器。通过 SSH 连接工作正常,但是当我尝试与 X2GO 连接时,它会立即进入用户名/密码框,并且不想使用我在选项中指定的私钥。如果我选择“尝试自动登录”,它似乎尝试连接,然后出现以下错误:
没有匹配的公钥
访问被拒绝。可以继续的认证:publickey
它以前可以工作,但我重新安装了客户端操作系统,从那以后我无法连接。我从以前的安装中复制了所有 SSH 密钥。
我也尝试删除我的~/.ssh/known_hosts
文件并添加密钥ssh-agent
但没有成功,但密钥肯定是正确添加的:
$ ssh-add -l
1024 b9:3d:e5:ef:48:ea:fc:c6:6e:45:89:b5:35:e7:58:39 server.com_dsa (DSA)
Run Code Online (Sandbox Code Playgroud)
请注意,如果我在服务器上启用密码验证,我可以正常连接,但是我想使用 publickey。任何想法如何连接公钥身份验证?
我的假设是(除了由于旧操作系统无法读取大型驱动器而造成的限制),只要硬盘驱动器与计算机可用的驱动器类型相同(例如,如果计算机具有 IDE,您可以将任何 IDE 驱动器插入其中,或者如果它有 SATA,您可以将任何 SATA 插入其中)。但是最近我打算购买一台相对较旧的计算机,并想在上面放几个 4TB 驱动器,因为它将用于存储监控视频,所以我需要很少的实际计算能力,但需要大量存储空间。但是销售代表告诉我 4TB 驱动器无法与该服务器配合使用。当我检查规格时,它说:
内部存储容量高达 1.5TB(2 x 750GB 热插拔 3.5" SATA 硬盘)、1 TB(2 x 500 非热插拔 SATA 硬盘)或 600GB(2 x 300GB 热插拔 3.5" SAS 硬盘)
这是因为有一些实际的硬件限制在服务器上放置比这更大的驱动器,如果是这样,会导致这种情况的原因是什么,如果您确实在服务器上放置了更大的驱动器会发生什么?
或者说,这是因为这些是那些当时存在类型的最大驱动器,所以这是他们的规范使用,但它是实际上可能把可在物理上可以插入任何驱动器(例如2×4TB的3.5" SATA 驱动器),它们会正常工作吗?
我正在尝试使用 mod_rewrite 创建一个宁静的 API。
我有一个规则:
RewriteRule v2/(.*)$ v1/index.php?request=$1 [QSA,NC,L]
Run Code Online (Sandbox Code Playgroud)
然而,路径可能包含 base64 编码的字符串(即可以有 + 或 /)并且它们在到达 PHP 之前被解码。
例如,如果我去
/v2/cards/9VwQLli%2Bf0ogFl19AVRFLuztbp8cP0rYCgXBu3H9%2BDc%3DBe
Run Code Online (Sandbox Code Playgroud)
PHP 获取$_REQUEST['request']
为cards/9VwQLli f0ogFl19AVRFLuztbp8cP0rYCgXBu3H9 Dc=Be'
.
更糟糕的是,如果我在其中添加斜杠(例如9VwQLli%2Bf0ogFl19AVRFLuztbp8c%2FP0rYCgXBu3H9%2BDc%3DBe
-%2F
是斜杠),我会得到 404。
我怎样才能防止这种情况发生?
注意:我尝试了B
和NE
标志,但它们没有任何效果。我想作为一个黑客,我可以将所有+
字符_
都转换/
为-
,或者甚至是双 url 编码,但我想知道是否有更好的方法。
apache-2.2 ×2
connection ×1
debian ×1
encoding ×1
hard-drive ×1
hardware ×1
mod-rewrite ×1
nx ×1
php ×1
restrictions ×1
rewrite ×1
sata ×1
ssh ×1