wordpress 無法儲存佈景設定、編輯文章、變更固定網址原因

昨天安裝完一個新的 wp 並且準備開始設定佈景時卻無法儲存,畫面上只出現 error,原本以為是佈景主題問題,但 google 後發現這問題還滿多人遇到的,於是我換回預設佈景,沒想到也是無法儲存設定,甚至連固定網址也無法變更,按下後會直接跳至首頁。(2016.4.3 發現此問題也會造成不能更新文章)

接下來就是一連串交叉測試,想看解答的直接拉下去看文末就好。

雖然遇到相同問題的人很多,但每個人解法都不太一樣,有的甚至根本自己也不知道作了什麼動作才修好的。於是我先重新傳了一次佈景跟主程式檔案,排除掉是檔案不完整的原因,接著開啟 error_log,只看到一個 Call to undefined function wp() in /home/xxxxx/public_html/wp-blog-header.php on line 14. 的錯誤訊息,又把這錯誤訊息丟上 google ,但還是沒有什麼幫助。

之後我把佈景裝在本機測試,並使用相同版本的主程式:沒問題。
上傳到已安裝過 wp 的相同主機相同網域,不同子網域、不同主程式版本:沒問題。

至此至少可以排除是佈景的問題了,觀察了資料表發現另一個網域用的是 MYISAM,而新安裝的這個是 innodb,原本以為終於找到解答了,轉換格式後依然沒用。

再來,把另一個子網域的資料夾跟資料庫通通複製一份,用那一份直接開啟,沒用。
更改根目錄名稱:沒用。

安裝了上百次(非誇飾法),從沒遇過這麼詭異的事情,就在我萬念俱灰邊看著 CPANEL 後台發呆時,看到了 ModSecurity 選項
2015-10-16164746

點進去一看,只有新安裝的這個網域開啟了 ModSecurity,關閉之後就解決了這個千古謎題(?)。
2015-10-16164812

可喜可賀,可喜可賀。能找到這篇的你,也恭喜你了,省了好幾個小時除錯的時間呢……

在 windows localhost xampp 安裝 ionCube 模組

  1. 首先到 http://www.ioncube.com/loaders.php 下載 Loader Installer,解壓縮後會得到一個執行檔,執行安裝至 D:\xampp\htdocs 資料夾 (若安裝路徑不同,請自行更改為 xampp 安裝磁碟)
  2. 確認 php 版本,於 xampp control 打開 config 頁面 (預設為 http://localhost/xampp ),找到 PHP Extension Build 與 Zend Extension Build,若是 TC9 就下載 TC9 版本,以此類推。於第一步驟的網址下方選擇對應版本並解壓縮至 D:\xampp\php\ioncube\,或其他你喜歡的資料夾,請記住路徑於下個步驟使用。
  3. 打開 php.ini ,於最下方加入 (php 5.4 版本)

     

    若為 5.5 以上則加入

  4. 重新啟動 Apache 就安裝完成了
  5. 若安裝失敗,可將第二步驟中解壓的 loader-wizard.php 複製到 htdocs 資料夾,執行它可察看錯誤訊息以便修正。

wordpress 後台新增外掛或更新時顯示「無法建立目錄」解決法

伺服器系統是 CentOS + DirectAdmin

首先解決新增外掛時需要輸入 FTP 資訊的問題,於 wp-config.php 加入

接著建立一個 who.php 檔案,檔案內容為

於瀏覽器執行 who.php,會顯示出擁有此檔案的使用者,於下一步驟時填入此使用者 (一般為 apache)

SSH 下指令 (更改 apache:apace 為上一步驟顯示的使用者與群組)

或是也可以先在 wp-content 目錄下先建立 uploads 與 upgrade 兩個資料夾,僅更改此兩個目錄的權限就好

參考資料:
3.1.3 auto-upgrade – WordPress Development Stack Exchange
無法建立目錄: wp-content/uploads | Benjr.tw
DirectAdmin File structure & log files | LINUX SYSTEM ADMINISTRATION
Linux – ls / cd / pwd | Benjr.tw
搜尋指令 which, whereis, locate, find的差別 | FAQ Book
鳥哥的 Linux 私房菜 — 檔案與目錄管理
Poy's Blog: Synology 無法更新手動安裝的Wordpress
WordPress Tips:解鎖後台 FTP 上傳安裝限制 » StartOver

direct admin 清除 message

一段時間沒登入 direct admin 就會出現爆量的 message (系統訊息),一頁一頁刪太慢,可以 SSH 使用下列指令一次清除

來源:Directadmin : How to manually delete Message system | Will Master’s Blog

防止瀏覽器快取 HTML 與圖片 (JQUERY解決法)

適用於靜態頁面

引入jquery

最後,完工。

Linode CentOS DirectAdmin 無法追蹤統計流量與硬碟使用的解決法

最近有幸能接觸到VPS,中間有些曲折寫下來以免以後忘記…。

DirectAdmin 在建立使用者時出現錯誤訊息「setquota: Mountpoint (or device) / not found or has no quota enabled. setquota: Not all specified mountpoints are using quota.」,若是 Redhat 或 FreeBSD 系統可以參考官方文件,若是 CentOS 請依照以下我的嘔心瀝血之路。

首先編輯/etc/fstab檔案,將裡面的 noatime,errors=remount-ro  改為 noatime,grpquota,errors=remount-ro,usrquota ,這是最重要的一步,改好之後到Linode reboot。

接著用SSH輸入
# quotaon -p -a
會得到類似
quotaon: Can't stat() mounted device /dev/root: No such file or directory
這樣的訊息

接著輸入 # mount
會得到這樣的訊息
/dev/xvda on / type ext3 (rw,noatime,grpquota,errors=remount-ro,usrquota)

再輸入

最後再 reboot linode,回到 DirectAdmin 後台重新新增使用者,就不會再出現錯誤訊息了。

主機每次重開機之後都必須再次輸入 ln -s /dev/xvda /dev/root  ( 參考來源)
否則新增使用者時會出現像這樣的訊息

 

參考來源