joro/typo3reversedeployment

导出数据库和文件到您的TYPO3开发安装

v2.1.2 2021-12-31 02:18 UTC

This package is auto-updated.

Last update: 2024-08-29 04:43:07 UTC


README

功能

  • 导出TYPO3数据库并下载(排除表)
  • 仅下载引用的文件到您的本地fileadmin
  • 下载特定文件夹如./uploads或下载整个fileadmin

要求

  • TYPO3 Console (>=4.6) 在远程TYPO3安装上
  • 到远程服务器的SSH连接
  • 使用rsync下载文件
  • 支持TYPO3 7.x/8.x/9.x/10.x

⚠️ 在版本2.0.0中,...->ssh('example.org'); 变更为 ...->setRemoteServer('example.org');

安全性

应保护创建的临时文件免受公共访问

Apache

代码将在 typo3temp/joro_typo3reversedeployment 内查找 .htaccess 文件,并在需要时创建它。

示例内容

 deny from all

NGINX

将此添加到您的NGINX配置中,以禁用公共访问临时文件

location ~ /\.(?!joro_typo3reversedeployment).* {
    deny all;
}

用法

  1. .reverse文件夹中创建一个新文件,例如.reverse/remote.php
<?php

$reverseDeploy = new \JoRo\Typo3ReverseDeployment();

/**
 * Set server paths
 */
$reverseDeploy->setTypo3RootPath('/var/www/html/');
// optional: $reverseDeploy->setPhpPathAndBinary('/usr/local/bin/php_cli');

/**
 * Connect to Server
 */
$reverseDeploy->setUser('USERNAME');
$reverseDeploy->setRemoteServer('example.org');
// optional: $reverseDeploy->setPrivateKey(getenv('HOME') . '/.ssh/id_rsa');
// optional: $reverseDeploy->setSshPort(222);

/**
 * Get database
 */
$reverseDeploy->setSqlExcludeTable(['sys_log']);
$reverseDeploy->setSqlTarget("./tmp/");
$reverseDeploy->getDatabase();

/**
 * Get fileadmin
 */
// optional - download only used files: $reverseDeploy->setFileadminOnlyUsed(true);
// optional - to download files in ddev docker container: $reverseDeploy->setLocalTempPath('/var/www/web/');
$reverseDeploy->setFileTarget("./fileadmin/");
$reverseDeploy->getFiles($ssh);
  1. 运行vendor/bin/typo3reverse

添加/删除文件包含/排除的方法

向/从排除数组中添加/删除项

$reverseDeploy->addExclude(["uploads"]);
$reverseDeploy->removeExclude(["uploads"]);

向/从包含数组中添加/删除项

$reverseDeploy->addInclude(["uploads"]);
$reverseDeploy->removeInclude(["uploads"]);

使用带密码的SSH密钥

您可以根据此示例定义您的密码

/**
 * Connect to Server
 */
$reverseDeploy->setPrivateKeyPassphrase('mypassword');
$reverseDeploy->setUser('USERNAME');
$reverseDeploy->setRemoteServer('example.org');

如果您不想将密码存储在文件中,您可以使用环境变量

/**
 * Connect to Server
 */
$reverseDeploy->setPrivateKeyPassphrase(getenv('PASSPHRASE'));
$reverseDeploy->setUser('USERNAME');
$reverseDeploy->setRemoteServer('example.org');

然后,您可以使用如下命令开始反向部署

PASSPHRASE=mypassword vendor/bin/typo3reverse

构建phar文件

使用 MacFJA/PharBuilder 包创建PHAR文件

有关配置,请参阅composer.json中的extra -> phar-builder

php -d phar.readonly=0 vendor/bin/phar-builder package