phabricator環境構築

10413 ワード

phabricatorインストール
最新のインストールドキュメントを参照してください.https://secure.phabricator.com/book/phabricator/article/installation_guide/
一.設置に必要な環境
  • linuxシステム
  • nginx + php7.1 + mysql
  • git
  • ドメイン名、/etc/hostsを使用してローカルのドメイン名別名
  • を定義できます.
  • php拡張:mbstring,iconv,curl,pcntl,apcu(php-i|grepを使用して拡張インストール状況を表示)
  • apcuダウンロードアドレスhttp://pecl.php.net/package/APCu (phpizeインストール)
  • 二.取付手順
  • ダウンロードソース
    git clone https://github.com/phacility/libphutil.git
    git clone https://github.com/phacility/arcanist.git
    git clone https://github.com/phacility/phabricator.git
    
  • nginx仮想ドメイン名
    server{
        listen 80;
        server_name phabricator.beston168.cn.com;
        set $root_path '/var/www/html/phabricator/phabricator/webroot';
        root $root_path;
        index index.php index.html index.htm;
        location / {
            index index.php;
            rewrite ^/(.*)$ /index.php?__path__=/$1 last;
        }
    
        location /index.php {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
    
            #required if PHP was built with --enable-force-cgi-redirect
            fastcgi_param REDIRECT_STATUS 200;
    
            #variables to make the $_SERVER populate in PHP
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
    
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    
            fastcgi_param GATEWAY_INTERFACE CGI/1.1;
            fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    
            fastcgi_param REMOTE_ADDR $remote_addr;
        }
    }
    
  • を構成する
  • ドメイン名をこのマシンIPに解析するか、または/etc/hostsこのIP
  • に解析する.
  • ドメイン名を開くページ表示フローに従って
  • をインストールする
  • データベースのリカバリ
     ./bin/storage upgrade
    
  • administratorを登録するページを見て、アカウントのパスワードを入力してシステム
  • にログインします
  • 静的ファイル独立ドメイン名を設定し、nginxはphabricator/webrootディレクトリを指し、次のコマンド
     ./bin/config set security.alternate-file-domain <domain>
    
  • を実行します.
  • ローカル大ファイル格納場所a.nginx.conf構成を変更し、http{}に
    	client_max_body_size 128M;
    
    b.php.ini設定を追加または変更または以下の属性
    	post_max_size 128M
    	memory_limit -1
    	max_input_vars 1000
    	upload_max_filesize 128M
    
    c.を変更してコマンドを実行します.ローカルフォルダには777読み書き権限
    	 ./bin/config set storage.local-disk.path <your localpath>
    
    d.が必要です.トップページを更新し、ファイルをトップページにドラッグして、
  • をアップロードできるかどうかを確認します.
  • php.ini
    date.timezone = Asia/Shanghai
    opcache.validate_timestamps=0
    
  • の最適化
  • mysqlを最適化し、mysql.conf.dのmysqld.cnfを変更し、プロパティ
    max_allowed_packet = 128M
    sql_mode=STRICT_ALL_TABLES
    
  • を変更します.
  • phdをオンにし、次のコマンド
    ./bin/phd start
    
  • を実行します.
  • baseuriを設定し、次のコマンド
    ./bin/config set phabricator.base-uri 'http://localphabricator.com/'
    
  • を実行します.
  • pygmentsをインストールし、インストール後phabricatorでこの構成項目
       sudo apt-get  install python-pygments
    
  • をオンにします.
  • システムのデフォルトのrepositoryは、ローカルパス/var/repoで、フォルダを手動で作成し、読み書き権限
  • を与える必要があります.
  • phabricator管理を確立するrepository a.daemon-userユーザを作成し、repository b.を直接操作するためにwww-dataユーザを作成し、ページsudo daemon-userユーザ操作repository(php-fpmは使用するwww-dataユーザ)c.git sudo daemon-userユーザ操作repository(gitユーザを使用することが望ましい)にvcs-userユーザを作成するd.以下のコマンド
     ./bin/config set phd.user daemon-user
     ./bin/config set diffusion.ssh-user vcs-user
    
    e.修正/etc/sudoersファイル追加を実行し、具体的な実行可能ファイルがあるbinディレクトリは実際の状況に応じて
    git  ALL=(daemon-user) SETENV: NOPASSWD: /bin/ls, /usr/bin/git, /usr/bin/git-upload-pack, /usr/bin/git-receive-pack, /usr/bin/ssh
    www-data ALL=(daemon-user) SETENV: NOPASSWD:  /usr/bin/git, /usr/bin/git-backend, /usr/bin/ssh
    
    f./etc/sudoersにDefaults requiretty(#コメントを使用)g.コマンド
    sudo usermod -p NP vcs-user
    sudo usermod -s /bin/sh vcs-user
    
    //    , /etc/shadow  git      
    git:NP:17440:0:99999:7:::,
    /etc/passwd  git      (   vcs-user   git  )
    git:x:1001:1001::/home/git:/bin/sh
    
    h.sshd構成を実行する
  • openssh-server
    	sudo apt-get install openssh-server
    
  • をインストール
  • デフォルトsshdは22ポート、phabricator使用では追加ポートを追加する必要があります.コマンド
    	./bin/config set diffusion.ssh-port 2222
    
  • を実行します.
  • コマンド
    	sudo cp -rf /path/to/phabricator/resources/sshd/phabricator-ssh-hook.sh /usr/libexec/phabricator-ssh-hook.sh
    	sudo chown root /usr/libexec/
           sudo chown root /usr/libexec/phabricator-ssh-hook.sh
           sudo chmod 755  /usr/libexec/phabricator-ssh-hook.sh
    
  • を実行します.
  • 修正/usr/libexec/phabricator-ssh-hook.sh内容
    	VCSUSER="git"
    	ROOT="/var/www/html/phabricator/phabricator"
    
  • コマンド
    	sudo cp -rf /path/to/phabricator/resources/sshd/sshd_config.phabricator.example /etc/ssh/sshd_config.phabricator
    
  • を実行します.
  • 修正/etc/ssh/sshd_config.phabricatorコンテンツ
    	AuthorizedKeysCommand /usr/libexec/phabricator-ssh-hook.sh
    	AuthorizedKeysCommandUser git
    	AllowUsers git
    
  • コマンドを実行します.sshdパスは通常/usr/bin/sshd
    	 sudo /usr/bin/sshd -f /etc/ssh/sshd_config.phabricator
    
  • です.
    Could not load host key:/etc/ssh/ssh_host_ed25519_key、ssh-keygen-t dsa-f/etc/ssh/ssh_を実行host_ed25519_keyはクライアントマシンの~/.ssh/id_を解決できるrsa.pub公開鍵はphabricatorバックグラウンドにコピーされ、account->setting->SSH Public Keysはrepositoryを作成してアクティブにし、サーバーを再起動できない場合は、telnet ip:portは2222ポートがオープンしているかどうかを確認し、オープンしていない場合はservice iptables stopを試してみます.ufw disableファイアウォールを閉じる具体的な問題参照https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/
  • 起動コマンドを追加/etc/rc.local
    /var/www/html/phabricator/phabricator/./bin/phd start
    sudo /usr/sbin/sshd -f /etc/ssh/sshd_config.phabricator
    
  • を変更
  • notifyサーバの構成
  • nodeインストール環境
  • phabricator/support/aphlict/server/ディレクトリの下でnpm install ws
  • を実行する
  • 実行.bin/aphlict start
  • プロファイルはphabricator/conf/aphlict/aphlict.default.json
  • です.
  • プロファイルを手動で指定できます.bin/aphlict start–config path/to/config.json
  • config->Core Settings->Notificationsに構成
     [
               {
                   "type": "client",
                   "host": "0.0.0.0",
                   "port": 22280,
                   "protocol": "http"
               },
               {
                   "type": "admin",
                   "host": "127.0.0.1",
                   "port": 22281,
                   "protocol": "http"
               }
       ]
    
  • を追加