標(biāo)題有點(diǎn)長(zhǎng)颂碘。
概述:虛擬主機(jī)异赫,阿里云主機(jī),騰訊云主機(jī)头岔,都不是我想要的塔拳。個(gè)人用戶(hù)想建個(gè)站,發(fā)布博客峡竣,傳輸點(diǎn)大文件(不限速和無(wú)廣告)的低成本方案靠抑。
設(shè)備:
舊筆記本電腦:acer d257上網(wǎng)本,cpu:atom n570(四核适掰,支持64位)+2G內(nèi)存+160G硬盤(pán)
U盤(pán):8G格式化空白
阿里云域名:已認(rèn)證颂碧,費(fèi)用幾元到幾十元。
家庭寬帶:電信寬帶(有公網(wǎng)IP)类浪,普通路由器载城。
步驟:(文字版,先記錄一下戚宦,圖片以后補(bǔ)充)
1个曙、在舊筆記本電腦上安裝:centos 7
1)使用UltraISO軟件(官網(wǎng)下載最新試用版,試用版即可)受楼,寫(xiě)入centos 7 dvd版的iso垦搬。使用UltrsISO默認(rèn)就是usb-hdd+模式。
2)制作好centos 7 U盤(pán)安裝盤(pán)艳汽,設(shè)置電腦從U盤(pán)啟動(dòng)猴贰,進(jìn)入安裝界面。
3)在centos7安裝界面河狐,按:tab鍵米绕,修改安裝命令。(網(wǎng)上有大量的說(shuō)明馋艺,我都沒(méi)有成功栅干,只是在quiet后加了一個(gè)e(如下),回車(chē)捐祠,等待比較長(zhǎng)時(shí)間的loading碱鳞,之后出現(xiàn)圖形安裝界面。
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiete
4)設(shè)置好相應(yīng)的用戶(hù)名踱蛀,網(wǎng)卡窿给,安裝選擇上KNOME Desktop(方便以后使用)等贵白,保證可以上網(wǎng)。
*若忘記安裝圖形界面崩泡,以后安裝時(shí)禁荒,出現(xiàn)不能上網(wǎng),設(shè)置如下:
1角撞、登錄默認(rèn)用戶(hù)名root
2呛伴、CentOS安裝圖像桌面,
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
報(bào)錯(cuò):CANNOT FIND A VALID BASEURL FOR
無(wú)法連接到網(wǎng)絡(luò)靴寂,測(cè)試(ping www.baidu.com 終止ping命令:ctrl+c)
解決辦法:
進(jìn)入網(wǎng)絡(luò)配置目錄:cd /etc/sysconfig/network-scripts/
列出文件列表:ls
找到類(lèi)似文件:ifcfg-enxxxx
編輯文件:vi ifcgf-enxxx
按i鍵進(jìn)入編輯模式磷蜀,找到ONBOOT=no,把no改成yes
改好后,按esc鍵百炬,輸入(以下三個(gè)字符) :wq (:wq)保存退出褐隆,
命令:reboot,重啟后ping通剖踊,說(shuō)明網(wǎng)絡(luò)成功
3庶弃、安裝桌面操作
sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
命令行停下來(lái)提示輸入就輸入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)址梆造,用戶(hù)名和密碼一定要記下缴守。
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打不開(kāi)的解決辦法锋拖。原因是:在phpmyadmin的設(shè)置里诈悍,無(wú)法設(shè)置為php56或php73,無(wú)論如何修改均為:純靜態(tài)兽埃,以致于phpmyadmin無(wú)法打開(kāi)連接侥钳。卸載phpmyadmin,安裝最新版5.0柄错,到:phpmyadmin的設(shè)置里舷夺,可以看到,php的版本可以設(shè)置和保存了售貌。 \2月1日補(bǔ)充给猾。
* wordpress,入門(mén)教程: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)在阿里云域名解析頁(yè)面琢歇,請(qǐng)?jiān)O(shè)置相應(yīng)的A記錄。
如:share.XXXX.com A地址梦鉴,IP地址李茫,建議寫(xiě)一個(gè)其他的IP,不是家里的公網(wǎng)IP尚揣,以測(cè)試自動(dòng)更新是否成功涌矢。
3)在寶塔面板,文件快骗,找到wwwroot下的wordpress站點(diǎn)文件娜庇,新建一個(gè)文檔ddns.php,內(nèi)容如下:
其中的參數(shù):RecordId 需要請(qǐng)你登陸阿里云-OpenAPI開(kāi)發(fā)者門(mén)戶(hù)-查找DescribeDomainRecords方篮,請(qǐng)選擇你域名正確的地址名秀。
參考網(wǎng)址:https://next.api.aliyun.com/api/Alidns/2015-01-09/DescribeDomainRecords?lang=PHP&sdkStyle=old
實(shí)施過(guò)程,參考網(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ù)考榨,添加類(lèi)型:URL訪問(wèn)任務(wù)。
a)在寶塔面板鹦倚,站點(diǎn)中河质,設(shè)置默認(rèn)站點(diǎn),應(yīng)該是你的wordpress站點(diǎn)申鱼。如:share.XXXX.com
b)在寶塔面板愤诱,設(shè)置計(jì)劃任務(wù),URL訪問(wèn)任務(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è)一般沒(méi)有什么問(wèn)題拂共,在路由器的"端口轉(zhuǎn)發(fā)"里設(shè)置牺弄。根據(jù)你的實(shí)際情況。
一般為:
源IP為:*.*.*.* (即所有IP宜狐,路由器不同势告,可能表示法不同)
端口范圍:7770(避開(kāi)寶塔默認(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ì)于普通路由器來(lái)說(shuō)雄坪,使用以上ddns.php文件更方便,更換路由器等不受影響屯蹦。
7 使用網(wǎng)址來(lái)訪問(wèn)wordpress
使用網(wǎng)址:http://share.XXXX.com:7770/ 來(lái)管理wordpress,發(fā)布文章绳姨,實(shí)現(xiàn)真正的對(duì)外的主機(jī)登澜。
后續(xù)可以布置開(kāi)源類(lèi)網(wǎng)盤(pán)等等,實(shí)現(xiàn)個(gè)人網(wǎng)盤(pán)等飘庄。
最后:大約需要花1天的時(shí)間脑蠕,付出阿里云域名的費(fèi)用(低成本),實(shí)現(xiàn):獨(dú)立的云主機(jī)跪削、網(wǎng)盤(pán)等等谴仙、基于服務(wù)器的功能。實(shí)現(xiàn)DDNS碾盐,將個(gè)人的寬帶發(fā)揮最大的功用晃跺。可以實(shí)現(xiàn)多個(gè)站點(diǎn)(配合:解析毫玖,端口號(hào))
可以學(xué)習(xí)centos,寶塔,wordpress,域名等基礎(chǔ)知識(shí)掀虎。