当使用非标准安装 MySQL 的情况下,如何开启远程访问呢?对这个问题进行了研究。
- 登录到远程服务器,登录 MySQL:
1
|
|
报了下面的错误:
1
|
|
原因是 sock 文件不是默认的位置,而是 /tmp/mysql-generic-5.5.40.sock
,做个软链接解决:
1
|
|
- 可以正常登录了,退出到本地,登录发现还是不能访问,还需要修改 MySQL 参数,重启即可:
1
|
|
标准 MySQL 设置详见文章:MySQL、Postgres 开启远程访问权限
当使用非标准安装 MySQL 的情况下,如何开启远程访问呢?对这个问题进行了研究。
1
|
|
报了下面的错误:
1
|
|
原因是 sock 文件不是默认的位置,而是 /tmp/mysql-generic-5.5.40.sock
,做个软链接解决:
1
|
|
1
|
|
标准 MySQL 设置详见文章:MySQL、Postgres 开启远程访问权限
由于 php 是运行在 nginx 账户下的,直接使用 shell_exec
会出现权限问题,所以我们首先需要解决权限问题。
www-data
用户1 2 |
|
id_rsa
并将内容复制到目标 git 中1 2 3 |
|
clone
所需要的仓库1 2 |
|
api.php
文件1 2 3 4 |
|
1
|
|
现在 gitlab 最新的版本是可以直接通过 apt-get
进行安装升级的。以前公司安装的版本都是通过命令行的方式进行安装,很麻烦也容易出错。现在尝试从 Ubuntu12.04 非集成版迁移到 Ubuntu14.04 apt 版本。花了不少时间,这里记录下最简单的步骤。
我们迁移的关键点为:
在新的服务器上通过 apt-get
安装与原服务器相同版本的安装包(7.13.5,不然会导致导入数据出错)。
1 2 3 |
|
1
|
|
1 2 3 4 5 6 7 |
|
注:由于官网存在墙的问题,我们使用了清华大学的源进行安装。
1
|
|
注:这个版本由于 bug 导致一直配置不成功,需要删除 mattermost 的内容才行。
首次打开需要初始化管理员(root)的密码,初始化完成之后跳转到登录接口,可登录使用。 到这里我们已经在新的服务器上安装了全新的 gitlab-ce。
在原来的机器上,我们需要将版本库数据以及数据库数据导出为文件,以便在新系统中使用。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
看到如下信息:
1
|
|
就表示备份完成了,该文件存在于 /home/git/gitlab/tmp/backups
文件夹下。
退出 root 用户,通过命令行对 MySQL 进行备份
1
|
|
导出完成后,将 1461142074_gitlab_backup.tar 和 current_install.mysql 拷贝(scp)到新的服务器上备用。
由于之前用的是 MySQL,因为 MySQL 有一些问题,官方建议使用 PostgreSQL 来代替 MySQL。迁移的原理是先将 MySQL 导出为 sql 文件,然后使用工具将其转换为 PostgreSQL 的文件并导入到 PostgreSQL 中。
1 2 3 4 5 6 7 8 |
|
解压我们的压缩包,我们将其解压到一个空的目录 tar_me_from_inside
下,并删除原来的 tar 文件
1 2 3 |
|
官网上提供了工具可以将 MySQL 转换为 PostgreSQL
1 2 3 4 5 6 |
|
替换原来的 db 文件
1 2 3 4 5 |
|
现在,我们将其压缩为原来的文件名
1 2 3 |
|
接着,我们将生成的 tar 文件拷贝到 /var/opt/gitlab/backups
下
1
|
|
停用 unicorn
和 sidekiq
并进行恢复
1 2 3 4 5 6 |
|
最后,配置/etc/gitlab/gitlab.rb
文件,将 url 改成服务器所在的 IP 或域名,并将 gitlab 升级到最新版本
1 2 |
|
大功告成!
从 7.13.5 升级到 8.6.6 会有一系列的问题。这里记录下:
apt-get update
遇到的问题
1 2 3 4 5 |
|
解决:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
migrate
的过程出现的问题(类似的问题需要删除数据库):
1
|
|
解决:
1 2 3 4 5 6 7 8 |
|
配置邮件网关发送邮件的问题
1 2 3 |
|
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1
|
|
根据文档单文件组件一节,我们可以将组件集成为一个文件,将 html,css,JavaScript 代码都放到同个文件中,最终编译成我们想要的文件。vue 文件的基本模板为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
其中 template 为 html 代码,script 为 JavaScript 代码,style 为 css 代码。
这里使用最简单的例子理解如何创建 vue 单文件组件,我们将该文件保存为 Hello.vue
,并创建 main.js
文件:
1 2 |
|
然后使用官方工具vue-cli,对我们的组件进行编译,提供了几个模板:
webpack - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.
webpack-simple - A simple Webpack + vue-loader setup for quick prototyping.
browserify - A full-featured Browserify + vueify setup with hot-reload, linting & unit testing.
browserify-simple - A simple Browserify + vueify setup for quick prototyping.
simple - The simplest possible Vue setup in a single HTML file
在这里我使用的是 browserify-simple 的方式。根据文档进行安装即可:
1
|
|
然后将上面创建两个文件放到 hello/src 下,然后修改 package.json 中的
1
|
|
运行 npm run build
,就可以在 dist 下得到我们想要的文件了。