標(biāo)題有點(diǎn)長(zhǎng)。
概述:虛擬主機(jī),阿里云主機(jī),騰訊云主機(jī),都不是我想要的。個(gè)人用戶想建個(gè)站,發(fā)布博客,傳輸點(diǎn)大文件(不限速和無廣告)的低成本方案。
設(shè)備:
舊筆記本電腦:acer d257上網(wǎng)本,cpu:atom n570(四核,支持64位)+2G內(nèi)存+160G硬盤
U盤:8G格式化空白
阿里云域名:已認(rèn)證,費(fèi)用幾元到幾十元。
家庭寬帶:電信寬帶(有公網(wǎng)IP),普通路由器。
步驟:(文字版,先記錄一下,圖片以后補(bǔ)充)
1、在舊筆記本電腦上安裝:centos 7
1)使用UltraISO軟件(官網(wǎng)下載最新試用版,試用版即可),寫入centos 7 dvd版的iso。使用UltrsISO默認(rèn)就是usb-hdd+模式。
2)制作好centos 7 U盤安裝盤,設(shè)置電腦從U盤啟動(dòng),進(jìn)入安裝界面。
3)在centos7安裝界面,按:tab鍵,修改安裝命令。(網(wǎng)上有大量的說明,我都沒有成功,只是在quiet后加了一個(gè)e(如下),回車,等待比較長(zhǎng)時(shí)間的loading,之后出現(xiàn)圖形安裝界面。
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiete
4)設(shè)置好相應(yīng)的用戶名,網(wǎng)卡,安裝選擇上KNOME Desktop(方便以后使用)等,保證可以上網(wǎng)。
*若忘記安裝圖形界面,以后安裝時(shí),出現(xiàn)不能上網(wǎng),設(shè)置如下:
1、登錄默認(rèn)用戶名root
2、CentOS安裝圖像桌面,
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
報(bào)錯(cuò):CANNOT FIND A VALID BASEURL FOR
無法連接到網(wǎng)絡(luò),測(cè)試(ping www.baidu.com 終止ping命令:ctrl+c)
解決辦法:
進(jìn)入網(wǎng)絡(luò)配置目錄:cd /etc/sysconfig/network-scripts/
列出文件列表:ls
找到類似文件:ifcfg-enxxxx
編輯文件:vi ifcgf-enxxx
按i鍵進(jìn)入編輯模式,找到ONBOOT=no,把no改成yes
改好后,按esc鍵,輸入(以下三個(gè)字符) :wq (:wq)保存退出,
命令:reboot,重啟后ping通,說明網(wǎng)絡(luò)成功
3、安裝桌面操作
sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
命令行停下來提示輸入就輸入y然后繼續(xù)
運(yùn)行指定啟動(dòng)時(shí)啟動(dòng)桌面:
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
2、寶塔linux面板
安裝完成centos,重啟使用圖形界面的終端或直接在命令行下:(請(qǐng)?jiān)诠倬W(wǎng)查看)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
等待系統(tǒng)更新及完成安裝寶塔面析。大約30分鐘。寶塔相關(guān)登陸網(wǎng)址,用戶名和密碼一定要記下。
3、在寶塔界面安裝運(yùn)行環(huán)境。
一般首次會(huì)讓你安裝環(huán)境,選lnmp(或你喜歡apache,就選lamp)。
PHP版本是:5.6,安裝后,在軟件商店里升級(jí)為PHP7.3
4、在寶塔界面安裝wordpress。
1)在寶塔面板,軟件商店里:安裝:寶塔一鍵部署源碼 1.1
2)在寶塔面板,軟件商店里:一鍵布署wordpress。
5、使用wordpress。(wordpress,默認(rèn)你是懂得使用和管理)
* 寶塔面板-數(shù)據(jù)庫(kù),phpmyadmin打不開的解決辦法。原因是:在phpmyadmin的設(shè)置里,無法設(shè)置為php56或php73,無論如何修改均為:純靜態(tài),以致于phpmyadmin無法打開連接。卸載phpmyadmin,安裝最新版5.0,到:phpmyadmin的設(shè)置里,可以看到,php的版本可以設(shè)置和保存了。 \2月1日補(bǔ)充。
* wordpress,入門教程:https://blog.naibabiji.com/an-zhuang-wordpress
6、域名解析,路由器設(shè)置,自動(dòng)將自己的IP更新到阿里域名云解析(實(shí)現(xiàn)DDNS功能。
1)在阿里云控制臺(tái),管理AccessKey。現(xiàn)在在使用阿里云AccessKey時(shí),請(qǐng)使用子帳號(hào)的AccessKey。新建子帳號(hào),給予權(quán)限:管理云解析(DNS)的權(quán)限。
2)在阿里云域名解析頁面,請(qǐng)?jiān)O(shè)置相應(yīng)的A記錄。
如:share.XXXX.com A地址,IP地址,建議寫一個(gè)其他的IP,不是家里的公網(wǎng)IP,以測(cè)試自動(dòng)更新是否成功。
3)在寶塔面板,文件,找到wwwroot下的wordpress站點(diǎn)文件,新建一個(gè)文檔ddns.php,內(nèi)容如下:
其中的參數(shù):RecordId 需要請(qǐng)你登陸阿里云-OpenAPI開發(fā)者門戶-查找DescribeDomainRecords,請(qǐng)選擇你域名正確的地址。
參考網(wǎng)址:https://next.api.aliyun.com/api/Alidns/2015-01-09/DescribeDomainRecords?lang=PHP&sdkStyle=old
實(shí)施過程,參考網(wǎng)址:https://blog.csdn.net/jxyk2007/article/details/109219855
只需要做第1、2、6步。
注意以下5個(gè)參數(shù),需要修改。AccessKeyId,AccessKeySecret,DomainName,RecordId,RR
<?php
date_default_timezone_set("GMT");
//綁定 ip 到域名
Ali::Obj()->UpdateDomainRecord();
class Ali
{
private $accessKeyId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private $accessSecrec = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private static $obj = null;
public static function Obj ()
{
if(is_null(self::$obj))
{
self::$obj = new self();
}
return self::$obj;
}
public function DescribeDomainRecords()
{
$requestParams = array(
"Action" => "DescribeDomainRecords",
"DomainName" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com"
);
$val = $this->requestAli($requestParams);
$this->outPut($val);
}
/**
* 更新 ip
*/
public function UpdateDomainRecord()
{
$ip = $this->ip();
$requestParams = array(
"Action" => "UpdateDomainRecord",
"RecordId" => "11111111111111111111111111111111111111", //你自己在第一步獲得的數(shù)據(jù),是一串?dāng)?shù)字。
"RR" => "share", //你自己的域名,我的是share.xx.com
"Type" => "A",
"Value" => $ip,
);
$val = $this->requestAli($requestParams);
$this->outPut($val." ".$ip);
}
private function requestAli($requestParams)
{
$publicParams = array(
"Format" => "JSON",
"Version" => "2015-01-09",
"AccessKeyId" => $this->accessKeyId,
"Timestamp" => date("Y-m-d\TH:i:s\Z"),
"SignatureMethod" => "HMAC-SHA1",
"SignatureVersion" => "1.0",
"SignatureNonce" => substr(md5(rand(1,99999999)),rand(1,9),14),
);
$params = array_merge($publicParams, $requestParams);
$params['Signature'] = $this->sign($params, $this->accessSecrec);
$uri = http_build_query($params);
$url = 'http://alidns.aliyuncs.com/?'.$uri;
return $this->curl($url);
}
private function ip()
{
$ip = $this->curl("http://httpbin.org/ip");
$ip = json_decode($ip,true);
return $ip['origin'];
}
private function sign($params, $accessSecrec, $method="GET")
{
ksort($params);
$stringToSign = strtoupper($method).'&'.$this->percentEncode('/').'&';
$tmp = "";
foreach($params as $key=>$val){
$tmp .= '&'.$this->percentEncode($key).'='.$this->percentEncode($val);
}
$tmp = trim($tmp, '&');
$stringToSign = $stringToSign.$this->percentEncode($tmp);
$key = $accessSecrec.'&';
$hmac = hash_hmac("sha1", $stringToSign, $key, true);
return base64_encode($hmac);
}
private function percentEncode($value=null)
{
$en = urlencode($value);
$en = str_replace("+", "%20", $en);
$en = str_replace("*", "%2A", $en);
$en = str_replace("%7E", "~", $en);
return $en;
}
private function curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
$result=curl_exec ($ch);
return $result;
}
private function outPut($msg)
{
echo date("Y-m-d H:i:s")." ".$msg.PHP_EOL;
}
}
//2月4日修改,正確更新。
4)在寶塔面板,設(shè)置計(jì)劃任務(wù),添加類型:URL訪問任務(wù)。
a)在寶塔面板,站點(diǎn)中,設(shè)置默認(rèn)站點(diǎn),應(yīng)該是你的wordpress站點(diǎn)。如:share.XXXX.com
b)在寶塔面板,設(shè)置計(jì)劃任務(wù),URL訪問任務(wù),網(wǎng)址應(yīng)為:http://192.168.*.*:端口號(hào)/ddns.php。設(shè)置相應(yīng)的時(shí)間,一般為N小時(shí),因家里的公網(wǎng)IP應(yīng)該1-2天會(huì)換下。
保存后,運(yùn)行一次。到阿里云域名解析這里,就可以看到IP已經(jīng)更新為你家里寬帶IP了。
5)路由器設(shè)置
這個(gè)一般沒有什么問題,在路由器的"端口轉(zhuǎn)發(fā)"里設(shè)置。根據(jù)你的實(shí)際情況。
一般為:
源IP為:*.*.*.* (即所有IP,路由器不同,可能表示法不同)
端口范圍:7770(避開寶塔默認(rèn)的8888,80,8000,8080等,以免80端口服務(wù)商不讓轉(zhuǎn)發(fā))
內(nèi)網(wǎng)IP: 192.168.*.* (就是你的電腦IP,也就是寶塔IP,)
內(nèi)網(wǎng)端品:7770(可以不同,根據(jù)你的實(shí)際)
有關(guān)寬帶貓和路由器的連接:電信寬帶貓請(qǐng)自行想辦法改為橋接模式,方便使用,用超級(jí)管理員或請(qǐng)電信客服處理。寬帶貓下接自備路由器。路由器有些人用華碩梅林里面的阿里的ddns,對(duì)于普通路由器來說,使用以上ddns.php文件更方便,更換路由器等不受影響。
7 使用網(wǎng)址來訪問wordpress
使用網(wǎng)址:http://share.XXXX.com:7770/ 來管理wordpress,發(fā)布文章,實(shí)現(xiàn)真正的對(duì)外的主機(jī)。
后續(xù)可以布置開源類網(wǎng)盤等等,實(shí)現(xiàn)個(gè)人網(wǎng)盤等。
最后:大約需要花1天的時(shí)間,付出阿里云域名的費(fèi)用(低成本),實(shí)現(xiàn):獨(dú)立的云主機(jī)、網(wǎng)盤等等、基于服務(wù)器的功能。實(shí)現(xiàn)DDNS,將個(gè)人的寬帶發(fā)揮最大的功用。可以實(shí)現(xiàn)多個(gè)站點(diǎn)(配合:解析,端口號(hào))
可以學(xué)習(xí)centos,寶塔,wordpress,域名等基礎(chǔ)知識(shí)。