netcommons / netcommons3
NetCommons3
Requires
- cakedc/migrations: ~2.2@stable
- cakephp/cakephp: ~2.10@stable
- composer/installers: ~1.0@stable
- jms/serializer: 1.1.0@stable
- josegonzalez/cakephp-upload: ~2.0@stable
- mustangostang/spyc: ~0.6.2@stable
- netcommons/install: @stable
Requires (Dev)
- cakephp/cakephp-codesniffer: ~1.0@stable
- php-coveralls/php-coveralls: ~2.0@stable
- phpdocumentor/phpdocumentor: 2.*@stable
- phpmd/phpmd: ~2.6.0@stable
- phpunit/phpunit: ~5.7@stable
- sebastian/phpcpd: *@stable
This package is auto-updated.
Last update: 2024-09-11 15:33:40 UTC
README
国立情報学研究所正在开发下一代信息共享基础系统。有关支持信息、许可证等最新信息,请访问官方网站。此存储库是作为最新版v3开发的。请注意,这不是一个稳定版本。有关当前稳定版的信息,请参阅此存储库。
运行情况
以下组合已被验证可以运行。
安装
公共
请安装以下应用程序。
- virtualbox
- vagrant
- chef-dk
在Windows主机的情况下,请勿将vagrant安装在需要管理员权限的文件夹(Program Files等)中。否则,在vagrant启动时会发生错误。
安装依赖库
公共
vagrant插件
vagrant plugin install vagrant-hostmanager
vagrant plugin install vagrant-omnibus
vagrant插件(vagrant 1.4.x)
vagrant plugin install vagrant-berkshelf --plugin-version 1.3.7
vagrant插件(vagrant 1.5.x 1.6.x)
vagrant plugin install vagrant-berkshelf --plugin-version 2.0.1
vagrant插件(vagrant 1.7.2)
vagrant plugin install vagrant-berkshelf --plugin-version 4.0.4
ubuntu 12.10
sudo aptitude install zlib1g-dev ruby ruby-dev lsb-core libxml2-dev libxslt-dev libcurl4-gnutls-dev nodejs libmysql++-dev postgresql-server-dev-all
sudo npm install -g gfms grunt-cli
sudo easy_install -U sphinx sphinxcontrib-phpdomain
cd NetCommons3
bundle
OSX Mavericks
brew install libffi mysql postgresql
sudo npm install -g gfms grunt-cli
sudo easy_install -U sphinx sphinxcontrib-phpdomain
cd NetCommons3
bundle
Windows
安装git客户端
- msysgit
如果git命令的路径不通,将会出现以下错误。
[Berkshelf] Failed to download 'composer' from git: 'https://github.com/Morphodo/chef-composer.git' with branch: 'master'
在这种情况下,请尝试重新安装msysgit等。
Tar文件复制
除了git clone以外,推荐使用C:\HashiCorp\Vagrant\embedded\mingw\mingw32env.cmd。
由于Tar文件不足,请从Tar for Windows下载Binaries(Zip): tar-1.13-1-bin.zip 和 Dependencies(Zip): tar-1.13-1-dep.zip,并将解压后的文件复制到C:\HashiCorp\Vagrant\embedded\mingw中。
※ 忘记复制将会导致dep-selector-libgecode失败。
源代码配置
请使用git克隆此存储库或使用ZIP等下载。
使用git克隆时,请将源代码移动到想要配置的路径,并执行以下命令。
cd /usr/local/src
git clone https://github.com/NetCommons3/NetCommons3.git
Windows主机的情况下
关于git
我正在使用git的pre commit hook来阻止通过phpcs, phpmd, phpunit, php -l的commit,但是Windows的git客户端中存在忽略pre commit hook的客户端,因此请使用guest侧的git命令。
请只在第一次git clone时使用Windows主机侧的git命令。
synced_folder失效
从某个时间点开始,在Windows中synced_folder上无法创建symlink。
在启用synced_folder的情况下执行vagrant up将会破坏symlink。请在Vagrantfile中指定『disabled: true』如下。
node.vm.synced_folder '.', '/var/www/app',
:create => true, :owner=> 'www-data', :group => 'www-data'
↓
node.vm.synced_folder '.', '/var/www/app', disabled: true,
:create => true, :owner=> 'www-data', :group => 'www-data'
关于synced_folder的说明有3处,但请只修改上述部分。
Berksfile修正(仅限于vagrant1.4.x版本)
在vagrant-berkshelf的旧版本中,由于无法使用source,请执行以下修正,删除Berksfile.lock文件后,再执行vagrant up,否则会出现错误。
source 'https://api.berkshelf.com'
↓
site :opscode
启动
启动vagrant
在配置的源代码路径中启动vagrant。第一次可能需要下载OS,耗时较长。
vagrant up default
Windows主机的情况下
在vagrant正常启动后,通过SSH连接到vagrant创建的虚拟环境(guest环境),并执行以下命令。
请使用Putty等SSH客户端软件连接到127.0.0.1的端口2222进行SSH连接。
SSH认证的用户名和密码都是“vagrant”。
sudo -s
cd /var/www
rm -rf /var/www/app
git clone https://github.com/NetCommons3/NetCommons3.git app
chown -R www-data:www-data /var/www/app
chmod -R 775 /var/www/app
git clone https://github.com/NetCommons3/NetCommons3Docs.git docs
chown -R www-data:www-data /var/www/docs
chmod -R 775 /var/www/docs
之后,在主机侧执行以下命令。
vagrant provision default
在再次通过SSH连接到guest环境后,执行以下命令。
sudo -s
chown -R www-data:www-data /var/www/app
运行确认
在主机侧执行vagrant up后,将显示以下命令行。
----省略--------
[default]-- 22 => 2222 (adapter 1)
[default]-- 80 => 9090 (adapter 1)
----省略--------
分别是SSH和HTTP使用的端口号。
默认情况下使用上述端口号,但如果默认端口号正在使用中,可能需要使用其他端口号。
如果值不同,请适当阅读以下说明。
此外,在其他操作系统上,可以使用vagrant命令进行guest环境的SSH连接。
vagrant ssh
guest环境将创建以下vhosts,可以对其进行运行验证。
Windows主机的情况下
在执行vagrant up default时,hosts文件将添加以下设置。
127.0.0.1 app.local sphinx.local phpdoc.local phpldapadmin.local redmine.local jenkins.local
编辑hosts文件需要管理员权限。在执行vagrant up default时,将显示用户账户控制对话框,请点击“是”以允许编辑。
如果无法连接到上述URL,请检查hosts文件的设置。
开发
如果使用virtualbox的最新版和vagrant 1.4.x的组合在Windows主机侧编辑文件,则需要挂载以下samba进行工作。
\\10.0.0.10\shared\app
在其他OS上,可以直接编辑vagrant up的目录下的文件,host和guest之间可以同步文件。
结束
可以使用vagrant命令结束虚拟机或将其删除。
- 仅停止
vagrant halt
- 删除数据 次次执行vagrant up时,将从全新的安装开始。
vagrant destroy
- 如果provision,则需要添加default选项。
vagrant provision default
解决方案
- 如果虚拟化功能无效,在执行vagrant up时,如果显示虚拟化支持机构(VT-x/AMD-V)未启用消息,请检查BIOS设置。
此外,如果guest环境中没有生成/var/www/app/目录,可能虚拟化功能已被禁用。
- 如果在执行vagrant up default时显示以下错误消息(vagrant plugin安装遗漏)
There are errors in the configuration of this machine. Please fix the following errors and try again:
vm:
* The '' provisioner could not be found.
Vagrant:
* Unknown configuration section 'berkshelf'.
* Unknown configuration section 'hostmanager'.
* Unknown configuration section 'omnibus'.
如果显示上述错误消息,请安装 vagrant 插件。
另外,已安装插件的列表可以通过以下命令查看。
vagrant plugin list
- 在执行
vagrant up default
时出现以下错误消息(jenkins 安装失败)
==> default: ================================================================================
==> default: Error executing action `install` on resource 'apt_package[jenkins]'
==> default: ================================================================================
==> default:
==> default: Mixlib::ShellOut::ShellCommandFailed
==> default: ------------------------------------
==> default: Expected process to exit with [0], but received '100'
==> default: ---- Begin output of apt-get -q -y install jenkins=1.617 ----
==> default: STDOUT: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: The following extra packages will be installed:
==> default: ca-certificates-java daemon default-jre-headless icedtea-6-jre-cacao
==> default: icedtea-6-jre-jamvm java-common libavahi-client3 libavahi-common-data
==> default: libavahi-common3 libcups2 libjpeg-turbo8 libjpeg8 liblcms2-2 libnspr4
==> default: libnss3 libnss3-1d libpcsclite1 openjdk-6-jre-headless openjdk-6-jre-lib
==> default: tzdata tzdata-java
==> default: Suggested packages:
==> default: default-jre equivs cups-common liblcms2-utils pcscd libnss-mdns
==> default: sun-java6-fonts ttf-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
==> default: ttf-wqy-microhei ttf-wqy-zenhei ttf-indic-fonts-core ttf-telugu-fonts
==> default: ttf-oriya-fonts ttf-kannada-fonts ttf-bengali-fonts
==> default: The following NEW packages will be installed:
==> default: ca-certificates-java daemon default-jre-headless icedtea-6-jre-cacao
==> default: icedtea-6-jre-jamvm java-common jenkins libavahi-client3
==> default: libavahi-common-data libavahi-common3 libcups2 libjpeg-turbo8 libjpeg8
==> default: liblcms2-2 libnspr4 libnss3 libnss3-1d libpcsclite1 openjdk-6-jre-headless
==> default: openjdk-6-jre-lib tzdata-java
==> default: The following packages will be upgraded:
==> default: tzdata
==> default: 1 upgraded, 21 newly installed, 0 to remove and 176 not upgraded.
==> default: Need to get 106 MB of archives.
==> default: After this operation, 127 MB of additional disk space will be used.
==> default: WARNING: The following packages cannot be authenticated!
==> default: jenkins
==> default: STDERR: E: There are problems and -y was used without --force-yes
==> default: ---- End output of apt-get -q -y install jenkins=1.617 ----
(中略)
==> default: [2015-06-11T09:52:52+00:00] INFO: Running queued delayed notifications before re-raising exception
==> default: [2015-06-11T09:52:52+00:00] INFO: template[/etc/apache2/envvars] sending reload action to service[apache2] (delayed)
==> default: [2015-06-11T09:52:53+00:00] INFO: service[apache2] reloaded
==> default: [2015-06-11T09:52:53+00:00] ERROR: Running exception handlers
==> default: [2015-06-11T09:52:53+00:00] ERROR: Exception handlers complete
==> default: [2015-06-11T09:52:53+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2015-06-11T09:52:53+00:00] ERROR: apt_package[jenkins] (jenkins::_master_package line 34) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '100'
==> default: ---- Begin output of apt-get -q -y install jenkins=1.617 ----
==> default: STDOUT: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: The following extra packages will be installed:
==> default: ca-certificates-java daemon default-jre-headless icedtea-6-jre-cacao
==> default: icedtea-6-jre-jamvm java-common libavahi-client3 libavahi-common-data
==> default: libavahi-common3 libcups2 libjpeg-turbo8 libjpeg8 liblcms2-2 libnspr4
==> default: libnss3 libnss3-1d libpcsclite1 openjdk-6-jre-headless openjdk-6-jre-lib
==> default: tzdata tzdata-java
==> default: Suggested packages:
==> default: default-jre equivs cups-common liblcms2-utils pcscd libnss-mdns
==> default: sun-java6-fonts ttf-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
==> default: ttf-wqy-microhei ttf-wqy-zenhei ttf-indic-fonts-core ttf-telugu-fonts
==> default: ttf-oriya-fonts ttf-kannada-fonts ttf-bengali-fonts
==> default: The following NEW packages will be installed:
==> default: ca-certificates-java daemon default-jre-headless icedtea-6-jre-cacao
==> default: icedtea-6-jre-jamvm java-common jenkins libavahi-client3
==> default: libavahi-common-data libavahi-common3 libcups2 libjpeg-turbo8 libjpeg8
==> default: liblcms2-2 libnspr4 libnss3 libnss3-1d libpcsclite1 openjdk-6-jre-headless
==> default: openjdk-6-jre-lib tzdata-java
==> default: The following packages will be upgraded:
==> default: tzdata
==> default: 1 upgraded, 21 newly installed, 0 to remove and 176 not upgraded.
==> default: Need to get 106 MB of archives.
==> default: After this operation, 127 MB of additional disk space will be used.
==> default: WARNING: The following packages cannot be authenticated!
==> default: jenkins
==> default: STDERR: E: There are problems and -y was used without --force-yes
==> default: ---- End output of apt-get -q -y install jenkins=1.617 ----
==> default: Ran apt-get -q -y install jenkins=1.617 returned 100
==> default: [2015-06-11T09:52:53+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete.
由于网络环境或缓存导致超时,jenkins 安装失败。
在此状态下执行 vagrant provision default
也不会正常构建环境,因此请重新执行环境构建。
在 Windows 主机的情况下,按照以下步骤进行环境初始化。
- 在主机上执行
vagrant halt
命令 - 在主机上执行
vagrant destroy
命令 - 删除配置在主机上的 NetCommons3 目录
- 删除在用户目录下创建的以下目录(在 Windows 8、8.1 主机的情况下,用户目录是 C:\Users\用户名\)
- .berkshelf
- .gem
- .vagrant.d
完成上述操作后,请执行 vagrant 插件的安装、NetCommons3 源代码配置。
- 如果访问 http://app.local:9090 时未显示安装界面,请通过 SSH 连接到 guest 环境,并执行以下命令。
sudo -s
cd /var/www/app
composer update
chown -R www-data:www-data /var/www/app
如果在执行 composer update
时被要求输入 token,请在浏览器中登录 Github 后,按照以下步骤获取 token 并输入。
- 登录 Github 后,切换到 https://github.com/settings/profile
- 在 Personal Settings 中点击 Personal access tokens
- 点击 Generate new token 按钮
- 重新输入 Github 的密码
- 在 Token Description 中输入任意值,然后点击 Generate token 按钮
- 如果访问 http://app.local:9090 时安装界面未正确显示,表明 CSS 配置失败。请通过 SSH 连接到 guest 环境,并执行以下命令。
sudo -s
cd /var/www/app
bower update --allow-root
chown -R www-data:www-data /var/www/app
执行时会显示以下消息
May bower anonymously report usage statistics to improve the tool over time? (Y/n)
为了改进 bower,是否允许匿名信息收集?请输入 Y 或 N。
- 如果在安装 NetCommons3 时浏览器中显示
/usr/bin/hhvm/
这样的错误消息,请通过 SSH 连接到 guest 环境,并执行以下命令。
sudo -s
chown -R www-data:www-data /var/www/app
Windows主机的情况下
- 在执行
vagrant up default
时 vagrant-berkshelf 插件启动失败
Failed to load the "vagrant-berkshelf" plugin. View logs for more details.
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
Vagrant:
* Unknown configuration section 'berkshelf'.
如果出现上述错误,请从 C:\HashiCorp\Vagrant\embedded\mingw\mingw32env.cmd 中执行 vagrant up default
。
- 在执行
vagrant up default
时 Apache 重新启动失败
==> default: ================================================================================
==> default: Error executing action `restart` on resource 'service[apache2]'
==> default: ================================================================================
==> default:
==> default: Mixlib::ShellOut::ShellCommandFailed
==> default: ------------------------------------
==> default: Expected process to exit with [0], but received '1'
==> default: ---- Begin output of /etc/init.d/apache2 restart ----
==> default: STDOUT: * Restarting web server apache2
==> default: ...fail!
==> default: STDERR:
==> default: ---- End output of /etc/init.d/apache2 restart ----
(中略)
==> default: [2015-06-12T07:09:52+00:00] INFO: template[/etc/mysql/conf.d/my.cnf] sending restart action to mysql_service[default] (delayed)
==> default: [2015-06-12T07:09:52+00:00] ERROR: Running exception handlers
==> default: [2015-06-12T07:09:52+00:00] ERROR: Exception handlers complete
==> default: [2015-06-12T07:09:52+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2015-06-12T07:09:53+00:00] ERROR: service[apache2] (apache2::default line 24) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
==> default: ---- Begin output of /etc/init.d/apache2 restart ----
==> default: STDOUT: * Restarting web server apache2
==> default: ...fail!
==> default: STDERR:
==> default: ---- End output of /etc/init.d/apache2 restart ----
==> default: Ran /etc/init.d/apache2 restart returned 1
==> default: [2015-06-12T07:09:53+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
如果出现上述错误,请忽略并执行 vagrant provision default
。