客户端将文件上传到开发服务器。当需要将项目上传到生产服务器时,不再需要这些文件,我们希望将它们从最终推送到生产的 tar 文件中排除。但是,我们仍然希望保持目录完整,只是不需要的文件
使用 Ubuntu 16 和 tar 1.28,我们尝试过:
tar -vczf archive.tar.gz . --exclude=wp-content/uploads/wpallimport/files/*
tar: Cowardly refusing to create an empty archive
Run Code Online (Sandbox Code Playgroud)
我们还尝试将 exclude= 参数括在单引号和双引号中,但没有成功。
tar -vczf archive.tar.gz . --exclude='wp-content/uploads/wpallimport/files/*'
tar: Cowardly refusing to create an empty archive
Run Code Online (Sandbox Code Playgroud)
在官方网站上显示--exclude没有等号
tar -vczf file.tar.gz --exclude 'directory/*' . 并给出相同的错误。
这是怎么做的?
我已将我们的服务器升级到包含 Mysql 5.7 的 Ubuntu 16,并且默认情况下启用了严格模式(尽管在任何配置文件中都没有针对它的条目)。
我们在导入在 mysql 5.6 及更早版本下生产的数据库时遇到问题,这是因为严格模式。默认情况下,这里是启用的:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
如何将 mysql 5.7 配置为与 5.6 完全一样工作,或者使 5.6 中的数据库与 5.7 兼容?
我的公司有一个人们注册的网络托管服务。注册过程完成后,我们手动进入并创建一个测试/开发环境供该客户端使用。一般流程是这样的:
somerandomstring.devserver.com尽管我们使用脚本来执行此操作,但数量决定了手动登录并运行它们现在很不方便。因此,我们希望在客户注册过程完成后立即自动触发此过程。
我想了几种方法来处理这个问题。
1) 赋予用户adduser能力并使用PHPexec()函数创建该用户。www-data不过,我必须赋予这种能力,对吗?PHP 在安全模式下运行时,exec() 的命令被限制在指定的目录中。因此,如果我将 /usr/sbin/adduser 复制到只有该命令可用的 /my/custom/dir ,那么挥之不去的安全问题会是什么?我仍然不知如何用新站点更新sites-available文件夹,因为这些文件夹归root所有。
2)让cron来做:一个人必须注册该服务,所以默认情况下他们有一个用户名和其他客户端数据存储在mysql中。从具有adduser功能的帐户中,让 cron 运行一个例行脚本来检查新帐户(可能每 30 到 60 秒一次)。如果找到,为它们创建一个 linux 帐户,填充主目录,写入 apache conf 虚拟主机文件,然后重新加载 apache。
选项 2 感觉是最安全的方式,因为独立的管理员帐户可以处理此问题,而无需 www-data 或网站必须执行系统脚本和程序。问题是批次。最好,我想找到一个选项 1 解决方案,以便立即注册客户端并将它们重定向到已安装并准备使用的服务器实例。我也不喜欢我不得不重新加载/重新启动 apache 这么多。
公司每天都这样做,尤其是网络托管公司。例如,Bluehost 完成注册过程后,您可以立即访问 /home/user/public_html 并与之交互。因为存在商业解决方案,我相信已经对如何安全可靠地完成它进行了很多思考。我想要完成的事情是相同的,只是规模要小得多。