重裝系統
在BCC實例中,重裝系統選擇WordPress。
Centos 6.5 x64
Apache 2.2.15:
Web 主目錄:/home/www/default(具體可以在httpd.conf配置文件中查看)
配置文件目錄:/etc/httpd/conf/httpd.conf
php擴展模塊配置:/etc/httpd/conf.d/php.conf
重啟 httpd 服務:service httpd restart
MySQL 5.1.73:
安裝路徑:basedir=/usr/share/mysql
數據庫路徑:datadir=/var/lib/mysql
日志文件路徑:log-error=/var/log/mysqld.log
本地連接的套接字位置:socket=/var/lib/mysql/mysql.sock Mysql
修改 root 密碼:mysqladmin -u用戶名 -p舊密碼 password 新密碼,然后兩次輸入密碼即可。
重啟 mysql 服務:service mysqld restart
Php 5.3.3: 配置文件:/etc/php.ini 其中為了能夠連接 mysql,還安裝了 php-mysql 模塊。
vsftp 2.2.2: 配置文件目錄:/etc/vsftpd/vsftpd.conf ftp 默認用戶:ftpwww ftp 密碼:ftpwww 用戶的密碼在系統第一次啟動時會隨機生成在/home/password.txt中。
phpMyAdmin 4.0.10: 訪問地址:http://ip 地址/phpMyAdmin 配置文件位置:/etc/phpMyAdmin/config.inc.php 訪問權限配置文件目錄:/etc/httpd/conf.d/phpMyAdmin.conf
wordpress 4.4.2: 部署包位置: /wordpress-4.4.2-zh_CN.tar.gz 需要部署時運行 wordpress.sh 進行部署
安裝完成后,查看WordPress鏡像官網文檔 。
WordPress
初始化WordPress
其實就是解壓WordPress.tar.gz文件到/home/www/default/wordpress。
人生建議:別用這個腳本,直接把內容解壓到/home/www/default根目錄下面。
WordPress-5.0.8.tar.gz帶有Widgets
sh /root/wordpress.sh
獲取mysql和ftp密碼
cat /home/password.txt
建WordPress數據庫
連接數據庫,瀏覽器輸入http://公網IP/phpMyAdmin/,輸入root和password.txt中獲取的mysql密碼。
點擊數據庫,創建創建 wordpress數據庫,WordPress需要數據庫。
在瀏覽器中輸入http://公網IP/wordpress,輸入剛才創建的數據庫,以及獲取的mysql密碼。
如果提交后失敗可以直接去配置文件
cd /home/www/default/wordpress mv wp-config-sample.php wp-config.php vi wp-config.php
修改數據庫名及賬號密碼。
建站
vsftp的使用
wordpress安裝主題插件等一些拓展時需要使用ftp。
安裝vsftp
yum install vsftpd #安裝 service vsftpd start #啟動 chkconfig --level 35 vsftpd on #開機自啟
配置文件
vi /etc/vsftpd/vsftpd.conf #修改配置文件 anonymous_enable=NO #關閉匿名登錄
新增用戶
#創建autumn用戶所屬組為ftp,ftp目錄為/home/ftp_autumn useradd -g ftp -s /sbin/nologin -d /home/ftp_autumn autumn #給用戶重置密碼 passwd autumn #查看所有用戶 cat /etc/passwd|grep ftp
瀏覽器中輸入ftp://公網IP,然后輸入上面配置的賬戶密碼即可使用。
漢化
修改配置文件
# 修改配置文件 vi wp-config.php # 修改語言 define('WPLANG', 'zh_CN');
進入站點控制板(dashboard),看到更新提示后進行升級即可。WordPress會自動從官方網站下載中文語言包並安裝。
出現的問題
安裝主題時出現Installation failed: Unable to locate WordPress content directory (wp-content).
vi ./wp-config.php define('FTP_CONTENT_DIR', '/var/www/html/wordpress/wp-content'); define('FTP_PLUGIN_DIR', '/var/www/html/wordpress/wp-content/plugins');
出現其他找不到文件夾或者不能創建文件夾的
# 給wordpress賦予寫權限 chmod -R 755 ./wordpress # 編輯配置文件 vi wp-config.php #在文件最后添加如下內容 if(is_admin()) { add_filter('filesystem_method', create_function('$a', 'return "direct";' )); define( 'FS_CHMOD_DIR', 0751 ); }
無法建立目錄wp-content/uploads/***/**。有沒有上級目錄的寫權限?
首先,登錄phpMyAdmin,找到wordpress數據庫,打開wp_options表修改表中鍵名為upload_path的值為wp-content/uploads。
然后執行如下語句
groupadd www useradd -r -g www -s /bin/false www chown -R www /home/www/ chmod -R 755 /home/www
將WordPress設為網站根
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/home/www/default/wordpress" --修改網站根目錄為/www <Directory "/home/www/default/wordpress"> --把這個也對應的修改為/www
然后發現,主題的樣式文件和js還是帶有WordPress,果斷備份數據重裝,把WordPress放在Apache根目錄下面。
WordPress手動升級
現在去下載WordPress包
https://wordpress.org/download/releases/
解壓后刪掉wp-content文件,然后覆蓋掉服務器上的/home/www/default/wordpress,重新訪問即可。
插件
cnblogs2wp
將博客園搬家到wordpress的插件。首先,服務器要掛VPN,因為https://wordpress.org/被斃了,掛好有去插件中搜索cnblogs2wp,輸入ftp用戶名密碼即可安裝。
或者直接去下載https://wordpress.org/plugins/cnblogs2wp/,解壓后放在/home/www/default/wordpress/wp-content/plugins
如果/wp-content/uploads沒有創建權限,要chmod 777 uploads
安裝啟用后在工具中可用,選擇xml備份文件一定要勾選第三個選項,下載文章中的相關文件。
上傳會有php的文件大小限制,vi /etc/php.ini
; Maximum allowed size for uploaded files. ; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize upload_max_filesize = 8M
如果提示上傳失敗,要在wp-content下面新建uploads,並且給uploads文件夾chmod寫權限。
除了使用cnblogs2wp最好也安裝wp-patch-levi插件,wp-patch-levi是wordpress 補丁包。
主題插件adams
簡潔,好用的個人博客型網站。側邊有搜索框,兼容手機。
https://github.com/Tokinx/Adams
下載后直接上傳主題即可,注意壓縮包方式一定是zip,rar不行。
主題插件Kratos(推薦)
有圖片,可放廣告,功能強大,但是會有點小bug,可以自己修正
https://github.com/Vtrois/Kratos
Kratos的樣式要自己調整下,foot.php文件不能動,不然頁面上方會出現白條。
安裝在wordpress下面的/wp-content/themes中。
搜索框插件
Ivory Search(解壓后文件夾為add-search-to-menu)
https://wordpress.org/plugins/add-search-to-menu/
先新建頂部菜單,Appearance -> Menus中新建一個menu,並且設為頂部菜單
把Ivory Search的搜索框放在頂部菜單中,Ivory Search -》 Settings -》 Menu Search 選中展示在頂部菜單中。
添加隨機縮略圖
WP Random Post Thumbnails
https://wordpress.org/plugins/wp-random-post-thumbnails/
安裝完之后再Setting -> RandomThumbnails中使用
備份插件
BackWPup
https://cn.wordpress.org/plugins/backwpup/
sitemap插件
百度seo收錄插件
Google XML Sitemaps 官網:https://wordpress.org/plugins/google-sitemap-generator/
Baidu Sitemap Generator 官網:https://wordpress.org/plugins/baidu-sitemap-generator/
下載baidu-sitemap-generator插件生成一個sitemap.xml頁面,提交到百度站長后台中。
if(!function_exists('Baidu_Submit')) { function Baidu_Submit($post_ID) { $WEB_TOKEN = ''; //這里請換成你的網站的百度主動推送的token值 $WEB_DOMAIN = get_option('home'); //已成功推送的文章不再推送 if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return; $url = get_permalink($post_ID); $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN; $request = new WP_Http; $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') ); $result = json_decode($result['body'],true); //如果推送成功則在文章新增自定義欄目Baidusubmit,值為1 if (array_key_exists('success',$result)) { add_post_meta($post_ID, 'Baidusubmit', 1, true); } } add_action('publish_post', 'Baidu_Submit', 0); }
JS推送
WordPress主題文件中function.php底部文件,在當中添加如下javascript代碼
<script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script>
博客遇到的問題
導入博客園的文章后點擊文章頁面404
在“設置(Settings)”→“固定鏈接”中,將“常用設置”改為“朴素”即可,這個選項是直接通過文章在數據庫中的id自動設置文章鏈接;
使用Permalink的postname作為url時404
Apache的httpd.conf配置
如果想要修改固定鏈接的設置結構,如果運行於apache服務,必須確保apache服務支持。
首先,檢查apache的配置,需要確保apache的設置中已經裝載URL rewrite模塊。
vi /etc/httpd/conf/httpd.conf,搜索rewrite_module,確保文件中包含有下面的代碼,且前面沒有#,確保正確裝載url重寫模塊。
LoadModule rewrite_module modules/mod_rewrite.so
其次,激活AllowOverride ,搜索所有的AllowOverride None,全部改為AllowOverride all。
.htaccess文件配置
cd 到WordPress的根目錄
touch .htaccess
vi .htaccess
內容如下
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
解決方案參考:https://www.cnblogs.com/dajianshi/archive/2013/05/06/3062816.html