gpt4 book ai didi

Laravel - AWS Beanstalk - 存储符号链接(symbolic link)不起作用(403 错误)

转载 作者:行者123 更新时间:2023-12-04 02:49:19 24 4
gpt4 key购买 nike

我正在使用弹性 beanstalk 来部署我的 laravel 应用程序。除了我的图像之外,一切都运行良好,因为我需要创建一个带有存储的符号链接(symbolic link)才能公开访问它。

附言在我的本地工作正常

我的 .ebextensions 文件如下 -

commands:
composer_update:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /root

container_commands:
01-install_dependencies:
command: "php /usr/bin/composer.phar install"
cwd: "/var/app/ondeck"
02_storage_sym_link:
command: "php artisan storage:link"
cwd: "/var/app/ondeck"
leader_only: true

下面是来自我的 ec2 实例的日志,用于确认该命令工作正常并且链接已成功创建。
[2019-04-21T15:47:16.899Z] INFO  [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Test for Command 02_storage_sym_link] : Starting activity...
[2019-04-21T15:47:16.903Z] INFO [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Test for Command 02_storage_sym_link] : Completed activity. Result:

Completed successfully.
[2019-04-21T15:47:16.903Z] INFO [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Command 02_storage_sym_link] : Starting activity...
[2019-04-21T15:47:17.014Z] INFO [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Command 02_storage_sym_link] : Completed activity. Result:
The [public/storage] directory has been linked.

我得到的错误如下,这使得图像无法供公众访问。
Forbidden
You don't have permission to access /storage/blog/images/8Yhb4OZJQIKwlMGaGE803niTxyjfzNSVTj2BiPaP.gif on this server.

感谢任何指导我走上正确道路的帮助。干杯!

编辑 1:
container_commands:
01-install_dependencies:
command: "php /usr/bin/composer.phar install"
cwd: "/var/app/ondeck"
02_storage_sym_link:
command: "ln -s storage/app/public public/storage"
cwd: "/var/app/ondeck"
03_give_ec2_user_perm_1:
command: "sudo chown -R ec2-user /var/app/current"
03_give_ec2_user_perm_2:
command: "sudo chmod -R 777 /var/app/current"

尝试手动创建符号链接(symbolic link)并授予 ec2 用户权限。 但仍然没有运气:(

最佳答案

放下备用选项对于那些/可能有类似问题的人来说,这可以完成工作 -

在您的 Laravel 应用程序中使用 S3 进行文件存储。

为了实现它——

  • 创建一个公共(public) S3 存储桶。
  • 创建一个具有完全访问权限的 IAM 用户
    S3 存储桶。 (使用访问 key ,应用程序将拥有
    在 S3 存储桶中读取和写入的权限。)
  • 更新配置文件filesystems.php使用 S3 存储桶。 (此配置处理应用程序的存储配置。)

  • 引用 Laravel Doc了解更多信息。

    感谢@PranavanSp 的建议。

    关于Laravel - AWS Beanstalk - 存储符号链接(symbolic link)不起作用(403 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55784328/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com