我不是一位经验丰富的
Apache
编码器/开发人员。我之前编辑过 .conf
文件,但已经有一分钟或几分钟了。
我的
Apache/2.4.52
机器上有 Ubuntu 22.04
。就其价值而言,我使用PHP8.1.2
当我的网站目录不是
/var/www/html
时,如何通过 localhost 查看我的开发网站(开发站点)?
我在
/home/jdc44/Websites/
中构建我的网站(代码),即:这样的网站是:/home/jdc44/Websites/LivingMuayThai
有一个实时网站,但我想对网站/代码进行更改,并能够在推送任何问题之前在本地查看它居住。我想查看该网站:localhost/livingmuaythai
或驼峰式:localhost/LivingMuayThai
,因为这是代码所在目录的名称。
我将在这里发布我的代码,希望有人能告诉我我缺少什么,或者如果这一切都是错误的,该怎么做。我从 2009 年开始遵循这个教程,但它不起作用。也许事情已经改变了......
我在
livingmuaythai.conf
中创建了一个
/etc/apache2/sites-available/
文件
## /etc/apache2/sites-available/livingmuaythai.conf
## I removed all the commented lines for space
<VirtualHost *:80>
# ServerName www.example.com
ServerName livingmuaythai // do I need a .com on this?
ServerAdmin [email protected]
DocumentRoot /home/jdc44/Websites/LivingMuayThai/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /home/jdc44/Websites/LivingMuayThai/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch "\.*">
SetHandler application/x-httpd-php
</FilesMatch>
</VirtualHost>
## /etc/hosts
127.0.0.1 localhost livingmuaythai
我启用了该网站:
sudo a2ensite livingmuaythai
在
/etc/apache2/sites-enabled/
中创建了符号链接。这是设置造成的,不是我造成的。
livingmuaythai.conf -> ../sites-available/livingmuaythai.conf
然后重新启动/重新加载
Apache
当我转到
http://localhost/livingmuaythai/index.html
时,我会看到 404 Not Found
页面。
注意:我有防火墙并且端口 80 已打开。
想法?感谢您的帮助。
您已经谈到了启用新站点,但没有谈到禁用默认站点,所以我的猜测是您仍然进行了设置。您可以通过两种方式检查:
/etc/apache2/sites-enabled/
的内容 - 正如您所看到的,这是由 a2ensite
和 a2dissite
命令管理的文件夹,作为打开和关闭站点的便捷方法sudo apache2ctl -S
,它会给出 Apache 认为已配置的所有“虚拟主机”的详细信息,以及它们的定义位置可能,你只是想跑步
sudo a2dissite some-default-site-in-the-list
此时,值得快速绕道了解 Apache 如何解析站点:
Include
行和符号链接只是为了人类方便。http://example.com/foo/bar/baz
的请求将具有 IP 地址 93.184.216.34
(这是我当前运行 nslookup example.com
时获得的)、端口 80
和主机标头 example.com
<VirtualHost>
块相匹配。<VirtualHost>
的块。按顺序检查匹配块,查看它们包含的 *
ServerName
行。第一次找到与请求的主机名匹配的虚拟主机块时,将使用该虚拟主机块。如果没有一个块具有匹配的 ServerAlias
ServerName
,则使用第一个块(在匹配 IP 地址和端口的列表中)。
ServerAlias
表示“任何IP地址,端口80”,
<VirtualHost *:80>
表示这对于像ServerName livingmuaythai
这样的URL来说应该是一个不错的选择。您的请求http://livingmuaythai/foo/bar
将按顺序查找:
http://localhost/livingmuaythai/index.html
<VirtualHost 127.0.0.1:80>
或 ServerName localhost
定义的第一个ServerAlias localhost
<VirtualHost 127.0.0.1:80>
<VirtualHost *:80>
或 ServerName localhost
定义的第一个ServerAlias localhost