对于第三个场景,您将面临更多的挑战,因为Apache已被Nginx取代,重写规则不再适用。请参阅我的详细博客文章“PHP 8 on Azure App Service“,了解如何使用新的Azure App Service for PHP 8解决此问题和其他挑战。 祝你好运,如果它解决了你的问题,请告诉我。
#!/bin/bash
echo "Copying custom default.conf over to /etc/nginx/sites-available/default.conf"
NGINX_CONF=/home/default.conf
if [ -f "$NGINX_CONF" ]; then
cp /home/default.conf /etc/nginx/sites-available/default
service nginx reload
else
echo "File does not exist, skipping cp."
fi
5条答案
按热度按时间n1bvdmb61#
转到Azure Web应用设置-〉应用程序设置-〉虚拟应用程序和目录,然后设置新文件夹的物理路径。另外,选中“应用程序”复选框。
重新启动Web应用一次。
thtygnil2#
有几种可能的情况:
1.您运行Windows应用程序服务
1.使用PHP 7.4或更低版本运行Linux应用程序服务
1.使用PHP 8运行Linux应用程序服务
在第一个场景(Windows App Service)中,您可以转到App Service〉Settings〉Configuration blade,需要选择“Path Mappings”选项卡,在该选项卡中可以按如下方式设置虚拟应用程序路径:“/”Map到“站点\wwwroot\public”。
在第二个场景中,您可以使用@Ed Greenberg描述的.htaccess解决方案,尽管对于Zend Framework,我建议使用以下设置:
对于第三个场景,您将面临更多的挑战,因为Apache已被Nginx取代,重写规则不再适用。请参阅我的详细博客文章“PHP 8 on Azure App Service“,了解如何使用新的Azure App Service for PHP 8解决此问题和其他挑战。
祝你好运,如果它解决了你的问题,请告诉我。
qlvxas9a3#
对于带有nginx的PHP 8.0,我使用startup.sh位于项目根目录下的www.example.com脚本。startup.sh包含以下行:
您需要在“startup.sh常规设置”中添加“www.example.com“作为启动命令。现在“public”目录是您的根目录。
g6ll5ycj4#
2021年的正确答案(对于Laravel,可能还有其他带有/public目录的框架)是在webroot目录下放一个额外的.htaccess。
贷记Azure Web App - Linux/Laravel : Point domain to folder
jckbn6z75#
最后我找到了Laravel文档如何使它与Azure一起工作。更准确地说-PHP 8 + NGINX。这里是文章链接-https://azureossd.github.io/2022/04/22/PHP-Laravel-deploy-on-App-Service-Linux-copy/index.html
希望它会有用:-)
PHP 8(网络加密语言)
Azure应用服务Linux上的PHP 8使用NGINX作为Web服务器。若要让NGINX将请求路由到/public,我们必须配置自定义启动脚本。我们可以获取/etc/nginx/sites-available/default.conf下的现有default. conf,然后运行cp /etc/nginx/sites-available/default.conf /home。这会将所需的default.conf复制到/这样我们就可以用FTP客户端或任何其他允许这样做的工具下载它。
此默认.conf包含以下行:
我们需要将其更改为以下内容:
接下来,在location块下,我们需要将其从:
改为:
现在配置实际的startup.shbash脚本。注意,只要是Bash(.sh)脚本,文件名可以是任意的。请沿着以下命令行配置文件:
注意:$query_string也可以使用。请参阅这里的官方文档。
我们的自定义default.conf应该如下所示:
使用FTP客户端将startup.sh脚本和自定义default.sh上载到PHP应用程序服务的/home目录。
接下来,在门户目标/home/startup.sh(或任何启动脚本文件名)中的“配置”下。
Laravel应用程序
最后,重新启动应用服务。现在应该使用我们的自定义启动脚本。使用LogStream或Diagnose and Solve -〉Application Logs detector,或其他方法,查看脚本中的stdout。