當(dāng)時我執(zhí)行的命令是:
mount /dev/sdb1 /www
這時只要使用 umount
命令來卸載 /dev/sdb1
分區(qū)。
sudo umount /www
一般到這里你的www目錄下的文件就已經(jīng)找回了,如果不行,你就要執(zhí)行下面的操作了
sudo umount -l /home # 懶卸載,等待所有進(jìn)程釋放后再卸載
或者
sudo umount -f /home # 強制卸載,可能會導(dǎo)致數(shù)據(jù)丟失或損壞
該錯誤提示的意思是:sha256_password和caching_sha2_password兩種加密方式需要cryptography。
所以只需要安裝一下cryptography包就可以了: pip install cryptography
]]>_wp_preview_terms_filter
()是一個WordPress私有函數(shù),用于在預(yù)覽文章時過濾術(shù)語(terms)查詢,以便設(shè)置文章格式(post format)。這個函數(shù)主要用于處理文章預(yù)覽時的術(shù)語查詢,特別是文章格式的設(shè)置。由于它是私有的,通常不建議插件或主題開發(fā)者直接使用它。
wp-includes/revision.php
function _wp_preview_terms_filter( $terms, $post_id, $taxonomy ) {
// 獲取當(dāng)前文章對象
if ( ! $post = get_post() )
return $terms;
// 檢查請求中是否有文章格式參數(shù),并且文章ID匹配,稅收分類為文章格式,且文章類型不是修訂版本
if ( empty( $_REQUEST['post_format'] ) || $post->ID != $post_id || 'post_format' != $taxonomy || 'revision' == $post->post_type )
return $terms;
// 處理標(biāo)準(zhǔn)格式
if ( 'standard' == $_REQUEST['post_format'] )
$terms = array();
// 處理其他格式
elseif ( $term = get_term_by( 'slug', 'post-format-' . sanitize_key( $_REQUEST['post_format'] ), 'post_format' ) )
$terms = array( $term ); // 只能有一個文章格式
return $terms;
}
假設(shè)你在編輯一篇文章并選擇了“鏈接”格式,然后點擊預(yù)覽。_wp_preview_terms_filter
函數(shù)會檢查請求中的 post_format
參數(shù),并確保預(yù)覽的文章顯示為“鏈接”格式。
get_post()
:獲取文章對象。get_term_by()
:通過不同的字段獲取術(shù)語對象。sanitize_key()
:對鍵名進(jìn)行清理,確保安全。_wp_put_post_revision
() 是一個WordPress內(nèi)部函數(shù),用于將文章數(shù)據(jù)插入到 posts
表中作為文章修訂版本。這個函數(shù)不是為了插件或主題開發(fā)者設(shè)計的,而是主要用于核心功能之間的交互。它的存在是為了確保文章的修訂版本能夠正確地保存到數(shù)據(jù)庫中。
null
false
WP_Error
對象或 0
;如果成功,返回新修訂版本的ID。wp-includes/revision.php
function _wp_put_post_revision( $post = null, $autosave = false ) {
// 如果 $post 是對象,轉(zhuǎn)換為數(shù)組
if ( is_object($post) )
$post = get_object_vars( $post );
// 如果 $post 不是數(shù)組,嘗試獲取文章數(shù)據(jù)
elseif ( !is_array($post) )
$post = get_post($post, ARRAY_A);
// 檢查文章數(shù)據(jù)是否有效
if ( ! $post || empty($post['ID']) )
return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
// 檢查是否嘗試創(chuàng)建修訂版本的修訂版本
if ( isset($post['post_type']) && 'revision' == $post['post_type'] )
return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
// 準(zhǔn)備修訂版本數(shù)據(jù)
$post = _wp_post_revision_data( $post, $autosave );
$post = wp_slash($post); // 由于數(shù)據(jù)來自數(shù)據(jù)庫,需要進(jìn)行轉(zhuǎn)義
// 插入修訂版本
$revision_id = wp_insert_post( $post );
if ( is_wp_error($revision_id) )
return $revision_id;
// 如果修訂版本插入成功,觸發(fā)動作
if ( $revision_id ) {
do_action( '_wp_put_post_revision', $revision_id );
}
return $revision_id;
}
wp_save_post_revision
函數(shù),并遵循其官方文檔中的指導(dǎo)。首先,過度依賴SEO(搜索引擎優(yōu)化)是一個普遍存在的問題。SEO無疑是非常重要的,但它絕非網(wǎng)站成功的唯一途徑。許多草根站長將所有注意力集中在SEO上,忽視了其他有效的推廣手段。實際上,每個網(wǎng)站都有其獨特的定位和受眾群體,適合的營銷策略也會有所不同。比如,專注于內(nèi)容質(zhì)量的提升,或是通過社交媒體等渠道進(jìn)行更加精準(zhǔn)的目標(biāo)人群營銷,往往能夠帶來意想不到的效果。
其次,過分追求流量也是一個誤區(qū)。雖然高流量確實是網(wǎng)站盈利的重要基礎(chǔ),但并不是有了流量就一定能轉(zhuǎn)化為實際收益。更重要的是如何將這些流量轉(zhuǎn)化為忠實用戶,以及如何開發(fā)出合適的商業(yè)模式來實現(xiàn)價值變現(xiàn)。例如,通過提供高質(zhì)量的內(nèi)容吸引訂閱,或是開展線上課程等方式,都可以作為除廣告之外的收入來源。
第三,執(zhí)行力不足也是制約草根站長發(fā)展的關(guān)鍵因素。很多站長有著不錯的創(chuàng)意和計劃,但在實施過程中往往缺乏持續(xù)的動力和耐心。在互聯(lián)網(wǎng)領(lǐng)域,任何成功的背后都離不開長期不懈的努力和不斷的嘗試。面對挑戰(zhàn)時,保持積極的態(tài)度和堅定的信念至關(guān)重要。
第四,盈利模式的老套化也是不容忽視的問題。傳統(tǒng)的廣告投放、聯(lián)盟營銷等手段已經(jīng)難以滿足現(xiàn)代網(wǎng)民的需求。草根站長們需要思考如何結(jié)合自身的特色,探索出更多元化的盈利方式。比如,提供定制化服務(wù)、打造會員制社區(qū)等新型模式,或許能夠為網(wǎng)站帶來新的增長點。
第五,缺乏創(chuàng)新意識。在激烈的市場競爭中,僅僅模仿他人的成功案例是遠(yuǎn)遠(yuǎn)不夠的。每個網(wǎng)站都應(yīng)該有自己獨特的定位和風(fēng)格,這樣才能在眾多競爭對手中脫穎而出。因此,站長們不僅要學(xué)會借鑒他人之長,更要敢于突破常規(guī),創(chuàng)造屬于自己的特色。
最后,持續(xù)學(xué)習(xí)與不斷進(jìn)步同樣重要?;ヂ?lián)網(wǎng)環(huán)境瞬息萬變,新技術(shù)、新趨勢層出不窮。只有緊跟時代步伐,不斷提升自我,才能在變化中抓住機遇,實現(xiàn)自我超越。
總而言之,草根站長想要在互聯(lián)網(wǎng)的大潮中立足并獲得成功,需要克服上述種種障礙,同時不斷優(yōu)化自身的能力與策略。最重要的是,無論遇到多大的困難,都不能輕易放棄。正如那句老話所說:“上天對每個人都是公平的”,只要付出足夠的努力,總有一天會迎來屬于自己的春天。
]]>_wp_register_meta_args_whitelist
()是一個wordpress內(nèi)部函數(shù),用于過濾 register_meta()
函數(shù)的參數(shù),只保留白名單中的參數(shù)。這個函數(shù)不是為了插件或主題開發(fā)者設(shè)計的,而是主要用于核心功能之間的交互。它的存在是為了確保 register_meta()
函數(shù)的參數(shù)在未來發(fā)生變化時,不會因為引入新的參數(shù)而導(dǎo)致舊代碼出現(xiàn)問題。
register_meta()
傳遞過來的參數(shù)數(shù)組。register_meta()
函數(shù)的默認(rèn)參數(shù)數(shù)組。wp-includes/meta.php
function _wp_register_meta_args_whitelist( $args, $default_args ) {
$whitelist = array_keys( $default_args ); // 獲取默認(rèn)參數(shù)的鍵名作為白名單
// 遍歷傳遞進(jìn)來的參數(shù)
foreach ( $args as $key => $value ) {
if ( ! in_array( $key, $whitelist ) ) { // 如果參數(shù)不在白名單中
unset( $args[ $key ] ); // 移除該參數(shù)
}
}
return $args; // 返回過濾后的參數(shù)數(shù)組
}
register_meta()
函數(shù),并遵循其官方文檔中的指導(dǎo)。add_post_meta
、update_post_meta
等函數(shù)進(jìn)行添加和更新。DELETE FROM wp_posts WHERE post_type = "revision";
,刪除未批準(zhǔn)的評論的語句是DELETE from wp_comments WHERE comment_approved = '0';
。通過上述方法,你可以有效地清理WordPress數(shù)據(jù)庫中的冗余數(shù)據(jù),提高網(wǎng)站性能。記得在進(jìn)行任何清理操作前備份數(shù)據(jù)庫,以確保數(shù)據(jù)安全。
]]>DELETE FROM wp_posts WHERE post_type = 'revision';
wp 媒體管理器上傳圖片的時候同事會成才attachment 文章格式,如果你不需要根據(jù)這個檢索圖片的話也可以刪掉。
DELETE FROM wp_posts WHERE post_type = 'attachment';
wp_postmeta是重災(zāi)區(qū),可以執(zhí)行以下命令
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT post_id FROM wp_posts);
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';
如果你不需要管理你的多媒體文件可以使用下面這兩句
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attached_file';
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attachment_metadata';
綜合到一起可直接執(zhí)行下面兩句
DELETE FROM wp_postmeta WHERE meta_key in ('_edit_lock', '_edit_last', '_wp_old_slug', '_revision-control', '{{unknown}}', '_wp_attached_file', '_wp_attachment_metadata');
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT id FROM wp_posts);
刪除所有垃圾評論
DELETE FROM wp_comments WHERE comment_type = 'trash';
刪除所有待審評論
DELETE FROM wp_comments WHERE comment_approved = '0';
一般來說直接刪掉wp_commentmeta就可以了,我是完全不使用這貨的,如果你使用了commentmeta存儲信息請謹(jǐn)慎執(zhí)行此句
TRUNCATE TABLE wp_commentmeta
wp_options
尤其是使用我的網(wǎng)易云音樂和牧風(fēng)的hermit,都會在wp_options表中產(chǎn)生大量垃圾數(shù)據(jù)。
DELETE FROM wp_options WHERE option_name LIKE 'transient%';
DELETE FROM wp_options WHERE option_name LIKE 'transient_timeout%'
這樣會刪除所有臨時數(shù)據(jù),包括未過期的,謹(jǐn)慎使用。
首先進(jìn)入LNMP安裝目錄,我的是lnmp2.0
cd /root/lnmp2.0
然后執(zhí)行
./install.sh mphp
會出現(xiàn)如下圖的提示
你只要選擇自己需要的版本就行了。(安裝時間很長,需要耐心等待)
安裝好后你的系統(tǒng)就有2個版本可以選擇了,至于怎么用,那就更簡單了,你創(chuàng)建站點時,會有2個PHP版本讓你選擇。如果你發(fā)現(xiàn)已經(jīng)創(chuàng)建好的站點需要換PHP版本,那只需要修改相應(yīng)站點的Nginx配置文件,把enable-php.conf換成enable-php7.4.conf(自己是什么版本就換成什么)
控制與使用
有時候我們安裝了多PHP版本后,某一個版本的暫時用不到,這時候建議先關(guān)閉掉這個版本的PHP進(jìn)程以減小服務(wù)器的運行負(fù)載。
在/etc/init.d/目錄中就會有類似如下:
php-fpm php-fpm7.4
這樣的文件,上述例子中分別代表這一個默認(rèn)PHP版本和PHP 7.4版本共存,想要停止和啟動哪個直接運行如下命令:
/etc/init.d/php-fpm7.4 stop #停止PHP 7.4運行
/etc/init.d/php-fpm stop #停止默認(rèn)PHP版本的運行
刪除指定版本的PHP
以刪除PHP 7.4版本為例
先停止PHP 7.4的進(jìn)程
/etc/init.d/php-fpm7.4 stop
然后刪除對應(yīng)版本的相關(guān)目錄和文件即可
rm -rf /usr/local/php7.4
rm -f /etc/init.d/php-fpm7.4
rm -f /usr/local/nginx/conf/enable-php7.4.conf
首先,您需要停止正在運行的MySQL服務(wù)。在終端中執(zhí)行如下命令:
sudo /etc/init.d/mysql stop
接下來,您需要以跳過權(quán)限表的方式來啟動MySQL,這樣就可以繞過密碼驗證:
sudo mysqld_safe --skip-grant-tables &
這行命令會在后臺啟動MySQL服務(wù),并且不會加載權(quán)限表,因此您可以無需密碼直接訪問MySQL。
現(xiàn)在,您可以用root用戶登錄到MySQL,而不需要輸入密碼:
mysql -u root
進(jìn)入MySQL后,選擇mysql
數(shù)據(jù)庫:
use mysql;
然后,更新root用戶的密碼。這里假設(shè)您想要將密碼設(shè)置為new_password
:
update user set authentication_string=PASSWORD('new_password') where User='root';
注意:如果您使用的是MySQL 5.7或更高版本,authentication_string
字段可能已經(jīng)被password
字段所取代。在這種情況下,您應(yīng)該使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
完成上述操作后,刷新權(quán)限:
flush privileges;
退出MySQL:
exit;
最后,正常重啟MySQL服務(wù)以應(yīng)用更改:
sudo /etc/init.d/mysql restart
或者
sudo systemctl restart mysql
現(xiàn)在,您應(yīng)該能夠使用新設(shè)置的密碼登錄MySQL了。
SELECT VERSION();
來查看。