使用 Debian 在 apache2 中设置自定义 localhost 目录
Posted
技术标签:
【中文标题】使用 Debian 在 apache2 中设置自定义 localhost 目录【英文标题】:set up custom localhost directory in apache2 using Debian 【发布时间】:2013-07-26 13:21:30 【问题描述】:抱歉,我对这个 virtualbox 的东西很陌生。 我使用的是 Oracle Virtualbox,我使用的是 Debian 系统。
我现在已经在 debian 系统上安装了 php、apache 和 mysql。
我想在我创建的目录中测试我的网站。我希望能够从浏览器访问“localhost/phpmyadmin/”,就像我在 Windows 系统中正常使用 wamp 的方式一样。
现在当我转到 localhost 时,我可以看到文本:'it works!...'
这个网络文件在我的虚拟机中到底在哪里?
更重要的是,我不知道如何在 userdir.conf 模块中指定正确的自定义目录。我试图 gedit userdif.conf 和 php5.conf 文件。我收到警告: Gtk-WARNING **: Attempting to store changes into '/root/.local/share/recently-used.xbel.TX1V0W':No such file or directory
还有几个类似的警告
这是我的 userdir.conf 代码:
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>
而php5.conf文件是这样的:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Order Deny,Allow
Deny from all
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>
它显然不起作用,我仍然无法获取 phpmyadmin。我现在该怎么办?
【问题讨论】:
【参考方案1】:这里有几个问题:
虚拟盒子
您的问题中绝对没有与虚拟化相关的内容。
apache 有VirtualHost
s,它允许一个 apache 网络服务器对多个域具有不同的配置(例如,http://mysite.com
和 http://widerwachs.org
可能由同一个 apache 实例提供服务,但在其他方面完全不同。然后您可以配置一个每个域的虚拟主机)。
命名可能会令人困惑,但 apache 的 VirtualHost
早于任何合理的硬件虚拟化。
用户目录
userdir
真的是针对每个用户的网站,即http://localhost/~foo/
和http://localhost/~bar/
分别针对用户foo
。 bar
.
任何“普通”网站(例如http://localhost/sudel
)通常与userdir
无关。
所以它很可能不是您想要的。 (至少它与你的其他问题无关)
网站根目录
可以使用DocumentRoot
指令设置您网站的文件系统根目录。
在 debian 系统上,它通常默认为 /var/www
别名
您很可能在/var/www
中找不到与phpmyadmin
相关的任何内容。
你可能不应该。
相反,您应该阅读 phpmyadmin
软件包附带的文档,尤其是。 README.Debian
。
你会发现你应该在你的 apache 配置中添加一个像 Alias /phpmyadmin /foo/bar/baz
这样的行,这将使 http://localhost/phpmyadmin/
在你的文件系统上查找文件到 /foo/bar
/baz`。
但是,这很可能是通过创建从 /etc/phpmyadmin/apache2.conf
到 /etc/apache2/conf.d/phpmyadmin.conf
的符号链接来完成的(未经测试)
文件编辑
您似乎以root
用户(又名superuser
)的身份运行X。出于安全原因,您可能不应该这样做。而是尝试学习一个适用于 cmdline 的合理文本编辑器。
堆栈溢出
Stack Overflow 真的是关于编程问题。您应该在 Server Fault 上向系统管理员提问。
【讨论】:
以上是关于使用 Debian 在 apache2 中设置自定义 localhost 目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Debian/Ubuntu Docker 容器中设置语言环境?
如何在 Apache 2.4 cookie 中设置 unix 时间戳?