首页 文章

如何在已部署的网站中创建符号链接

提问于
浏览
2

我是Laravel的新手,你知道为了访问存储文件,你应该有一个从存储/ app / public到public / storage的符号链接 . 在计算机中,您只需输入命令行:php artisan storage:link . 但现在我已将我的网站部署在托管上,并希望创建一个符号链接 . 我该怎么做?

4 回答

  • 0

    我担心这在共享主机上几乎是不可能的,因为您需要shell访问权来创建与计算机上相同的符号链接 .

    根据您的选择,Laravel Forge对您有所帮助 .

    亲切的问候

  • 0

    也许如果你可以在你的作曲家的“ scripts ”标签中添加一个调用来在项目部署后创建链接:

    composer.json 文件:

    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
            "php artisan storage:link"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
            "php artisan storage:link"
        ]
    }
    

    这将导致每次发生 **composer update****composer install** 调用时都会创建链接 .

    如果未创建存储文件夹,您将收到:

    The [public / storage] directory has been linked.
    

    如果已经创建:

    The "public / storage" directory already exists.
    

    另见此讨论可能对您有所帮助:https://github.com/laravel/internals/issues/34

  • 0

    Cron的工作对我来说是共享主机的诀窍 . 只需配置cron作业以在下一分钟(或特定关闭时间)运行命令,然后将其删除 .

    例如,这将在上午9:30运行命令并将任何输出记录到 myjob.log

    30 9 * * * /path/to/php /path/to/artisan storage:link >> /path/to/myjob.log 2>&1
    
  • 0

    只需在php文件中创建一个符号链接并将其上传到您的公共文件夹,然后通过浏览器导航到它 . 链接必须是绝对路径....

    $targetFolder = '/home/account_name/laravel/storage/app/public';
    
    $linkFolder = '/home/account_name/public_html/storage';
    
    symlink($targetFolder, $linkFolder);
    
    echo 'Done!'
    

    让我们将文件保存为link.php并上传然后通过http://your_site.com/link.php导航到它

相关问题