Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
文為php中文網(wǎng)認(rèn)證作者:“L先生”投稿,歡迎加入php中文網(wǎng)有償投稿計(jì)劃!
如在《程序員還看帶廣告的小說》中所述,很多小說網(wǎng)站基本都有特別煩人的廣告,要么在整體div添加鏈接,誤觸就會(huì)跳轉(zhuǎn)到一些網(wǎng)站甚至是死循環(huán),某些手機(jī)app也是廣告很多,本文就將其應(yīng)用到laravel框架,最好先了解上一篇,隨后自行部署就可以了。
一、在laravel引入第三方類
1.在項(xiàng)目根目錄下app目錄中新建一個(gè)文件夾命名為Lib(自定義名稱)
2.如果引入第三方庫多的話可以在Lib下再新建幾個(gè)目錄分類,由于只引入了一個(gè)類,這里沒有新建文件夾。(根據(jù)引入類的多少自己定義)
將simple_html_dom.php復(fù)制到Lib下
3.找到項(xiàng)目根目錄下的composer.json文件,將第三方類的路勁寫入autoload下的classmap中,這樣才能自動(dòng)加載
"autoload": {"classmap": ["database/seeds","database/factories","app/Lib/simple_html_dom.php"]},
4.在cmd控制臺(tái)中切換到項(xiàng)目根目錄,執(zhí)行命令:
composer dumpautoload
5.在控制器中use這個(gè)類即可
use simple_html_dom;
$html = new simple_html_dom(); 使用
二、創(chuàng)建路由
Route::get('/novel_list','index\Spnovel@index');
三、創(chuàng)建控制器Spnovel.php
<?php
namespace App\Http\Controllers\index;
use simple_html_dom;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class Spnovel extends Controller
{
public function index(){
$url = "https://www.7kzw.com/85/85445/";
$list_html = mySpClass::getCurl($url);
$data['List'] = self::getList($list_html);
return view('index.spnovel.index',$data);
}
private static function getList($list_html){
$html = new simple_html_dom();
@$html->load($list_html);
$list = $html->find('#list dd a');
foreach ($list as $k=>$v) {
$arr1=$arr2=[];
$p1 = '/<a .*?>(.*?)<\/a>/i';
$p2 = '/<a .*? href="(.*?)">.*?<\/a>/i';
preg_match($p1,$v->outertext,$arr1);
preg_match($p2,$v->outertext,$arr2);
$content[$k][0]=$arr1[1];
$content[$k][1]=$arr2[1];
}
array_splice($content,0,12);
return $content;
}
}
class mySpClass{
// 向服務(wù)器發(fā)送最簡單的get請(qǐng)求
public static function getCurl($url,$header=null){
// 1.初始化
$ch = curl_init($url); //請(qǐng)求的地址
// 2.設(shè)置選項(xiàng)
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//獲取的信息以字符串返回,而不是直接輸出(必須)
curl_setopt($ch,CURLOPT_TIMEOUT,10);//超時(shí)時(shí)間(必須)
curl_setopt($ch, CURLOPT_HEADER,0);// 啟用時(shí)會(huì)將頭文件的信息作為數(shù)據(jù)流輸出。
//參數(shù)為1表示輸出信息頭,為0表示不輸出
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //不驗(yàn)證證書
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //不驗(yàn)證證書
if(!empty($header)){
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);//設(shè)置頭信息
}else{
$_head = [
'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'
];
curl_setopt($ch,CURLOPT_HTTPHEADER,$_head);
}
// 3.執(zhí)行
$res = curl_exec($ch);
// 4.關(guān)閉
curl_close($ch);
return $res;
}
}
以上代碼的解釋:首先要對(duì)laravel框架了解,對(duì)php類要有所了解
訪問了以上路由,運(yùn)行的是Spnovel.php控制器中的index方法,$url是某一本小說的章節(jié)列表的地址,將其作為參數(shù)運(yùn)行自定義類mySpClass中的getcurl方法,返回這個(gè)頁面的html文檔字符串。
運(yùn)行此類中的getList方法,參數(shù)是需要解析的html字符串。將這個(gè)方法私有化,使用simple_html_dom解析,配置正則提取出每章的url地址和章節(jié)名稱。
并返回這個(gè)數(shù)組,通過return view('index.spnovel.index',$data);將打開index/spnovel/index.blade.php,請(qǐng)看index.blade.php
四、創(chuàng)建視圖index.blade.php
<!DOCTYPE html>
<html>
<head>
<title>爬取的小說列表</title>
<style type="text/css">
body{padding:0px;margin:0px;}
#lists{width:100%;padding:30px 50px;box-sizing:border-box;}
ul{margin:0;padding: 0;overflow:hidden;}
ul li{list-style:none;display:inline-block;float:left;width:25%;color:#444;}
ul li:hover{color:#777;cursor: pointer;}
img {z-index:-1;width:100%;height:100%;position:fixed;}
</style>
</head>
<body>
<img src="/static/img/index/novelbg.jpg">
<div id="lists">
<ul>
@foreach($List as $item)
<li>
<a href="/novel_con{{$item[1]}}">{{$item[0]}}</a>
</li>
@endforeach
</ul>
</div>
</body>
</html>
以上代碼的解釋:css就簡單的寫到這里,img是作為背景圖片的。ul里面循環(huán)li,{{$item[1]}}是獲得的地址參數(shù),{{$item[0]}}是獲得的章節(jié)名稱。看一下數(shù)組和最后的效果。
五、運(yùn)行
接下來就是每一章節(jié)的內(nèi)容了
先看路由:
Route::get('/novel_con/{a}/{b}/{c}','index\Spnovel@get_nContent');
這與每一章的url參數(shù)相對(duì)應(yīng),比如某一章的參數(shù)為:novel_con/85/85445/27248645.html
寫get_nContent方法:
public function get_nContent(Request $req){
$url1 = $req->a.'/'.$req->b.'/'.$req->c;
$url = "https://www.7kzw.com/".$url1;
$res = mySpClass::getCurl($url);//獲得
// 開始解析
$data['artic']= self::getContent($res);
$next = (int)$req->c;
$next = $next+1;
$data['artic']['next']="/novel_con/".$req->a.'/'.$req->b.'/'.$next.'.html';
return view('index.spnovel.ncontent',$data);
}
private static function getContent($get_html){
$html = new simple_html_dom();
@$html->load($get_html);
$h1 = $html->find('.bookname h1');
foreach ($h1 as $k=>$v) {
$artic['title'] = $v->innertext;
}
// 查找小說的具體內(nèi)容
$divs = $html->find('#content');
foreach ($divs as $k=>$v) {
$content = $v->innertext;
}
// 正則替換去除多余部分
$pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/";
$artic['content'] = preg_replace($pattern,'',$content);
return $artic;
}
解釋:$req->a,$req->b,$req->c,分別是三個(gè)參數(shù),然后將其合并為一個(gè)完整的請(qǐng)求某一章的地址,然后還是通過mySpClass::getCurl獲得某一章的html字符串。
然后使用本類中的getContent解析這個(gè)頁面,先看解析方法,和上篇文章一章解析出章節(jié)的標(biāo)題和內(nèi)容,寫到數(shù)組中,并且去掉了多余的文字廣告部分。
$next則是存放的下一章的地址,用于在章節(jié)詳情頁面跳轉(zhuǎn)。
視圖ncontent.blade.php
<!DOCTYPE html>
<html>
<head>
<title>{{$artic['title']}}</title>
<style type="text/css">
h2{text-align:center;padding-top:30px;}
div{margin:20px 50px;font-size:20px;}
img {z-index:-1;width:100%;height:100%;position:fixed;}
.next {position:fixed;right:10px;bottom:20px;background:coral;border-radius:3px;padding:4px;}
.next:hover{color:#fff;}
</style>
</head>
<body>
<img src="/static/img/index/novelbg.jpg">
<h2>{{$artic['title']}}</h2>
<a href="{{$artic['next']}}" class="next">下一章</a>
<div>
{!!$artic['content']!!}
</div>
</body>
</html>
解釋:因?yàn)橹挥挟?dāng)前一篇所以不需要循環(huán),{{$artic['title']}}就是標(biāo)題,也可以寫到title中。{!!$artic['content']!!}的寫法就是不需要轉(zhuǎn)義文章的內(nèi)容,否則就會(huì)有很多其他字符了,如<br>等。
下一章的按鈕的地址直接就用傳遞過來的即可,position:fixed固定定位按鈕,隨時(shí)可以下一章。
運(yùn)行:
總結(jié):本文最重要的環(huán)節(jié)就是引入第三方類,能夠應(yīng)用他,還有就是laravel的基礎(chǔ),比較習(xí)慣使用控制器視圖這種方式,帶模型的方式還請(qǐng)自行編寫驗(yàn)證。
就對(duì)一本小說來說這就足夠了,當(dāng)然我們可以擴(kuò)充,將整站的小說列表寫出來,繼續(xù)傳合適的參數(shù)就更加完美了。
(聲明:該示例小說是隨便找的,絕對(duì)不是推廣,侵刪)
家好,我是明哥。
前兩天我用WordPress 給自己搭建了一個(gè)網(wǎng)站,整個(gè)過程非常的順利,體驗(yàn)非常地好,于是我就整個(gè)過程、以及其中的一些搭建心得,記錄下來。
如果你也正好有搭建個(gè)人網(wǎng)站的想法,那么本文會(huì)給你一個(gè)參考,也許看了這篇文章你就可以不用再百度、甚至谷歌了,因?yàn)槲視?huì)寫得 足夠的細(xì)致而系統(tǒng)。
說到網(wǎng)站,其實(shí)我搭建過挺多個(gè)了。
從最開始的 Hexo 靜態(tài)博客,到后來使用 Django 仿照 Hexo -Next 主題自己寫了一個(gè)有后端的個(gè)人博客。
再后來又發(fā)現(xiàn)了 Sphinx + Github + ReadtheDocs 完美的文檔編排組合,用了搭建了四個(gè)網(wǎng)站,分別是:
這些四個(gè)網(wǎng)站,很好的將我這幾年來寫的文章進(jìn)行分類,并以精美的排版展現(xiàn)在每一個(gè)需要的人眼前。
四個(gè)網(wǎng)站,用的都是三級(jí)子域名,可見在我心里,他們無論哪一個(gè)都無法成為我心中的個(gè)人網(wǎng)站。
原因有幾點(diǎn):
雖然有不少讓我心痛的地方,但是它們卻有流淌在基因里的優(yōu)勢(shì):
好像扯遠(yuǎn)了,還是說回 WP 的網(wǎng)站搭建吧。
在教程之前呢,我先 show 一下我的成果,歡迎你去點(diǎn)點(diǎn)點(diǎn)~
網(wǎng)站地址:https://iswbm.com
在開始搭建網(wǎng)站之前,當(dāng)然第一步是購買一個(gè)屬于自己的 『服務(wù)器』。
你可以選擇如下渠道進(jìn)行購買:
等的大廠服務(wù)器,不要貪圖便宜去買國外的服務(wù)器廠商,因?yàn)樗俣群苈芏啵苡绊戵w驗(yàn)。
我的就是在 阿里云 上購買的,剛開始買個(gè)最低配置的服務(wù)器就行,以后不夠用了,可以慢慢升級(jí),擴(kuò)容。
可以先領(lǐng)個(gè)券,再購買更實(shí)惠:點(diǎn)擊領(lǐng)券
如果是學(xué)生可以在領(lǐng)券頁面里找到學(xué)生專享,服務(wù)器9.5元/月,直接點(diǎn)擊購買即可。不是學(xué)生也可以組團(tuán)購買,更便宜,服務(wù)器購買就不多說了,拿錢就好了。
買了服務(wù)器后,你就會(huì)擁有一個(gè)公網(wǎng)ip,如果網(wǎng)站搭建起來了,你完全可以使用這個(gè) ip 去訪問,但僅供開發(fā)、測試使用。
如果要真正運(yùn)營起來,想要有流量,還得搞一個(gè)域名,方便你推廣。
域名的購買建議和上面服務(wù)器使用同一個(gè)廠商,可以省去一些麻煩。比如阿里云購買的域名要備案是需要你在阿里云下有一臺(tái)服務(wù)器的。
由于后面我使用的是手工部署的方式,所以要登陸服務(wù)器進(jìn)行操作。
登陸的方法有兩種:
廠商提供的控制臺(tái)界面登陸:Workbench 和 VNC
這種方法對(duì)于不經(jīng)常登陸服務(wù)器運(yùn)維的人來說,還是挺香的。
自己下載專業(yè)的遠(yuǎn)程登陸軟件:Xshell 或者 CRTSecure
在使用這些遠(yuǎn)程登陸軟件時(shí),你需要在服務(wù)器廠商控制臺(tái)上面先獲取到三個(gè)信息
關(guān)于 Xshell 如何使用的,可以自行百度搜索,教程非常多。
可以到阿里云上去購買,選最低配置就足夠啦,后續(xù)訪問量起來了再擴(kuò)容升級(jí)。
部署方式,可分為兩種
那么如何選擇呢?
使用寶塔部署,門檻低,只要會(huì)界面點(diǎn)一點(diǎn)即可。
而使用腳本自己手工部署,需要你學(xué)會(huì)
在這里建議大家跟著我使用第二種方法,也就是手工使用腳本進(jìn)行部署。
原因有二:
LNMP 是 Linux + Nginx + MySQL + PHP 組合的簡寫。
類似的組合還有:
其中:
Linux 是類 Unix 計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱,是目前最流行的免費(fèi)操作系統(tǒng)。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。
Nginx 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。
Apache 是世界使用排名第一的Web服務(wù)器軟件。 它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。
PHP 是一種在服務(wù)器端執(zhí)行的嵌入 HTML 文檔的腳本語言。
MySQL 是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
這些軟件一個(gè)一個(gè)安裝比較費(fèi)力,特別是數(shù)據(jù)庫。
因此有人把這些軟件的安裝部署過程集成為一個(gè) Shell 腳本,而你只要下載并執(zhí)行它就可以了。簡直不要太方便。
下載 LNMP 安裝腳本(目前最新版本是 1.7 ,我安裝的是 1.5,更多版本可查看: https://lnmp.org/download.html)
$ wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz
解壓并執(zhí)行它
$ tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
接下來會(huì)出現(xiàn)大量的選項(xiàng),如果你不是很懂各個(gè)選項(xiàng)間的區(qū)別,按默認(rèn)就行啦
運(yùn)行腳本后,首先會(huì)讓你選擇數(shù)據(jù)庫的版本:
沒有特殊需要,建議使用默認(rèn)配置,直接回車或輸入序號(hào)再回車。
選好數(shù)據(jù)庫,會(huì)讓你設(shè)置數(shù)據(jù)庫 root 用戶的密碼,此時(shí)如果你直接回車,會(huì)默認(rèn)設(shè)置為 lnmp.org#隨機(jī)數(shù)字
,
在輸入密碼的時(shí)候,對(duì)于新手有一點(diǎn)注意:如果輸入有錯(cuò)誤需要?jiǎng)h除,需要按住Ctrl再按Backspace鍵進(jìn)行刪除。
密碼輸好后,回車進(jìn)入下一步
詢問是否需要啟用 MySQL InnoDB,InnoDB引擎默認(rèn)為開啟,一般建議開啟,直接回車或輸入 y 。
如果確定確實(shí)不需要該引擎可以輸入 n,(MySQL 5.7+版本無法關(guān)閉InnoDB),輸入完成,回車進(jìn)入下一步:選擇 PHP 版本,建議安裝 PHP 7+的版本
回車進(jìn)入下一步,選擇是否安裝內(nèi)存優(yōu)化:
可以選擇不安裝、Jemalloc或TCmalloc,輸入對(duì)應(yīng)序號(hào)回車,直接回車為默認(rèn)為不安裝。
如果是LNMPA或LAMP的話還會(huì)提示設(shè)置郵箱和選擇Apache:
“Please enter Administrator Email Address:”,需要設(shè)置管理員郵箱,該郵箱會(huì)在報(bào)錯(cuò)時(shí)顯示在錯(cuò)誤頁面上。再選擇Apache版本:
按提示輸入對(duì)應(yīng)版本前面的數(shù)字序號(hào),回車。
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回車鍵確認(rèn)開始安裝。 LNMP腳本就會(huì)自動(dòng)安裝編譯Nginx、MySQL、PHP、phpMyAdmin等軟件及相關(guān)的組件。
安裝時(shí)間可能會(huì)幾十分鐘到幾個(gè)小時(shí)不等,主要是機(jī)器的配置網(wǎng)速等原因會(huì)造成影響。
如果顯示Nginx: OK,MySQL: OK,PHP: OK
表明安裝成功。
最后幾行的輸出
安裝好后,使用如下指令查看nginx配置文件(如果你的服務(wù)器上找不到該文件,那請(qǐng)使用 find / -name nginx.conf
搜索一下)
$ cat /usr/local/nginx/conf/nginx.conf
你會(huì)看到如下內(nèi)容:
上圖表明,安裝好的nginx將網(wǎng)站的根目錄設(shè)置為/home/wwwroot/default,這個(gè)可以根據(jù)自己的喜好進(jìn)行修改。
用瀏覽器打開http://ip
,可以看到如下內(nèi)容:
其實(shí)這就是一個(gè)簡單的網(wǎng)頁demo了,自己隨便修改index.html,就會(huì)有不同的內(nèi)容。
WordPress是使用PHP語言(這也是我們上面為什么要安裝 PHP 的原因)開發(fā)的博客平臺(tái),也就是一個(gè)博客框架。
上一步安裝的 LNMP,只是保證了 WordPress 的基本運(yùn)行環(huán)境。
想要把你的個(gè)人網(wǎng)站跑起來,咱還需要安裝 WordPress 。
方法也很簡單,下面跟著操作就行。
第一步:安裝 wordpress 安裝包并解壓到 /home/wwwroot
$ wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip -d /home/wwwroot
第二步:登錄MySQL(密碼在前面 部署LNMP 時(shí)你設(shè)置過),創(chuàng)建wordpress表,創(chuàng)建完后輸入exit退出。
$ mysql -u root -p
Enter password:
MySQL > create database wordpress;
第三步:使用 vim 修改 nginx 配置文件(不會(huì)vim的自行百度)
$ vim /usr/local/nginx/conf/nginx.conf
找到網(wǎng)站根目錄位置,如下圖所示:
修改成如下內(nèi)容:
隨后,使用wq保存配置退出即可。
驗(yàn)證nginx是否有配置錯(cuò)誤:
$ nginx -t
如果出現(xiàn)ok,successful字樣,說明沒有錯(cuò)誤。沒有錯(cuò)誤,重新加載nginx:
$ nginx -s reload
修改wordpress目錄權(quán)限:
$ cd /home/wwwroot && chown -R www wordpress/ && chgrp -R www wordpress/
用瀏覽器打開http://ip/wp-admin/setup-config.php,你可以看到如下內(nèi)容:
現(xiàn)在就開始,進(jìn)行安裝。填寫信息如下:
其中,*** 改為你設(shè)置的MySQL數(shù)據(jù)庫密碼。點(diǎn)擊提交,出現(xiàn)如下內(nèi)容:
在/home/wwwroot/wordpress下,創(chuàng)建并編寫wp-config.php文件:
$ vim wp-config.php
將上圖內(nèi)容復(fù)制進(jìn)去并wq保存退出,然后點(diǎn)擊現(xiàn)在安裝。最后就是配置用戶信息了,這個(gè)是你登錄wordpress用戶后臺(tái)的,要記住:
最后點(diǎn)擊安裝WordPress,安裝成功會(huì)出現(xiàn)如下界面:
點(diǎn)擊登錄,輸入賬戶密碼,就可以登錄自己的 wordpress 后臺(tái)了。
這時(shí)候你使用瀏覽器去訪問 http://ip ,就可以看到你搭建的第一個(gè)網(wǎng)站了。
此時(shí)你看到的這個(gè)網(wǎng)站,是 wordpress 默認(rèn)為你安裝的免費(fèi)主題(應(yīng)該有三個(gè)),可能并不是那么的好看,但沒關(guān)系,后面我會(huì)教大家如何挑選一個(gè)自己合適的主題,把你的網(wǎng)站裝扮得有模有樣。
到這里,你的網(wǎng)站部署已經(jīng)全部完成,但是還差最后一步,也是使用 WordPress 最為核心的一步:讓你的網(wǎng)站看起來更加專業(yè),更加成熟。
為此我們需要做兩件事:
同樣都使用的 WordPress 的網(wǎng)站,外觀上卻天差地別。有的很酷炫,有點(diǎn)很簡約,這是因?yàn)檫x了不同的主題(可以理解為皮膚)。
在你安裝完 WordPress 后,本身就自帶了幾個(gè)免費(fèi)的主題。
幾乎沒人會(huì)使用它們,因?yàn)閷?shí)在沒什么亮點(diǎn)(就是丑)。
在 WordPress 的自帶了主題商店,里面有大量的免費(fèi)主題,各式各樣的都有,可能有你喜歡的。
在這里要說明一點(diǎn),我的主題不是在商店里安裝的,而是我通過搜索引擎找到了一個(gè)比較清爽的主題,很符合我的審美,我裝扮過后的效果如下。
如果你想和我用一樣的主題,我已經(jīng)將安裝包打包好了(需要的添加我微信領(lǐng)取: stromwbm),直接下載后,按下圖的方式上傳到你的 WordPress 后臺(tái)安裝就行。
目前我安裝的插件比較少,但是基本夠用啦,下面列舉一下,如果你有什么好插件介紹,可以評(píng)論區(qū)推薦一下:
1. WP User Avatar
原生 WordPress 默認(rèn)使用 Gravatar頭像,用戶(包括訪客評(píng)論)的頭像調(diào)取都是根據(jù)所留郵箱匹配的 Gravatar 頭像。
沒有 Gravatar 怎么辦?
只要裝上 WP User Avatar
這個(gè)插件就能可以使用 WordPress 媒體庫中的圖片作為默認(rèn)頭像了。
2. WP-PostViews
安裝了 WP-PostViews,就可以統(tǒng)計(jì)你文章的瀏覽次數(shù)。
需要兩步配置
第一步:設(shè)置顯示的文字
第二步:在你要顯示的位置寫入如下代碼
效果如下
3. Post Views Counter
咦,上面已經(jīng)安裝了一個(gè)統(tǒng)計(jì)閱讀量的插件,怎么這邊又推薦一個(gè)。
上面那個(gè)統(tǒng)計(jì)閱讀量的插件,其實(shí)做的比較粗糙。
這是什么意思。
比如同一個(gè) ip 連續(xù)連刷10次,WP-PostViews 的閱讀量會(huì) +10
,但如果你使用 Post Views Counter,這個(gè)規(guī)則可以由你來定,可以只顯示一次。
安裝完這個(gè)插件后,同樣需要進(jìn)行一些配置
為什么這里選擇手動(dòng)呢?
因?yàn)槲野l(fā)現(xiàn)不管在內(nèi)容之前,還是在內(nèi)容之后,顯示的位置都比較尷尬(它會(huì)換行)。
如果你和我用一樣的主題,想和我有一樣的效果,那么你選擇手動(dòng)之后,還要按下圖指示修改下代碼,新增如下一段代碼。
效果如下
4. WP Editor.md
或許這是一個(gè)WordPress中最好,最完美的Markdown編輯器。
可以像 md2all 和 mdnice 那樣,即時(shí)顯示 Markdown 的渲染效果,喜歡在后臺(tái)寫文章的可以安裝(其實(shí)我是先本地 Typora 寫好了再復(fù)制上去的)。
5. Simple Custom CSS
在修改 WordPress主題時(shí),CSS修改是最經(jīng)常用到的方法,比如調(diào)整字體、調(diào)整顏色、邊距之類的都需要用到自定義的CSS代碼。
雖然說 WordPress 本身提供了CSS修改的功能,不過使用起來有很多的弊端,其中最麻煩的一點(diǎn)就是每次更換或者更新主題之前的修改都會(huì)消失,需要重復(fù)的添加。
使用 Simple Custom CSS
這個(gè)插件可以避免這種尷尬,安裝后他會(huì)在 外觀
下新增一個(gè) 自定義CSS
的選項(xiàng)。
6. LuckyWP Table of Contents
使用我這個(gè)主題,在文章頁面是沒有目錄索引的,對(duì)于讀者來說,其實(shí)挺不方便的。
因此我安裝了 LuckyWP Table of Contents,可以在我的文章中生成一個(gè)目錄。目錄默認(rèn)是隱藏的(當(dāng)然你也可以設(shè)置默認(rèn)展示),需要的話再點(diǎn)擊展開。
點(diǎn)擊目錄可以直接跳轉(zhuǎn)到對(duì)應(yīng)位置。
但可能是我這個(gè)主題的原因,我的網(wǎng)站無法跳轉(zhuǎn),如果有人知道原因,還請(qǐng)留言區(qū)評(píng)論一下。
7. 百度搜索推送管理
百度搜索推送管理插件是一款針對(duì)WP開發(fā)的功能非常強(qiáng)大的百度和Bing搜索引擎收錄輔助插件。
利用該插件,站長可以快速實(shí)現(xiàn)百度搜索資源平臺(tái)和Bing站長平臺(tái)URL數(shù)據(jù)推送及網(wǎng)站百度收錄數(shù)據(jù)查詢等。
目的在于進(jìn)一步提升網(wǎng)站的百度和Bing搜索引擎收錄效率,提升網(wǎng)站SEO優(yōu)化效果;及幫助站長通過該插件了解網(wǎng)站百度收錄數(shù)據(jù)情況,基于數(shù)據(jù)統(tǒng)計(jì)參考進(jìn)一步對(duì)網(wǎng)站內(nèi)容進(jìn)行調(diào)整與優(yōu)化。
具體使用方法比較復(fù)雜,自己百度一下吧
8. Smart SEO Tool
Smart SEO Tool是一款專門針對(duì)WordPress開發(fā)的智能SEO優(yōu)化插件,與眾多WordPress的SEO插件不一樣的是,Smart SEO Tool更加簡單易用,幫助站長快速完成WordPress博客/網(wǎng)站的SEO基礎(chǔ)優(yōu)化。
先在后臺(tái)按如下圖示進(jìn)行設(shè)置
但是這樣不夠,要使用固定鏈接,服務(wù)器還需要開啟 rewrite 的功能。
如果你和我使用的是 nginx ,那么只要登陸服務(wù)器,在
/usr/local/nginx/conf/nginx.conf
里的 server 里加上這一段(我放在倒數(shù)第二段)
location / {
if (!-e $request_filename) {
rewrite (.*) /index.php;
}
}
然后重啟一下 nginx
$ systemctl restart nginx
如果你的域名已經(jīng)備案了,最好將你的備案號(hào)放到底部(好像會(huì)有檢查)。
一個(gè)好的排版,能夠極大提升閱讀體驗(yàn),因此定制一個(gè)好的排版非常有必要。
我網(wǎng)站里的文章排版樣式,借用的是 mdnice 的主題,個(gè)人非常喜歡。
/* 二級(jí)標(biāo)題 */
.view-content h2 {
margin: 40px 20px auto;
height: 40px;
background-color: rgb(251, 251, 251);
border-bottom: 1px solid rgb(246, 246, 246);
overflow: hidden;
box-sizing: border-box;
}
/* 二級(jí)標(biāo)題內(nèi)容 */
.view-content h2 {
margin-left: -10px;
display: inline-block;
width: auto;
height: 40px;
background-color: rgb(33, 33, 34);
border-bottom-right-radius:100px;
color: rgb(255, 255, 255);
padding-right: 30px;
padding-left: 30px;
line-height: 40px;
font-size: 16px;
}
/* 二級(jí)標(biāo)題修飾 請(qǐng)參考有實(shí)例的主題 */
.view-content h2:after {
}
/* 三級(jí)標(biāo)題內(nèi)容 */
.view-content h3 {
margin-top: 5px;
padding-top: 20px;
padding-right: 5px;
padding-bottom: 5px;
padding-left: 5px;
font-size: 17px;
border-bottom: 2px solid rgb(33, 33, 34);
line-height: 1.1;
}
/* 引用文字 */
.view-content blockquote p {
color: #353535;
font-size: 16px;
margin: 0 10px;
display: block;
}
.view-content .blockquote:after {
content: "”";
float: right;
display: block;
font-size: 2em;
color: rgb(248, 57, 41);
font-family: Arial, serif;
line-height: 1em;
font-weight: 700;
}
/* 二維碼顯示 */
header .gongzhonghao {
color: #fff;
font-size: 14px;
position: absolute;
bottom: 30px;
}
header .weixinhao {
color: #fff;
font-size: 14px;
position: absolute;
bottom: 180px;
}
關(guān)于如何部署 HTTPS ,我在之前的文章里講過一種。
今天再介紹另外一種:使用寶塔。
注冊(cè)并登陸寶塔(https://bt.cn),然后進(jìn)入控制面板,進(jìn)行實(shí)名認(rèn)證。
點(diǎn)擊申請(qǐng)證書
選擇免費(fèi)的就好
填寫你的域名后,支付訂單(其實(shí)不要錢)。
然后點(diǎn)擊詳情,需要驗(yàn)證該域名是歸你所有。
方法它會(huì)告訴你,登陸我的阿里云域名解析,根據(jù)如下提示去添加 DNS解析規(guī)則
然后靜待一段時(shí)間驗(yàn)證成功了,就可以點(diǎn)擊如下按鈕,下載數(shù)據(jù)證書。
下載到本地后,你會(huì)得到一個(gè) zip 包,解壓一下,就可以看到證書文件及私鑰。
因?yàn)槲业牟┛褪褂玫氖?Nginx,因此我該 Nginx 下的兩個(gè)文件上傳到我的服務(wù)器上的 nginx 目錄下.
具體怎么上傳呢?你可以使用遠(yuǎn)程拷貝軟件,例如 WinSCP,也可以使用 lrzsz
(推薦使用)。
傳到哪個(gè)目錄下呢?
先使用 find 命令查找一下你的 nginx.conf 路徑
$ find / -name nginx.conf
/usr/local/nginx/conf/nginx.conf
你的證書文件可以和 nginx.conf 放在同一目錄下
/usr/local/nginx/conf
接下來使用 vim 編輯該文件,找到 server,添加如下行( server 原本的內(nèi)容 我使用 ...
表示,意思是不需要去動(dòng)。 )
server
{
listen 443 ssl;
# 注釋掉該行
# listen 80 default_server reuseport;
#證書文件名稱
ssl_certificate 1_iswbm.com_bundle.pem;
#私鑰文件名稱
ssl_certificate_key 0_iswbm.com.key;
...
}
最后重啟 nginx
$ systemctl restart nginx
嘗試用 https 訪問一下我的網(wǎng)站 https://iswbm.com
,非常順利。
到這里,事情其實(shí)還沒有結(jié)束,你還需要做兩件事情:
第一件事:在后臺(tái)進(jìn)行一些配置,不然從網(wǎng)站跳轉(zhuǎn)的時(shí)候還是會(huì)使用 http
第二件事:將 http 重定向到你 https,不然有人在瀏覽器輸入 iswbm.com 時(shí),訪問的還是 http。
使用 vim 編輯 /usr/local/nginx/conf/nginx.conf,在原本 server 的前面加入下面這么一段代碼
server {
listen 80;
server_name iswbm.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
然后再重啟 nginx
$ systemctl restart nginx
由于我之前的 markdown 文章,使用的圖床都是 七牛云,當(dāng)時(shí)并沒有開啟 https,現(xiàn)在網(wǎng)站開啟了 https 后,自然圖片也要開啟,不然瀏覽器會(huì)顯示有部分不安全的資源。
登陸七牛云,然后進(jìn)入 證書管理 上傳證書(注意這個(gè)證書得另外申請(qǐng),不能使用先前申請(qǐng)的 iswbm.com 證書)。
進(jìn)入對(duì)象存儲(chǔ) -> 域名管理,找到 HTTPS 配置的位置,點(diǎn)擊 修改配置
。
將按鈕置為開啟狀態(tài),選擇我們剛剛上傳的證書。
設(shè)置完后,并不能立馬使用
域名的升級(jí)需要一定時(shí)間,等待即可。
以上就是我搭建網(wǎng)站的全部總結(jié),寫了兩個(gè)晚上,直到昨晚才完成。
全文一共 5000 多字,昨晚寫的時(shí)候,還出了個(gè)小插曲,文章被我誤刪除了,無論怎么 ctrl + z 都回不來,找了很多方法,都行不通。。
把我嚇得都快哭了,生怕今天發(fā)不出來文章
好在最后 Typora 還是給我留了一條生路,它居然支持 文件的版本控制,真是有驚無險(xiǎn),差點(diǎn)今天就要哭了。
寫文章不容易(特別是這種長文),如果覺得本文寫得還可以,給明哥轉(zhuǎn)發(fā)下文章,可以嗎
implenote安卓中文版是一個(gè)非常好用的筆記軟件,支持云端同步和跨平臺(tái)使用,還支持標(biāo)簽分類管理,十分方便!可以用來記錄個(gè)人待辦事項(xiàng)、購物清單、會(huì)議記錄、課堂筆記、博客草稿、靈感點(diǎn)子、生活日記、想看的書和電影、想去的餐廳地址等所有你需要用文字記錄下來的東西。支持賬號(hào)登陸并在多部設(shè)備間同步。
簡單筆記Simplenote APP是一款非常方便的筆記記錄工具軟件,這款軟件能夠幫助用戶隨時(shí)隨地的記錄下靈感以及當(dāng)時(shí)發(fā)生的事情,不管是生活中發(fā)生的還是工作學(xué)習(xí)上的事情都可以立即記錄下來。
簡潔清晰的應(yīng)用界面,給用戶一種舒心的感受體驗(yàn),界面友好;
提供簡單輕巧的APP,隨時(shí)隨地記錄想記的事物信息,信息記錄便捷;
筆記記錄操作簡單,打開即可筆記記錄,全面享受即開即用筆記記錄;
只要是自己想記的信息都可以通過文字方式記錄下來,記錄全面;
快速筆記記錄,輸入文字秒秒即可記錄,筆記記錄更快,更快捷;
存文本信息保存,文字信息記錄事物,查看信息更直觀、清楚。
一鍵新建筆記,快速記錄需要記錄的筆記信息,筆記記錄極速;
查看所有筆記,全部的筆記信息清晰顯示,掌握每次筆記信息;
通過搜索,輸入關(guān)鍵字即可快速查找出記錄的筆記信息,快速筆記搜索;
可以到回收站,查看到所有刪除的筆記信息,可以將刪除的筆記進(jìn)行恢復(fù);
記錄的信息可以分享給微信好友及朋友圈,分享給更多的好友看到;
這里支持自己的賬號(hào)登錄多部終端設(shè)備,多設(shè)備上筆記記錄及查看。
原文地址:http://www.3h3.com/az/183239.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。