Git
Chapters ▾ 2nd Edition

4.7 گیت روی سرور - گیت‌وب

گیت‌وب

حالا که دسترسی‌های ابتدایی خواندن/نوشتن و فقط-خواندنی را به پروژه خود را دارید، شاید بخواهید محیط بصری‌ساز سادهٔ وب-پایه‌ای هم نصب کنید. گیت با اسکریپت CGI با نام گیت‌وب همراه است که گاهی برای این مقصود استفاده می‌شود.

The GitWeb web-based user interface.
نمودار 49. رابط کاربری وب-پایه گیت‌وب

اگر می‌خواهید ببینید که گیت‌وب برای پروژه شما به چه صورت خواهد بود، گیت با دستوری برای اجرای یک نمونه موقت همراه است، در صورتی که وب سروری سبک مانند lighttpd یا webrick روی سیستم خود دارید. بر روی سیستم‌‌های لینوکسی، وب سرور lighttpd معمولاً نصب است، بنابراین احتمالاً باید بتوانید با تایپ دستور git instaweb در پوشه پروژه خود آنرا اجرا کنید. اگر سیستم‌عامل مک دارید، Leopard با Ruby از پیش نصب شده همراه است، در نتیجه بهترین انتخاب شما می‌تواند webrick باشد. برای اجرای instaweb با هندلری غیر از lighttpd، می‌توانید از آپشن --httpd استفاده کنید.

$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO  WEBrick 1.3.1
[2009-02-21 10:02:21] INFO  ruby 1.8.6 (2008-03-03) [universal-darwin9.0]

این دستور یک سرور HTTPD را بر روی پورت ۱۲۳۴ را اجرا می‌کند و سپس به صورت خودکار مرورگری را اجرا می‌کند که آن صحفه را باز می‌کند. بسیار ساده است. وقتی کارتان پایان یافت و خواستید سرور را خاموش کنید، می‌توانید همان دستور را با آپشن --stop وارد کنید.

$ git instaweb --httpd=webrick --stop

اگر می‌خواهید رابط وب دائماً روی سرور برای هم تیمی‌هایتان یا برای پروژه متن-بازی که میزبانی می‌کنید اجرا کنید، لازم است که اسکریپت CGI را تنظیم کنید تا توسط وب سرور عادی شما ارائه شود.‌ بعضی از توزیع‌های لینوکس پکیج gitweb دارند که احتمالاً بتوانید آنرا با apt یا dnf نصب کنید، بنابراین ابتدا ممکن است بخواهید آنرا امتحان کنید. قدم به قدم نصب دستی گیت‌وب را با هم مروری سریع می‌کنیم. ابتدا، لازم است که سورس کد گیت را داشته باشید، که گیت‌وب با آن ارائه می‌شود، و اسکریپت شخصی‌سازی شده CGI را بسازید:

$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
    SUBDIR gitweb
    SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
    GEN gitweb.cgi
    GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/

دقت کنید که باید همراه دستور، با متغییر GITWEB_PROJCETROOT، مشخص کنید که کجا مخازن گیت را پیدا کند. حالا، لازم است که آپاچی را وادار به استفاده از CGI برای آن اسکریپت کنید، که برای آن می‌توانید یک VirtualHost اضافه کنید:

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
        Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

مجدداً، گیت‌وب می‌تواند با هر وب سروری با قابلیت CGI یا پرل ارائه شود؛ اگر ترجیح می‌دهید از چیز دیگری استفاده کنید، نباید راه‌اندازی سختی داشته باشد. اکنون، باید بتوانید به آدرس http://gitserver/ مراجعه کنید تا مخزن خود را آنلاین مشاهده کنید.