标签: php-deployer

使用 php-deployer 时如何设置发布限制?

我正在使用 PHP 部署器 6.6.0 来部署基于 Laravel 的网站。

每次部署时它都会创建一个新版本。目前,我有超过 10 个版本,它占用了大量磁盘空间。

我不想保留超过最后 3 个版本的版本,并且需要旧版本自动滚动。

如何指定要保留的最大版本数?

php laravel php-deployer

8
推荐指数
1
解决办法
2597
查看次数

如何将 Deployer 与 Docker (Laradock) 一起使用

我使用 Docker 创建了一个新的 Digital Ocean 服务器(使用Laradock),并使我的 Laravel 网站运行良好。

\n\n

现在我想使用Deployer自动化部署。

\n\n

我认为我唯一的问题是我无法让 Deployer 运行docker exec -it $(docker-compose ps -q php-fpm) bash;,这是我成功手动使用进入适当 Docker 容器的命令(在使用 SSH 从我的本地计算机连接到 Digital Ocean 服务器之后)。

\n\n

当 Deployer 尝试运行它时,我收到以下错误消息:

\n\n
\xe2\x9e\xa4 Executing task execphpfpm\n[1.5.6.6] > cd /root/laradock && (pwd;)\n[1.5.6.6] < /root/laradock\n[1.5.6.6] > cd /root/laradock && (docker exec -it $(docker-compose ps -q php-fpm) bash;)\n[1.5.6.6] < the input device is not a TTY\n\xe2\x9e\xa4 Executing task deploy:failed\n\xe2\x80\xa2 done on [1.5.6.6]\n\xe2\x9c\x94 Ok [3ms]\n\xe2\x9e\xa4 Executing task …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose php-deployer laradock docker-exec

6
推荐指数
1
解决办法
5709
查看次数

Windows 10 上出现错误“getsockname 失败:不是套接字”

我通过 cmd 成功连接到服务器,但发送部署命令后出现错误

\n

error getsockname failed: Not a socket

\n

从项目目录在 cmd 中运行命令\ncall vendor/bin/dep deploy st1

\n

部署程序版本:6.8.0\nPHP 版本:7.3\n我的操作系统:Windows 10 x64

\n
\xe2\x9c\x88\xef\xb8\x8e Deploying master on st1.XXXX.ru\n\n\xe2\x9e\xa4 Executing task deploy:prepare\n\n\xe2\x9c\x94 Executing task deploy:failed\n\n\xe2\x9e\xa4 Executing task deploy:unlock\n\nIn Client.php line 103:\n\n  The command "rm -f /home/admin/web/st1.XXXX.ru/.dep/deploy.lock" failed.  \n\n  Exit Code: -1 (Unknown error)\n\n  Host Name: st1.XXXX.ru\n\n  ================\n  getsockname failed: Not a socket\n  packet_write_poll: Connection to UNKNOWN port -1: Permission denied        \n
Run Code Online (Sandbox Code Playgroud)\n

ssh php-deployer

6
推荐指数
1
解决办法
4994
查看次数

deployer.org如何更改发行版文件夹的名称

通过命令将其部署到服务器后:

bin/dep deploy
Run Code Online (Sandbox Code Playgroud)

在“ releases”文件夹我有一个名为文件夹喜欢123,...

我如何将其更改为时间戳,所以在部署命令之后,我将得到类似这样的信息,20160425120500而不是1

bin/dep --version
Deployer 6.0.5
Run Code Online (Sandbox Code Playgroud)

php-deployer

5
推荐指数
1
解决办法
394
查看次数

如何在 PhpStorm 中包含 PHAR 的一部分包含路径

我正在使用 PhpStorm 和Deployer,因此我包含deployer.phar在 PHP Include 路径中以在文件中自动完成deploy.php。包含整个deployer.pharPhpStorm 后抱怨重复的类定义 - 一个来自我的应用程序供应商目录,第二个来自deployer.phar供应商目录。

是否可以以某种方式配置 PhpStorm Include 路径,以便仅src包含 PHAR 文件的某些部分(例如仅包含目录)?这不起作用:

/path/to/deployer.phar/src
Run Code Online (Sandbox Code Playgroud)

也不是这个:

phar:///path/to/deployer.phar/src
Run Code Online (Sandbox Code Playgroud)

我想避免安装deployer/deployer为作曲家开发包。

编辑

看来即使在包含路径中添加单个 PHAR 文件也是一种黑客行为。

php phar phpstorm php-deployer

5
推荐指数
1
解决办法
576
查看次数

在符号链接部署中启用 Opcache 文件缓存时,是什么导致了段错误?

我正在使用 PHP 部署程序,它是一个基于符号链接的部署工具,opcache:reset在部署后调用。

最近,我在部署后的 PHP-FPM 进程中遇到了段错误。

这表现为 PHP 日志中的段错误/内存耗尽警告正在输出或来自 Apache 的 500/503 错误。

多年来这一直运作良好,所以我很困惑到底是什么导致了这种情况的发生。

在第一个段错误之后,我可以在受影响池的每个页面刷新上重现此情况。

如果我重新启动 PHP-FPM 进程,第一次会正确提供页面,然后出现段错误。

我怀疑这与 Opcache 有关,因为如果我删除 Opcache 缓存文件并重新启动 PHP-FPM,问题就会消失。如果我禁用opcache.file_cache,那么就没有问题了。请注意,我并不专门使用文件缓存。

当我(不科学地)检查 PHP 在内存耗尽错误期间报告的文件的 opcache 版本时,我注意到它们似乎被截断或丢失了未发生段错误的 opcache 文件的先前版本中存在的数据。当我删除那些特定的 opcache 文件并重新启动 PHP-FPM 时,问题就消失了。因此,我认为 opcache 文件在部署之间似乎已损坏。

环境:

  • CentOS 7.9.2009
  • PHP 7.4.15
  • 每个池都配置为在其自己的用户下运行
  • Opcache 文件存储在 /var/www/vhosts/[project]/opcache 中
  • SELinux 已启用

我的 opcache 配置:

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=96
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=4096
opcache.max_wasted_percentage=5
opcache.validate_timestamps=1
opcache.revalidate_path=0
opcache.revalidate_freq=2
opcache.max_file_size=0
Run Code Online (Sandbox Code Playgroud)

核心转储:

GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 Free …
Run Code Online (Sandbox Code Playgroud)

php opcache php-deployer fpm

5
推荐指数
1
解决办法
2137
查看次数

Deployer - 致命错误:调用未定义的函数服务器()

部署者版本4.1.0

运行时dep deploy test报告以下错误:

PHP致命错误:调用未定义的函数服务器()

server ftn在配置文件中定义如下:

// Configure servers
server('test', 'test.server.com')
    ->user('user')
    ->identityFile('~/.ssh/id.pub', '~/.ssh/user', 'password')
    ->stage("test")
    ->env('deploy_path', '/var/www/project.com');  
Run Code Online (Sandbox Code Playgroud)

根据Deployer网站,这几乎是标准.还有其他人遇到过这个问题吗?如果是这样你是如何解决的?

php php-deployer

4
推荐指数
1
解决办法
3154
查看次数

通过 php-deployer 部署后无需密码重新加载 php-fpm

我想要实现的是,php7.2-fpm通过php-deployer重新加载服务。
根据php-deployer's documentation,它可以像下面的代码一样完成:

task('reload:php-fpm', function () {
    run('sudo /usr/sbin/service php7-fpm reload');
});

after('deploy', 'reload:php-fpm');
Run Code Online (Sandbox Code Playgroud)

但是,我在部署时遇到以下错误:

? 执行任务部署:reload_php_fpm

? 在 [生产]

须藤服务 php7.2-fpm 重新加载

在 PhpSecLib.php 第 124 行:
[RuntimeException]
sudo: no tty present and no askpass program specified

系统信息:

PHP 7.2 版
Ubuntu 18.04 LTS
PHP-Deployer 6.3.0 版

你知道我该如何解决这个问题吗?

php sudoers php-deployer fpm

4
推荐指数
1
解决办法
1256
查看次数

Yii2应用程序部署后重定向错误太多次

我正在尝试使用Deployer部署我的Yii2应用程序

我的服务器是Ubuntu server 16.4.10 LTS,我已经配置好了一切,当我只是使用filezilla将项目复制到服务器时一切正常但是当我用deployer部署它时我在google chrome中得到了这个错误:

Redirected too many times
Run Code Online (Sandbox Code Playgroud)

我尝试过几次不同的配置部署,但我得到了同样的错误.
ps:我已经使用部署程序为我的其他项目使用此配置类型,它没有任何问题.

php deployment yii yii2 php-deployer

2
推荐指数
1
解决办法
1710
查看次数

一旦告诉我的共享主机,如何告诉Deployer使用不同的PHP版本?

我正在尝试使用Deployer从本地将Laravel应用程序部署到共享托管中(使用laravel配方)~/Code/project_foo

关键是当我通过连接到共享托管服务器时ssh,默认php -v版本是5.6.33。我确认可以通过调用php70 -v甚至整个路径(例如)来动态更改php版本/usr/local/bin/php70 whatever

关键是我不知道如何告诉部署者使用php70必需的命令来调用命令,否则会composer install失败。

在此处输入图片说明

所以在终端中,我位于Laravel项目的根目录下,我只是简单地调用:

dep deploy

deploy.php很凌乱而且非常简单,但这只是概念的证明。我正在尝试找出所有问题,然后使它看起来更好。

在此处输入图片说明

我检查了laravel配方源代码,然后看到有:

{{bin/php}}

但我不知道如何覆盖该值以匹配托管告诉我的使用:

/usr/local/bin/php70

请给我任何提示,一旦连接到远程主机/服务器,如何强制脚本使用不同的PHP版本。

这是整个脚本:

<?php
namespace Deployer;

require 'recipe/laravel.php';


//env('bin/php', '/usr/local/bin/php70'); // <- I thought that this will work but it doesn't change anything


// Project name
set('application', 'my_project');

// Project repository
set('repository', 'git@github.com:xxx/xxx.git');

// [Optional] Allocate tty for git clone. Default value is false. …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 php-7 php-deployer

0
推荐指数
2
解决办法
578
查看次数