【问题标题】:Laravel smlink not foundLaravel smlink 未找到
【发布时间】:2020-08-22 05:46:10
【问题描述】:

我将我的 laravel 网站上传到共享主机“。除了我无法检索存储在 storage/public 文件夹中的图像之外,一切正常。我跑了

 "php artisan storage:link" 

但它说没有找到。我也试过了

rm storage

但 getthe 消息 rm: 无法删除。是目录 php artisan storage:link output from ssh command

【问题讨论】:

  • 这可能是很多事情。因为您使用的是共享主机,所以我怀疑存在权限问题。您可以通过将公共存储链接到公共文件夹来绕过此问题。这样你就不需要使用符号链接了。
  • 我怀疑它也是权限问题。我怎么能链接它?
  • chown -R www-data:www-data /var/www/project/ 授予存储权限
  • 您是如何“上传”您的网站的?您是否检查过符号链接是否指向正确的目录?这与 Composer 有什么关系?

标签: php laravel composer-php shared-hosting


【解决方案1】:

注意,我没有解决最初的答案,因为它听起来不像可以做到。这是另一种解决方案。

解决方案

在您的 config/filesystems.php 文件中,您将看到以下代码(或类似代码)。

    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
        ],

    ],

要将您的公共磁盘链接​​到公共目录而不使用操作系统符号链接,请将disks['public']['path'] 更改为您选择的公共路径。例如,

    'disks' => [
        /** -- skipped code **/
        'public' => [
            'driver' => 'local',
            'root' => __DIR__ . '../public/images/`,
            'url' => env('APP_URL').'/images',
            'visibility' => 'public',
        ],
        /** -- skipped code **/
    ],

另一种解决方案

您也可以完全使用 S3 存储。这会将您连接到您可以使用的 AWS 存储桶。

个人轶事

使用 Laravel 共享托管可能会很棘手。我会尽快过渡。我使用 Laravel Forge 部署服务器,使用 Digital Ocean 或 AWS 进行托管。

【讨论】:

    猜你喜欢
    • 2018-05-03
    • 2016-11-14
    • 2021-03-21
    • 2017-07-17
    • 2019-10-20
    • 2019-08-10
    • 2021-02-27
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多