如何更改 PHP 天蓝色网站的根目录?

How to change root directory for PHP azure website?

我使用应用服务在 Azure 上创建了一个 PHP 网站。我通过 bitbucket 使用持续部署。我需要将网站指向我代码中的 public 文件夹,指向 运行 应用程序,因为它是使用 zend 框架构建的。

经过一番搜索,未能找到如何更改服务器指向默认目录的文件夹。

转到 Azure Web 应用程序设置 -> 应用程序设置 -> 虚拟应用程序和目录并设置新文件夹的物理路径。同时选中“应用程序”复选框。

重新启动网络应用程序一次。

2021 年的正确答案(对于 Laravel,可能还有其他带有 /public 目录的框架)是在 webroot 目录中放置一个额外的 .htaccess。

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^(.*)$ public/ [L]
</IfModule>

归功于 Azure Web App - Linux/Laravel : Point domain to folder

有几种可能的情况:

  1. 你运行一个Windows应用服务
  2. 您 运行 Linux 应用服务PHP 7.4 或更低
  3. 您 运行 一个 Linux 应用服务 PHP 8

在第一种情况下(Windows 应用服务),您可以转到应用服务 > 设置 > 配置 blade 您需要 select 您所在的“路径映射”选项卡可以按如下方式设置虚拟应用程序路径:“/”映射到“site\wwwroot\public”。

在第二种情况下,您可以使用@Ed Greenberg 描述的 .htaccess 解决方案,即使对于 Zend Framework,我建议使用以下设置:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

对于第三种情况,您面临更多挑战,因为 Apache 已被 Nginx 取代,并且重写规则不再适用。请参阅我的详细博客文章“PHP 8 on Azure App Service”,了解如何使用适用于 PHP 8.

的新 Azure 应用服务解决这个问题和其他挑战

祝你好运,如果它解决了你的问题,请告诉我。