与 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 等) 才不会被误解析.
- sudo apt-get install SSH
- sudo apt-get install VIM
3 然后开始安装 apache2 和 PHP, 我写文章的时候, PHP 的默认安装版本为 7.0, 如果需要早先的版本, 比如 5.6, 会需要一些特殊的源, 这些最后再说.
- sudo apt-get install apache2
- sudo apt-get install PHP libapache2-mod-PHP
- sudo service apache2 start
这样子访问 SERVER_NAME 之后, 就会出现如下页面.
此时, 因为 PHP 也安装好了. 就可以在网站根目录 (默认 / var/www/html) 下面放一个 phpinfo 的文件, 自己好查询 PHP 的相关情况:
此处指明了起作用的 PHP 的版本, PHP.INI 的位置等等.
4 安装 MySQL, 安装的过程中会让你输入数据库 root 用户的密码, 记得把此密码与系统管理员 root 的密码与身份区分开来. MySQL 会默认监听 3306 端口.
- sudo apt-get install MySQL-server
- sudo service MySQL start
5 安装 phpmyadmin, 这是一个 MySQL 的网络管理界面, 一方面, 如果没有这个, 那么你就需要在数据库的命令行执行这个命令, 查询等. 有了 phpmyadmin, 就使用 Web + 浏览器的 UI 来管理数据库, 一方面没有 GUI 的压力, 而且没有 CUI 的难用, 我早先单一有一篇文章对比此三种情况的优缺点.
sudo apt-get install phpmyadmin
期间会让你配置 phpmyadmin 本身账户的密码, 此密码也要和 MySQL 的 root 密码区分开来.
配置完成, 就可以直接用 SERVER_NAME/phpmyadmin 来管理数据库了.
6 接下来, 开始部署禅道系统. 禅道有很多的安装方法, 其实因为我们已经架设了 apache PHP MySQL, 最稳定, 最透明度的安装方法为源代码安装. 直接去官网下载 ZenTaoPMS.11.1.stable.zip, 用 WinSCP 传送到服务器上.
另外需要说明的是, zentaopms 需要 PHP 的 curl 模块, 因此, 先安装好.
sudo apt-get install php7.0-curl
然后把 zip copy 到网站根目录, 解压, 把代码准备好.
- cp ZenTaoPMS.11.1.stable.zip /var/www/HTML/
- unzip ZenTaoPMS.11.1.stable.zip
然后直接访问 SERVER_NAME/zentaopms/w 就开始安装了. 执行的是其 install.PHP 文件.
安装完成之后, 会提示你输入一个网站管理员账户. 此账户是禅道系统的 root 账户. 把用户名, 密码保存好.
安装完成, 就可以使用了. 非常方便:
7 接下来要安装 SVN 与 SVN over http.SVN 的步骤如下:
sudo apt-get install subversion
安装完成, 就要创建版本库了. 我的习惯是在 / data 下面放数据, 因为此目录以后可以加载单独的大容量硬盘.
创建目录
- mkdir /data
- cd /data
- mkdir SVN
- cd SVN
然后在目录下创建自己的版本库:
svnadmin create 版本库名字
因为以后还有其他的版本库, 因此我推荐是吧 passwd 和 authz 文件放到 SVN 根目录下, 方便集中管理, 因此, 修改版本库的文件指向(此处我的版本库名字为 delta_river):
vi /data/SVN/delta_river/conf/svnserve.conf
此处谨记, 配置文件的行必须顶格, 不要有空格或者 tab, 必须顶格, 避免问题.
然后把 passwd 和 authz 文件 copy 到 SVN 根目录, 如下:
passwd 和 authz 格式的说明我不细说了. 这个网上是说的非常清楚的.
然后执行
svnserve -d -r /data/SVN
即可启动服务:
可以把启动 SVN 的文件写一个脚本, 放到 / etc/init.d / 下面自动启动. 命令内容如下:
- lz@lz-HP-Compaq-8100-Elite-SFF-PC:~$ cat start_svn.sh
- #!/bin/bash
- svnserve -d -r /data/SVN/
服务启动后, 可以用 Windows 的 SVN client 来连接试试看, 也可以用如下命令来看看 SVN 是否已经正常运行:
SVN list SVN://10.239.46.134/delta_river
8 SVN 配置完成, 就要处理 SVN over http 了. 此处需要用 libapache2-SVN
sudo apt-get install libapache2-SVN
其配置文件如下:
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:
- cd /data
- sudo chown -R www-data:www-data SVN/
第三, dav_svn.passwd 的内容是加密的, 需要用 htpasswd 来生成
- cd /etc/apache2/
- sudo touch dav_svn.passwd
sudo htpasswd dav_svn.passwd 用户名
然后输入两次密码, dav_svn.passwd 就好了.
此处的密码未必和 SVN 根目录下的密码相同, 反正自己记得就行了. 协议不同, 使用的密码可以不同.
然后重启 apache2 就可以了.
sudo service apache2 restart
此时, 用 SVN 协议, 与 http 协议都可以用 SVN client 访问, 用浏览器也可以看到大致的文件内容.
比较有用的命令:
看当前服务器提供的服务:
sudo netstat -antp
重启 apache 服务
sudo service apache2 restart
重启 MySQL 服务
sudo service MySQL restart
后记: 如果需要 php5.6 的模块, 需要执行如下命令就可以了. 主要是找到 5.6 的安装源:
- $ sudo apt-get install python-software-properties
- $ sudo add-apt-repository ppa:ondrej/PHP
- $ sudo apt-get update
- $ 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.
来源: http://server.51cto.com/sOS-590556.htm