书接上一回,小白和老菜聊到代码的版本控制和接口文档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/