跳转到目录

附录A:用Git创建一个受保护的OJS 3沙箱

下面的文档描述了一个通用的工作流,用于创建当前不在git上的生产日志的基于git的沙箱。它提供了如何限制意外访问、发送电子邮件等说明。YMMV。适应自己的环境;使用自理风险。

准备Git环境

这里的自述:https://github.com/pkp/ojs有从git安装的说明。我们所做的是:

  1. 创建一个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
  2. 从GitHub检查稳定的分支。该路径将特定于你的Apache安装,你可以更新分支到最新的稳定分支:

    $BRANCH——depth 1 https://github.com/pkp/ojs.git ./ git BRANCH——unset-upstream $BRANCH chmod -R 755 * ./ /创建分支
  3. 从GitHub中获取相应的PKP库并校验稳定分支,确保该分支与上面引用的相同分支相对应:

    Git子模块update——init——recursive——depth
  4. 安装作曲家:

    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');"
  5. 安装作曲家依赖关系:

    CD lib/pkp PHP .. ./composer. .Phar——no-dev install CD ./..php /插件/ paymethod /贝宝  ../../../ 作曲家。Phar——no-dev install CD ../../插件/一般/ citationStyleLanguage php  ../../../ 作曲家。phar——no-dev安装
  6. 安装Node.js依赖项(注意:npm必须安装在服务器上):

    cd . . / . . / . .安装NPM,运行build
  7. 创建一个新的配置文件:

    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

备份和复制提交文件、公共文件和数据库文件

这些命令在生产安装中执行,是典型的备份/归档命令。

数据库:

  • MySQL:我们通常使用mysqldump来复制数据库:
    Mysqldump db\_name——opt——default-character-set=utf8——result-file=~/client\_db。SQL -u db\_user -p
  • PostgreSQL:我们通常用pg_dumpall要复制数据库和集群范围的数据(如用户定义):
    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 ./

将文件传输到登台服务器:我们通常使用scprsync.你们的系统人员应该知道在这里使用什么,但对我们来说,通常是这样的:

rsync \ _db -avz客户机。SQL username@stagingserver.org:/~ rsync -avz public.tar.gz username@stagingserver.org:/~ rsync -avz files.tar.gz username@stagingserver.org:/~

将提交文件、公共文件和数据库文件安装到正确的位置

安装数据库(这可能取决于您之前指定的用户名、数据库名和密码):

  • MySQL
    Mysql -u ojs-sandbox -p ojs-sandbox < ~/client\_db.sql
  • PostgreSQL
    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
    Mysql -u ojs -pojs -sandbox
  • PostgreSQL
    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管理。

Baidu