joro / typo3reversedeployment
导出数据库和文件到您的TYPO3开发安装
v2.1.2
2021-12-31 02:18 UTC
Requires
- php: ^7.2 || ^8.0
- symfony/process: ^5.3
Requires (Dev)
- phpstan/phpstan: ^0.12.99
- phpunit/phpunit: ^9.5
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;
}
用法
- 在
.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);
- 运行
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