Apache 服务器在不同端口上为 WordPress 和普通网站提供服务

Apache Server to serve WordPress and Normal sites on different port

我已经在我的 ubuntu 21 中安装了 Apache/2.4.4。我已经在这个 IP 中有一个网站:172。20.x.y 正在监听端口 80,即默认端口.它还没有域名。我在下面提到了它的文档根目录,

DocumentRoot: /var/www/html

我打算在同一台机器上使用端口 81 到 运行 WordPress。

DocumentRoot: /srv/www/wordpress

我试图更新 000.default.conf 文件来支持它。以下是我更改的代码。

Listen 81

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/htm
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:81>
        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/wordpress
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /srv/www/wordpress>
            Options FollowSymLinks
            AllowOverride Limit Options FileInfo
            DirectoryIndex index.php
            Require all granted
        </Directory>
</VirtualHost>

但是,当我访问172.20.x.y:81时,它会重定向到默认端口。 WordPress 不起作用, 当我仅禁用 000.default.conf 和 运行 时 WordPress.conf 它工作正常。

<VirtualHost *:80>
    DocumentRoot /srv/www/wordpress
    <Directory /srv/www/wordpress>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /srv/www/wordpress/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

谁能帮忙解决这个问题?

我建议检查您的 WordPress Site/Home URL。确保更改 Site/Home URLs 以匹配端口,例如,如果您的 URL 当前是“http://localhost”(默认为 80 HTTP 端口),那绝对是当您尝试访问“http://localhost:81”时看到重定向的正常行为。

请尝试在您的 WordPress URL 末尾添加“:81”,看看效果如何。

我不知道它是如何工作的,但它确实有效。我删除了我所做的所有更改,然后重新开始。 现在我没有触及 000-default.conf 文件,我只是添加了 wordpress.conf 文件并在其中编写了下面提到的 vhost 代码。

Listen 81

<VirtualHost *:81>

        ServerAdmin webmaster@localhost
        DocumentRoot /srv/wordpress
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

让我通过 运行 $apache2ctl configtest 命令测试 Apache 语法,它显示 syntax ok。 然后我通过 运行 $service apache2 reload;

重新加载apache服务器

最后,我打开 172.20.x.y:81,上面写着 "You do not have permission to access",此时我取消了部分代码apache2.conf 文件位于 /etc/apache2/。 就像

# <Directory /srv/>
#        Options Indexes FollowSymLinks
#        AllowOverride None
#        Require all granted
# </Directory>

改为

<Directory /srv/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

我再次重新加载 Apache 服务器。终于可以正常使用了。