【问题标题】:Laravel error: symlink() has been disabled for security reasonsLaravel 错误:出于安全原因,symlink() 已被禁用
【发布时间】:2018-10-03 11:22:23
【问题描述】:

我正在尝试设置一个已存在于共享主机上的 laravel cms 系统。但是当我在这个共享主机目录上设置我的 laravel 项目时,我收到错误
symlink() has been disabled for security reasons
我似乎无法找到关于如何在我的情况下解决此问题的适当解释。我只是第一次收到这个错误,当我刷新这个错误时,它就消失了。

【问题讨论】:

  • 托管问题。函数symlink() 被禁用,这就是它不能被调用的原因。您需要通过 php.ini 启用它或使用适当的主机。
  • 如何在php.ini中启用

标签: php laravel-5 symlink


【解决方案1】:

在您项目的公共目录中,手动创建一个 storage 文件夹。

这对我有用

【讨论】:

    【解决方案2】:

    您可以通过 SSH 下载 Putty 登录到您的服务器来为所需目录创建符号链接,然后使用您的服务器凭据通过 putty 登录到您的服务器。您可以使用 linux 命令创建符号链接:

    ln -s TARGET LINK_NAME
    

    -s 表示符号的地方。

    【讨论】:

    • 在我的情况下,php 代码无法创建符号链接,所以我尝试使用 sssh
    【解决方案3】:

    问题可能是您的托管服务提供商不允许您创建 smlink。您是否检查过是否是这种情况? 如果是这样,一个建议是将您应该放在符号链接文件夹中的文件直接写入网站的公共区域,这样就不需要符号链接。

    【讨论】:

      【解决方案4】:

      有 2 个选项可以解决这个问题;

      1. 使用任何支持的文件存储服务,例如 Amazon S3、Dropbox、FTP、Rackspace

      2. 按照以下步骤操作; 在 /public 文件夹中创建一个名为 /storage 的文件夹 将所有文件夹从 /storage/app/public/ 移动到您创建的文件夹 /public/storage/ 打开文件 config/filesystems.php 并更改值,如图所示;

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

      现在打开文件 .env 并更改或创建如下所示的值;

      AVATAR_DIR=avatars
      SIGNATURE_DIR=signatures
      LOGOS_DIR=logos
      MEDIA_DIR=media
      

      【讨论】:

        【解决方案5】:

        经过一番努力,这个技巧在 Laravel 项目的共享托管服务器上为我工作。

        1. 通过 SSH 或直接从 CPanel 与服务器端连接

        2. 在终端运行此命令

          ln -s /folder-path-with-name-to-be-linked /folder-paht-where-you-want-to-link-it

        例如在我的情况下

        ln -s /home/user-name/public_html/domain-folder-name/storage/app/public /home/user-name/public_html/domain-folder/public/

        注意:您不需要更改 php.ini 和 .htaceess 文件。 参考链接: https://unix.stackexchange.com/questions/141436/too-many-levels-of-symbolic-links/141442#141442?newreg=14b52f3d6fcb454399a1a1a66e2170df

        【讨论】:

          猜你喜欢
          • 2018-07-01
          • 1970-01-01
          • 2014-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多