使用php fpm重新启动将Laravel部署到apache

使用php fpm重新启动将Laravel部署到apache,laravel,gitlab,continuous-deployment,Laravel,Gitlab,Continuous Deployment,我对laravel和CI/CD的概念很陌生。但我在过去的24小时里投入了很多精力来启动和运行一些东西。实际上我用的是回购协议。在这里,我配置了CI/CD功能 应该对SRV1进行部署,该用户已使用证书配置了相应的用户。SRV1应该使用deployer从gitlab repo克隆必要的文件。gitlab repo还具有来自SRV1user的公钥。这条链条运转得很好 问题是,在部署之后,我需要重新启动php fpm,以便它可以重新初始化其符号链接并更新其绝对路径缓存 我看到了通过在php fpm中设置

我对laravel和CI/CD的概念很陌生。但我在过去的24小时里投入了很多精力来启动和运行一些东西。实际上我用的是回购协议。在这里,我配置了CI/CD功能

应该对
SRV1
进行部署,该用户已使用证书配置了相应的用户。
SRV1
应该使用deployer从gitlab repo克隆必要的文件。gitlab repo还具有来自
SRV1
user的公钥。这条链条运转得很好

问题是,在部署之后,我需要重新启动php fpm,以便它可以重新初始化其符号链接并更新其绝对路径缓存

我看到了通过在php fpm中设置一些cgi设置来克服这一问题的各种方法。但是这些都不适合我,因为它们都在使用nginx,而我在使用apache

有没有其他方法告诉php fpm with apache重新初始化其路径或在更改后重新加载? 将deployer用户添加到sudoers列表并调用服务重启php fpm的方法在我看来非常粗糙

谢谢

更新1:

事实上,我发现:

看起来,部署人员有一些技术可以做到这一点。但这需要部署者用户具有php fpm重载的访问权限。我觉得有点不安全

我没有找到其他解决办法。nginx有一些方法可以告诉nginx始终重新评估实际路径。显然,对于Apache,它应该是“followSymLink”,但它不起作用

实际上,我创建了一个在root下运行的bash脚本。此脚本始终每10秒检查一次“当前”符号链接中的更改。如果有更改->重新加载php fpm。不好,当然很难看,但应该管用


仍然可以接受其他建议。

我通过添加一个清除APCU和OPCACHE的php文件,在服务器上解决了这个问题:

<?php
if (in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1']))
{
    apcu_clear_cache();
    apcu_clear_cache('user');
    apcu_clear_cache('opcode');
    opcache_reset();
    echo "Cache cleared";
}
else
{
    die("You can't clear cache");
}
我使用Gitlab CI/CD,现在它对我有效

/usr/bin/curl --silent https://domain.ext/clear_apc_cache.php