下面的文档描述了一个通用的工作流,用于创建当前不在git上的生产日志的基于git的沙箱。它提供了如何限制意外访问、发送电子邮件等说明。YMMV。适应自己的环境;使用自理风险。
这里的自述:https://github.com/pkp/ojs有从git安装的说明。我们所做的是:
创建一个MySQL或PostgreSQL的OJS用户和数据库。我们使用的命令如下;根据您的环境、根目录的访问权限等,您的情况可能会有所不同:
MySQL
mysql -u root -e "CREATE DATABASE ' ojs-sandbox ' DEFAULT CHARACTER SET UTF8;GRANT ALL ON ' ojs-sandbox '。* TO 'ojs' @localhost IDENTIFIED BY 'ojs'
PostgreSQL
psql -h localhost -U postgres -d postgres -c "CREATE USER ojs WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOREPLICATION NOBYPASSRLS ENCRYPTED PASSWORD 'ojs';评论角色ojs是“网站管理员”;CREATE DATABASE ojs-sandbox OWNER ojs- w
从GitHub检查稳定的分支。该路径将特定于你的Apache安装,你可以更新分支到最新的稳定分支:
$BRANCH——depth 1 https://github.com/pkp/ojs.git ./ git BRANCH——unset-upstream $BRANCH chmod -R 755 * ./ /创建分支
从GitHub中获取相应的PKP库并校验稳定分支,确保该分支与上面引用的相同分支相对应:
Git子模块update——init——recursive——depth
安装作曲家:
cd . . / . .php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') {echo 'Installer installed ';} else {echo '安装程序损坏';分离(“composer-setup.php”);} echo " php composer-setup.php "unlink('composer-setup.php');"
安装作曲家依赖关系:
CD lib/pkp PHP .. ./composer. .Phar——no-dev install CD ./..php /插件/ paymethod /贝宝 ../../../ 作曲家。Phar——no-dev install CD ../../插件/一般/ citationStyleLanguage php ../../../ 作曲家。phar——no-dev安装
安装Node.js依赖项(注意:npm必须安装在服务器上):
cd . . / . . / . .安装NPM,运行build
创建一个新的配置文件:
cd . . / . . / . .cp config.TEMPLATE.inc.php config.inc.php chmod 600 config.inc.php
此时,你应该已经有了一个完全准备好的OJS 3系统和数据库。
删除Acron插件(Acron插件可以在不依赖cron作业的情况下触发计划任务运行):
Rm -rf lib/pkp/plugins/generic/acron . xml文件
这个插件将不得不重新安装后,你进入生产,如果你是通过git运行的事情,你可以做:
Git checkout plugins/generic/acron CD lib/pkp Git checkout plugins/generic/acron
这些命令在生产安装中执行,是典型的备份/归档命令。
数据库:
Mysqldump db\_name——opt——default-character-set=utf8——result-file=~/client\_db。SQL -u db\_user -p
pg_dumpall -U postgres -h localhost -d postgres > ~/client_db.sql
提交文件:你可以在OJS config.inc. .php文件中找到正确的目录,查找“files_dir”参数。我们通常压缩它,使它更容易传输:
CD tar -cvzf ~/files.tar.gz ./
公共文件:这可以包括像封面图片等,并且位于OJS系统目录的" Public / "子目录中:
CD /public tar -cvzf ~/public.tar.gz ./
将文件传输到登台服务器:我们通常使用scp
或rsync
.你们的系统人员应该知道在这里使用什么,但对我们来说,通常是这样的:
rsync \ _db -avz客户机。SQL username@stagingserver.org:/~ rsync -avz public.tar.gz username@stagingserver.org:/~ rsync -avz files.tar.gz username@stagingserver.org:/~
安装数据库(这可能取决于您之前指定的用户名、数据库名和密码):
Mysql -u ojs-sandbox -p ojs-sandbox < ~/client\_db.sql
psql -U postgres -h localhost -f ~/client_db. psqlsql postgres
安装提交文件:
Tar -xvf ~/files. Tar .gz . Tar .gz
安装公共文件:
Tar XVF ~/public. Tar .gz /public/
编辑config.inc.php
文件并更改database和files_dir参数。
vi config.inc.php
此时,所有相关文件和DB表都应该到位,配置文件应该指向这些位置。
如果您在自己的服务器上运行沙箱,您可能需要考虑禁用服务器上的任何和所有电子邮件功能。但以下方法也可以使用(任何发送的电子邮件都将被发送到非生产电子邮件地址)。
您可以将您的电子邮件地址设置为Mailinator还地址,这意味着电子邮件将被发送到可访问的公共收件箱(如username@mailinator.com),或使用一个虚假的电子邮件地址。您还可以根据不同的用户角色设置邮件。你首先需要访问你的数据库:
Mysql -u ojs -pojs -sandbox
psql -h localhost -U ojs -d 'ojs-sandbox'
设置所有用户邮箱地址为username@mailinator.com:
UPDATE users SET email=CONCAT\(username,'@mailinator.com ' \);
将所有与投稿相关的电子邮件,例如投稿者的邮件,设置为test@example.com:
UPDATE author SET email = 'test@example.com '
我们通过在沙箱的web根目录中添加。htaccess和。htpasswd保护来实现对所有沙箱的保护。你的系统人员会知道怎么做。
从沙箱web根运行以下命令:
php工具/ upgrade.php升级
现在,如果升级完成,你应该有一个干净的,受保护的沙箱升级运行OJS 3,你可以通过git管理。