與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.
評論
查看更多