您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 系统/运维 > 正文

基础标配Linux开发服务器的搭建

发表于:2019-01-15 作者:追梦人 daodan 来源:追梦人 daodan

与linux服务器打了这么多年交道,总结下来,觉得一个Linux服务器最基本需要提供的服务如下:

1 SSH,供远程访问,基础中的基础。

2 Apache + PHP,做一些最基本的web响应,从开发角度来说,也确实有everything on web的趋势。

3 mysql:一个基本的关系型数据库,应付一般的数据库需求尚可。

4 phpmyadmin:一个基于web的对mysql进行管理的界面,是everything on web的一个实现。

5 svn:版本库管理,这是基本的软件开发必须的协作工具。

6 svn over http: svn在web上面可以访问之后,提供了很多的灵活性。

7 zentaopms:禅道管理系统,是国内做的比较完善的一个项目管理,bug管理,产品管理的界面。

8 VNC: 这个最好有,是低priority的要求。以前文章有所描述,本文不再涉及。

看起来比较复杂,但是其实并不多。现在用ubuntu16.04为例来说明一下:

1 系统安装,标准的U盘安装即可。

2 在显示终端安装ssh与vim,之后就可以把服务器放好,远程连接,不再使用显示器了。

之所以重新安装vim,是因为内置的vim有问题,重装之后,那些键盘命令(PgUp PgDn Del等)才不会被误解析。


  1. sudo apt-get install ssh 
  2. sudo apt-get install vim 

3 然后开始安装apache2和php,我写文章的时候,php的默认安装版本为7.0,如果需要早先的版本,比如5.6,会需要一些特殊的源,这些最后再说。


  1. sudo apt-get install apache2 
  2. sudo apt-get install php libapache2-mod-php 
  3. sudo service apache2 start 

这样子访问SERVER_NAME之后,就会出现如下页面。

此时,因为php也安装好了。就可以在网站根目录(默认/var/www/html)下面放一个phpinfo的文件,自己好查询php的相关情况:

此处指明了起作用的php的版本,php.ini的位置等等。

4 安装mysql,安装的过程中会让你输入数据库root用户的密码,记得把此密码与系统管理员root的密码与身份区分开来。mysql会默认监听3306端口。


  1. sudo apt-get install mysql-server 
  2. sudo service mysql start 

5 安装phpmyadmin,这是一个mysql的网络管理界面,一方面,如果没有这个,那么你就需要在数据库的命令行执行这个命令,查询等。有了phpmyadmin,就使用web+浏览器的UI来管理数据库,一方面没有GUI的压力,而且没有CUI的难用,我早先单一有一篇文章对比此三种情况的优缺点。


  1. sudo apt-get install phpmyadmin 

期间会让你配置phpmyadmin本身账户的密码,此密码也要和mysql的root密码区分开来。

配置完成,就可以直接用SERVER_NAME/phpmyadmin来管理数据库了。

6 接下来,开始部署禅道系统。禅道有很多的安装方法,其实因为我们已经架设了apache php mysql,最稳定,最透明度的安装方法为源代码安装。直接去官网下载ZenTaoPMS.11.1.stable.zip,用WinSCP传送到服务器上。

另外需要说明的是,zentaopms需要php的curl模块,因此,先安装好。


  1. sudo apt-get install php7.0-curl 

然后把zip copy到网站根目录,解压,把代码准备好。


  1. cp ZenTaoPMS.11.1.stable.zip /var/www/html/ 
  2. unzip ZenTaoPMS.11.1.stable.zip 

然后直接访问SERVER_NAME/zentaopms/w就开始安装了。执行的是其install.php文件。

安装完成之后,会提示你输入一个网站管理员账户。此账户是禅道系统的root账户。把用户名,密码保存好。

安装完成,就可以使用了。非常方便:

7 接下来要安装SVN与svn over http。svn的步骤如下:


  1. sudo apt-get install subversion 

安装完成,就要创建版本库了。我的习惯是在/data下面放数据,因为此目录以后可以加载单独的大容量硬盘。

创建目录


  1. mkdir /data 
  2. cd /data 
  3. mkdir SVN 
  4. cd SVN 

然后在目录下创建自己的版本库:

svnadmin create 版本库名字

因为以后还有其他的版本库,因此我推荐是吧passwd和authz文件放到SVN根目录下,方便集中管理,因此,修改版本库的文件指向(此处我的版本库名字为delta_river):


  1. vi /data/SVN/delta_river/conf/svnserve.conf 

此处谨记,配置文件的行必须顶格,不要有空格或者tab,必须顶格,避免问题。

然后把passwd和authz文件copy到SVN根目录,如下:

passwd和authz格式的说明我不细说了。这个网上是说的非常清楚的。

然后执行


  1. svnserve -d -r /data/SVN 

即可启动服务:

可以把启动svn的文件写一个脚本,放到/etc/init.d/下面自动启动。命令内容如下:


  1. lz@lz-HP-Compaq-8100-Elite-SFF-PC:~$ cat start_svn.sh 
  2. #!/bin/bash 
  3. svnserve -d -r /data/SVN/ 

服务启动后,可以用windows的svn client来连接试试看,也可以用如下命令来看看svn是否已经正常运行:


  1. svn list svn://10.239.46.134/delta_river 

8 svn配置完成,就要处理svn over http了。此处需要用libapache2-svn


  1. sudo apt-get install libapache2-svn 

其配置文件如下:


  1. sudo vi /etc/apache2/mods-available/dav_svn.conf 

此处需要说明的是,svn与svn over http是用的两套验证模式,两者之间关系并不大。svn的验证如上所述,是passwd与authz,虽然svn over http也是使用的相似的极致,但是文件位置可以毫无关系。

我的dav_svn.conf如下:

可见我把svn over http的配置放在了/etc/apache2目录下面。

此地有几处需要注意,第一,authz文件可以直接从SVN根目录copy过来,或者建一个符号链接。

第二,SVN的目录建议把owner修改为www-data:


  1. cd /data 
  2. sudo chown -R www-data:www-data SVN/ 

第三,dav_svn.passwd的内容是加密的,需要用htpasswd来生成


  1. cd /etc/apache2/ 
  2. sudo touch dav_svn.passwd 

sudo htpasswd dav_svn.passwd 用户名

然后输入两次密码,dav_svn.passwd就好了。

此处的密码未必和SVN根目录下的密码相同,反正自己记得就行了。协议不同,使用的密码可以不同。

然后重启apache2就可以了。


  1. sudo service apache2 restart 

此时,用svn协议,与http协议都可以用svn client访问,用浏览器也可以看到大致的文件内容。

比较有用的命令:

看当前服务器提供的服务:


  1. sudo netstat -antp 

重启apache服务


  1. sudo service apache2 restar

重启mysql服务


  1. sudo service mysql restart 

后记:如果需要php5.6的模块,需要执行如下命令就可以了。主要是找到5.6的安装源:


  1. $ sudo apt-get install python-software-properties 
  2. $ sudo add-apt-repository ppa:ondrej/php 
  3. $ sudo apt-get update 
  4. $ sudo apt-get -y install php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip 

执行后,就会安装php5.6相应的模块:

  • The following additional packages will be installed:
  • libapache2-mod-php5.6 libzip5 php5.6-common php5.6-json php5.6-opcache php5.6-readline php5.6-xml
  • The following NEW packages will be installed:
  • libzip5 php5.6-curl php5.6-gd php5.6-intl php5.6-mcrypt php5.6-xml php5.6-xsl php5.6-zip
  • The following packages will be upgraded:
  • libapache2-mod-php5.6 php5.6 php5.6-cli php5.6-common php5.6-json php5.6-mbstring php5.6-mysql php5.6-opcache php5.6-readline
  • 9 upgraded, 8 newly installed, 0 to remove and 409 not upgraded.