書接上一回,小白和老菜聊到代碼的版本控制和接口文檔php
小白:爲何要作版本控制,我不弄版本控制不也完成了項目了嗎?要作版本控制不是很麻煩,又要安裝服務又要提交代碼,代碼又不是多人用開發,還要寫文檔......html
老菜:這就是你這些小白的思惟,只看眼前不思長遠。對於任何一個項目,你都不可能絕對的說它永遠都是一個小項目;而項目完成後,同時也面臨着不停的變動與修改,你不可能永遠記得這個項目任何細節,隨着時間的流逝,不少關鍵點與細節在你的記憶中就會變得愈來愈模糊,到時要從新修改時你就頭大了。我以前有位同事,一開始也是這樣想,沒文檔沒代碼版本管理,而軟件的功能相對也比較複雜,項目完成上線幾個月後,想要大改時做爲開發人員卻沒法動手,本身都看不懂本身寫的代碼了。另外,有可能你寫了一些功能,進行修改後想要回滾時卻發現沒有舊版本,只能重寫。python
養成良好的文檔編寫習慣,對於一個程序員來講也是很是重要的,你不可能永遠呆在只有一個開發人員的公司裏,在與人合做時,特別是先後端開發人員配合時,若是沒有文檔交流起來是一件很是麻煩的事情,人越多浪費在溝通的時間就越多。並且隨着項目開發時間越長,接口越多,項目維護起來也會越複雜。沒有清晰的文檔,會給項目的增長各類不該該出現的不穩定性。何況寫一個接口文檔也就一兩分鐘的事情,舉手之勞,何樂而不爲呢?mysql
養成良好的代碼管理與文檔編寫習慣,對於一位程序員素質修養來講,也是很是必要的,一樣兩位水平至關的程序員去面試,代碼編寫規範,懂得代碼管理和熟練編寫文檔的確定佔優。nginx
代碼版本控制你們經常使用的有git或svn,對於能開源的代碼來講,直接放在github上就能夠了,其餘的話,就須要本身搭建svn服務器。(python服務器環境搭建(2)——安裝相關軟件 與 python服務器環境搭建(3)——參數配置 有svn服務器建立與發佈的說明)c++
而接口文檔管理,也有很多開源的系統存在,好比wiki、shodoc等系統。git
小白:好的,我回去安裝配置一下,儘可能讓本身規範起來。程序員
小白回去家後,就開始忙碌了起來,以前已安裝好虛擬服務器了,因此能夠按網上教程直接配置svn。github
配置SVNweb
進入svn管理目錄:cd /data/svn
建立svn項:svnadmin create simple
進入剛建立的svn項:cd /data/svn/simple/conf
修改/data/svn/simple/conf文件夾下的配置文件
將authz文件替換成下面內容:
[simple:/]
admin = rw
simple是svn當前倉庫項的模塊名稱,每一個svn的這個名稱都是惟一的,否則可能沒法登陸使用,admin是咱們建立的svn登陸帳號
將password文件替換成下面內容:
[users]
admin = 123456
這裏設置帳號對應的密碼
將svnserve.conf文件替換成下面內容:
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz
若是你的svn服務未啓動,能夠輸入下面命令:/usr/bin/svnserve -d -r /data/svn (有時連不上,kill掉svn進程從新啓動就能夠了)
svn服務器端的操做就完成了。
下面來進行本地操做截圖:(能夠下載TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi進行使用)
安裝完svn客戶端工具後,右鍵菜單會出現SVN Checkout項,能夠進行檢出svn
輸入虛擬服務器地址,點擊OK進行檢出操做
輸入前面設置好的帳號與密碼,完成檢出操做
而後將源碼放到該文件夾中(或者直接檢出到你的源碼文件夾也行)
在剛檢出的源碼文件夾中點擊右鍵,選擇提交代碼
全選全部文件,並填寫好說明(在作源碼版本控制管理時,最好養成編寫說明的習慣,方便之後有問題時進行查詢,否則版本多時要一個個對比查找是一件很是麻煩的事情)
整個SVN源碼管理就操做完成了。
安裝ShowDoc接口文檔管理系統
showdoc接口文檔是PHP開發的,因此須要安裝php環境
php環境你們能夠直接使用官方的安裝方法,直接使用yum進行安裝,方法也比較簡單:https://www.showdoc.cc/php?page_id=14595
固然也可使用下面編譯方式進行安裝,我在CentOS7.0使用下面編譯方式安裝時會遇到 --enable-opcache=no 問題,估計是操做系統版本與php兼容問題引發的,得升級系統,或使用官方方法安裝就好
安裝PHP相關包
yum install -y libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel autoconf gcc gcc-c++
進入源碼包存儲路徑(cd /usr/local/src/),並下載相關源碼安裝包
cd /usr/local/src/ wget http://cn2.php.net/distributions/php-5.6.36.tar.gz wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz wget https://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz wget https://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
編譯安裝libmcrypt
cd /usr/local/src/ tar -zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure --prefix=/usr/local/related/libmcrypt make && make install
編譯安裝mhash
cd /usr/local/src/ tar -zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9 ./configure --prefix=/usr/local/related/mhash make && make install
設置編譯mcrypt所需環境變量(下面命令要一條條執行)
export LD_LIBRARY_PATH=/usr/local/related/libmcrypt/lib:/usr/local/related/mhash/lib export LDFLAGS="-L/usr/local/related/mhash/lib -I/usr/local/related/mhash/include/" export CFLAGS="-I/usr/local/related/mhash/include/"
編譯安裝mcrypt
cd /usr/local/src/ tar -zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 ./configure --prefix=/usr/local/related/mcrypt --with-libmcrypt-prefix=/usr/local/related/libmcrypt make && make install
編譯安裝php
cd /usr/local/src/ tar -zxvf php-5.6.36.tar.gz cd php-5.6.36 ./buildconf --force ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --enable-mysqlnd --with-mysqli=shared,mysqlnd --with-mysql=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --with-mcrypt=/usr/local/related/libmcrypt --disable-fileinfo make clean && make && make install
複製相關配置文件與啓動文件
cp php.ini-production /usr/local/php/etc/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
建立運行php用戶和組
groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php -M php
設置PHP日誌目錄和php-fpm的運行進程ID文件(php-fpm.sock)目錄
groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
修改session的目錄配置
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php
設置PHP開機啓動
chmod +x /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig php-fpm on
啓動php服務
service php-fpm start
shosdoc的安裝能夠根據官方文檔說明(http://www.showdoc.cc/web/#/help?page_id=32238)進行安裝
登陸https://github.com/star7th/showdoc 下載源碼包
而後將源碼包上傳到 /data/www/ 目錄並解壓到當前目錄
添加nginx配置:showdoc.conf
cd /usr/local/nginx/conf/vhost/
vi showdoc.conf
在vi編輯器中添加下面代碼
server { listen 8080; charset utf-8; server_name 127.0.0.1; root /data/www/showdoc-master; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } location / { index index.php index.html; client_max_body_size 1000m; } access_log /data/logs/nginx/showdoc_access.log main; }
重啓nginx:/usr/local/nginx/sbin/nginx -s reload
在瀏覽器中輸入:http://xxx:8080/ 就能夠訪問showdoc了
點擊OK進行安裝
點擊右上角註冊帳號
註冊完帳號,就能夠建立項目進行接口文檔管理了
進入項目後,點擊左上角的+ 建立接口文檔
填寫完標題,點擊插入API接口模板,就有現成的模板模式出來,簡單修改一下一份完整的接口文檔就寫好了,快的話寫一個接口文檔也就不到一分鐘時間。咱們也能夠根據本身的須要建立本身的接口文檔模板。
保存後就能夠看到簡潔又漂亮的接口文檔了
版權聲明:本文原創發表於 博客園,做者爲 AllEmpty 本文歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然視爲侵權。
python開發QQ羣:669058475(本羣已滿)、733466321(能夠加2羣) 做者博客:http://www.cnblogs.com/EmptyFS/