1. 程式人生 > >龍芯伺服器部署WEB服務的體驗和詳細步驟

龍芯伺服器部署WEB服務的體驗和詳細步驟

http://www.loongson.cn/news/company/511.html

 

2016年8月,通過龍芯俱樂部的《龍芯團購》(網址http://www.loongsonclub.com)購買了一臺3A2000的主機,在點選下單的時候心裡咯噔了一下,感覺好像在夢裡。下單後團購網負責人馬上聯絡了我,懷著萬分激動的心情等待,作為一個關注龍芯10年的愛好者,終於要第一使用國產的龍芯電腦,完成一個許久的夙願,到貨後迫不及待開箱,發現機箱不大,類似廣場舞上音響,我還發了個微信朋友圈讓朋友們猜猜是什麼,結果24小時內猜什麼的都有,比如:微波爐、音響、充電寶....,就是沒猜到是龍芯電腦主機,果然高階大氣上檔次!開機後檢視配置,個人感覺在臺機挺高,已經超過了我現在用主機的配置,固態硬碟、8G記憶體,還贈送了U盤。
開箱附圖:

        命令列檢視系統構架和系統作業系統,經查為mips平臺的fedora2.1的64位系統。如果想使用更優好的使用者桌面體驗,還可以向俱樂部請求用deepin的龍芯版,不但介面接近蘋果作業系統,而且桌面軟體更完善,而且有軟體商店直接像蘋果商店一樣安裝軟體,主要是的已經移植了QQ最新版。

        命令列檢視CPU的情況,以下附圖說明是4個999Mhz頻率的核心

        使用ifconfig命令列檢視網絡卡的情況

        使用htop系統資源情況(安裝htop命令可以使用sudo yum install htop 一行命令即可),使用htop直接檢視系統資源佔用詳細情況,可以看出,在無圖形介面的情況下,系統對cpu的佔用率極低。

一、作為辦公用主機的體驗。
        雖說是拿來做伺服器用,但仍好奇先把玩一番。就先後體驗了辦公軟體WPS和網頁版QQ,微信以及Kodi視訊播放。經初測:libreoffice在開啟文件、電子表格以及幻燈片速度快,滿足辦公完全沒問題,唯一不足是字型不夠全,建議系統應配套預設的仿宋體。由於騰訊無最新版的QQ支援,登入web頁面登入騰訊的網頁版QQ和微信均能正常使用。線上視訊播放軟體我選擇了《龍芯》官網推薦的kodi,使用命令列安裝命令:sudo yum install kodi 。一行命令就安裝成功,安裝成功後選擇了國內媒體庫。即可播放國內的連續劇,我是在網上下載了新浪的影視庫外掛。關於kodi的使用請詳見龍芯官網的說明http://www.loongson.cn/news/company/466.html
        因此,可以說,龍芯作為辦公用效能已經完全滿足。如果結合娛樂使用,請建議安裝國人開發介面目前最漂亮的linux系統,deepin版的龍芯版,支援將更豐富。
龍芯上使用libreoffice附圖:

        龍芯上使用QQ附圖:

        龍芯上使用微信附圖:

        龍芯上使用Kodi附圖:

二、作為個人WEB伺服器的使用,安裝linux+mysql+apache+php。
        開啟系統終端,進行安裝除錯,以下為個人除錯的示例,請做參考。
1、首先更新軟體源,完善元件和系統依賴包,提高安全性。

sudo  yum  update

sudo  yum  upgrade

sudo yum list installed mysql*
2、安裝mysql資料庫
rpm -qa|grep mysql  ##檢視是否還有mysql軟體,有的話繼續刪除
##########安裝mysql
sudo yum install mysql  mysql-server  mysql-devel  -y
#mysql的幾個重要目錄
/var/lib/mysql/     #資料庫目錄
/usr/bin            #相關命令(mysqladmin mysqldump等命令)
service mysqld start  #啟動mysql
mysql -uroot  #進入mysql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');   ## 修改mysql密碼為新密碼
grant all privileges on *.* to [email protected]'%' identified by '123456';   ## 授權超級使用者遠端連線,僅測試用
create database mytest;
grant all privileges on mytest.* to [email protected]'localhost'identified by 'shujukubendifangwen-666';
flush privileges;
systemctl enable mysqld.service   #為MySQL建立啟動連線 (這樣 MySQL 將隨系統自動啟動)並啟動 MySQL服務。
        安裝成功後的截圖

        安裝好mysql後大家可能驚奇的發現,提示不是mysql而是MariaDB資料,MariaDB資料比mysql相容行更強,資料的查詢速度更快,而且說有的mysql命令和設定均相容MariaDB資料的操作。
        MariaDB資料簡介:MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。在儲存引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。 MariaDB由MySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美元的價格,將自己建立的公司MySQL AB賣給了SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。
        MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人會從MySQL 5.5中瞭解到MariaDB的所有功能。
        從2012年11月12日起釋出的10.0.0版開始,不再依照MySQL的版號。10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發的新功能。
3、安裝apachehttp服務,提供WEB服務
        命令列如下:
sudo yum list http*  #檢視http的軟體安裝包
sudo yum install httpd.mips64el httpd-devel.mips64el  #選擇安裝相應的服務
sudo yum install php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch   #安裝pdo元件,經測試,支援loongson架構
/var/www/html/     #網頁更目錄
/etc/httpd/conf/   #設定目錄
systemctl enable httpd.service   #系統在開機時啟動Apache
發現問題,php程式碼編寫時不支援<?  ?> ,在嵌入顯示時,一定要按照規範寫為:<?php  ?>
4、不帶介面的命令列啟動
        由於作為伺服器使用,沒必要使用圖形化操作介面,使用純命令列啟動更能節省記憶體和CPU資源。
        因為在Fedora中沒有/etc/initab檔案我們不方便從這裡設定它的runlevel target,但是Linux又給我們提供了一個強悍的工具systemd,我們可以用system來連結預設的啟動級別,所以開始吧!
        以下介紹三種方法:
(1)刪除目標連結並建立新的符號連結(從命令列啟動)
ln -sf /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target
(2)從圖形介面啟動
把multi-user.target替換為graphical.target即可。
ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target
程式碼解釋
ln命令是一個在檔案之間建立連結的命令,預設情況是硬連結(hard link),我們要用的是符號連結(symboli link),它可以為在不同檔案系統中檔案建立連結。
-s  建立符號連結
-f   刪除已經存在的同名連結
        安裝php成功後,在無圖形介面,命令列開機的情況下開機,資源佔用情況:

        在有圖形介面的情況下,開機17天系統資源情況,由於我開的軟體較多,記憶體佔用在正常範圍內

        系統元件,特別是PDO的支援正常。

        對mysql(MariaDB資料)和sqlite資料庫的支援

        使用工具連線MariaDB資料,依然正常

        在3A2000做伺服器搭建通用的ecshop演示
        首先在ecshop官網http://yunqi.shopex.cn 下載UTF8的原始碼

        修改原始碼中一下目錄的bug:
a、\includes\lib_time.php on line 28
在28行前邊加一行date_default_timezone_set("PRC");
b、/includes/cls_template.php on line 422
只要422行把這一句拆成兩句就沒有問題了  $tag_sel = array_shift(explode(' ', $tag)); 改成: $tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag_arr);
c、/includes/cls_template.php on line 300
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
替換為:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
d、/install/includes/lib_installer.php on line 31
lib_installer.php檔案,將第31行程式碼中的return cls_image::gd_version();改成:$p = new cls_image();return $p->gd_version();即可解決。
e、/includes/lib_base.php
 第346行return cls_image::gd_version(); 改為 $p = new cls_image();    return $p->gd_version();
上傳upload內的原始碼到龍芯3A2000服務的某目錄,我這裡上傳到echsop目錄,並將該目錄的許可權設定為可寫。
進入http://XXXXX/install 進行安裝。

        在龍芯3A2000的mysql上新建個數據庫用於安裝ecshop,我這裡新建了名為ecshop的資料庫,字符集設定為UTF8,然後安裝介面進入下一步:

        安裝完成後進入首頁,執行穩定,點選反應速度很快。


 

        通過對國產龍芯CPU 3A2000主機的試用,首先說影象化介面,給我最深的感觸是穩定!我操作影象化介面系統,未發現因為CPU的問題重啟、宕機的情況,因為系統問題重啟宕機的情況也未發生,但發生一下應用程式執行錯誤的情況,這在linux系統上很常見,和CPU沒什麼關係,這個是國產軟體的生態問題。其次說重點就是我作為php的web伺服器的使用體驗,我通過系統軟體監控,開機後從未發生過重啟的現象,正常工作的情況下開啟各種服務直接流暢,與intel平臺安裝的linux系統沒有區別,因此可以說在伺服器操作層面,國產龍芯CPU替代intel系列的linux伺服器在相容和生態圈方面已經很棒。因為常用的依賴包、外掛、元件在源裡已經移植,直接使用命令編譯安裝即可,十分方便。在常用的公司、學校、政府機關使用自主可控的國產龍芯伺服器部署web網站我因為完全可以勝任了。一方面是穩定性好,另一方面使用了國產CPU不再擔心境外產品可能預留後門的隱患,大大提高了整個系統的安全性和抗網路攻擊的能力。往小了說提高了本單位本部門的系統的安全性,往大了說是為國家的網路資訊保安建設增磚添瓦! 

1.png