搭建 Phabricator 我遇到的那些坑

一.可能会用到的命令

1.重启phd守护线程
先进入到Fabricator文件夹下面,然后 $./bin/phd/ log

2.删除一个代码仓库  $ ./bin/remove destroy rMOBILE(代码库的前缀名字)

3.重启mysql数据库

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

4.重启apache服务器命令

sudo /usr/sbin/apachectl restart
sudo apachectl -k restart

二.可能会用到的一些坑

1.Mac如果出现“sudo: /etc/sudoers is owned by uid 501, should be 0 ”问题解决办法
  • 先启用root账户
  • 在 OS X 中启用和使用“root”用户

OS X Lion (10.7) 和更高版本

  • 从 Apple 菜单中选取“系统偏好设置”。
  • 从“显示”菜单中选取“用户与群组”。
  • 点按锁图标并使用管理员帐户进行鉴定。
  • 点按“登录选项”。
  • 点按右下方的“编辑”或“加入”按钮。
  • 点按“打开目录实用工具”按钮。
  • 点按“目录实用工具”窗口中的锁图标。
  • 输入管理员帐户名称和密码,然后点按“好”。
  • 从“编辑”菜单中选取“启用 Root 用户”。
  • 在“密码”和“验证”栏中输入您想要使用的 root 密码,然后点按“好”。

Mac OS X Snow Leopard (10.6.x)

  • 从 Apple 菜单中选取“系统偏好设置”。
  • 从“显示”菜单中选取“帐户”。
  • 点按锁图标并使用管理员帐户进行鉴定。
  • 点按“登录选项”。
  • 点按右下方的“编辑”或“加入”按钮。
  • 点按“打开目录实用工具”按钮。
  • 点按“目录实用工具”窗口中的锁图标。
  • 输入管理员帐户名称和密码,然后点按“好”。
  • 从“编辑”菜单中选取“启用 Root 用户”。
  • 在“密码”和“验证”栏中输入您想要使用的 root 密码,然后点按“好”。
2.Mac如果出现sudo命令无法使用,然后root账户登录进去,更改sudoers文件的权限,步骤如下:
$cd  /etc
$ls -al (查看所有文件以及所属组权限)
$chgrp wheel sudoers
$chown root /etc/sudoers

再就可以退出root账户重新登录其他账户,并且可以使用sudo命令了。

3.Mac如何进入Mysql ,以下是命令行方式,图形化方式就是用MySQLWorkBench软件
$ cd /usr/local/mysql/bin
$ ls -l
$ mysql -h localhost -u root -p
Enter password:

然后登陆进去了,就会出现下面这个界面

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 225
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;   (注意这里的命令一定都要带分号!)
4.phpize命令失败

进入php-protobuf 页面 phpize 如下

grep: /usr/include/php/main/php.h: No such file or directorygrep: /usr/include/php/Zend/zend_modules.h: No such file or directorygrep: /usr/include/php/Zend/zend_extensions.h: No such file or directoryConfiguring for:PHP Api Version: Zend Module Api No: Zend Extension Api No:

google之
解决方法:

sudo ln -s/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/ /usr/include

执行之

ln: /usr/iclude: Operation not permitted

报这个错误
是因为 /usr/ 下是没有include 这个文件夹的
还有mkdir include 创建不了文件夹 一样报Operation not permitted

真正的解决办法是:

sudo ln -s/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/ /usr/include

链接失败原因 Mac OS X10.11加强了系统保护 /usr 木有操作权限

暂时停用系统保护的方法:
按下开机键时即刻按住 command R(“R”字母键),中间的苹果标志及进度条出现后放开按键,等待恢复安装界面和 “OS X 实用工具”窗口出现后,点击顶部菜单栏的 “实用工具”,在其下拉菜单点选运行 “终端”,在终端闪动字符的位置直接输入“csrutil disable”并回车,重新启动电脑。

当然也可以直接用XAMPP 中的phpize

三.后期维护

主要步骤:

  1. 停止服务器,停止守护进程
  2. git更新3个依赖组件 ,3个必须升级到相同的最新版
  3. 更新sql数据库 ,此时很有可能出错,因为表有可能变了数据结构导致表结构变化,需要修复
  4. 开启守护线程,升级完成一定要重启一次!

具体命令如下:

Stop the webserver (including php-fpm, if you use it).

Stop the daemons, with phabricator/bin/phd stop.

Run git pull in libphutil/, arcanist/ and phabricator/.

Run phabricator/bin/storage upgrade.

Start the daemons, with phabricator/bin/phd start.

Restart the webserver (and php-fpm, if you stopped it earlier).

GitHub Repo:Halfrost-Field

Follow: halfrost · GitHub

Source: https://halfrost.com/phabricator_trouble/