簡體   English   中英

調試導致錯誤的文件名和路徑似乎根本不存在的損壞的Wordpress安裝

[英]Debugging a broken Wordpress install where the file name and path causing the error doesn't seem to even exist

我的任務是完成似乎是將Wordpress網站從開發URL( /newblog )遷移到生產URL(根目錄)的遷移,該遷移似乎已經被其他人嘗試過了,並且在此過程中有些混亂正在看到我從未見過的錯誤。

在看到了一些非常奇怪的東西之后(我先前找到了一個錯誤,涉及到我只是簡單地保存了具有相同內容的文件-就像某種緩存正在運行一樣),我遇到了一個錯誤,就像我在下面粘貼的一樣(顯然是examplesite.com是一個虛構的域)。

我不明白的是,不再有一個名為/ newblog的目錄,所以怎么說在/var/www/examplesite.com/newblog/wp-content/plugins/akismet/widget.php發現錯誤/var/www/examplesite.com/newblog/wp-content/plugins/akismet/widget.php

我已經檢查了數據庫,並且沒有對帶有/newblog任何路徑的引用。

警告:include_once(/var/www/examplesite.com/newblog/wp-content/plugins/akismet/widget.php):無法打開流:/var/www/examplesite.com/newblog/中沒有此類文件或目錄第49行的wp-content / plugins / akismet / akismet.php

警告:include_once():無法打開“ /var/www/examplesite.com/newblog/wp-content/plugins/akismet/widget.php”以將其包含在內(include_path ='。:/ usr / share / php:/ usr /在第49行的/var/www/examplesite.com/newblog/wp-content/plugins/akismet/akismet.php中共享/梨')

警告:require_once(/var/www/examplesite.com/newblog/wp-content/plugins/jetpack/class.jetpack-user-agent.php):無法打開流:/ var / www /中沒有此類文件或目錄4467行上的examplesite.com/newblog/wp-content/plugins/jetpack/jetpack.php

致命錯誤:require_once():無法打開所需的'/var/www/examplesite.com/newblog/wp-content/plugins/jetpack/class.jetpack-user-agent.php'(include_path ='。:/ usr / share / php:/ usr / share / pear')在第4467行的/var/www/examplesite.com/newblog/wp-content/plugins/jetpack/jetpack.php中

使用示例路徑:

/var/www/examplesite.com/newblog/wp-content/plugins/akismet/widget.php

該路徑的此片段:

/var/www/examplesite.com/newblog/

基本上是基本安裝路徑,通常存儲在siteurlhomedashboard_widget_options甚至其他文件中的wp_options中。 但是,當涉及到遷移安裝時(如您要執行的操作),它確實可能會妨礙您。

問題是WordPress試圖使初始安裝變得如此簡單,從而使其難以遷移。 我定期使用的最佳解決方案是在wp-config.php文件中對安裝路徑進行硬編碼,如下所示:

define('WP_SITEURL', 'http://www.examplesite.com');
define('WP_HOME', 'http://www.examplesite.com');
define('WP_CONTENT_DIR', '/var/www/www.examplesite.com/wp-content');
define('WP_CONTENT_URL', 'http://www.examplesite.com/wp-content');

當然,我在上面設置的設置是基於您對設置的最佳猜測。 假設使用標准的Unix /var/www/安裝路徑和您的站點URL。 但是總的來說-以我的經驗來看wp-config.phpwp-config.php明確設置這些路徑是遷移站點甚至使其更具可移植性的最佳方法。

另外,檢查.haccess文件。 基本上應該是:

# 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>
# END WordPress

但是,如果有人將站點放置在不是根目錄的服務器上的目錄中(例如newblog可能是這樣的:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /newblog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /newblog/index.php [L]
</IfModule>
# END WordPress

請注意上面的示例中兩個地方的newblog 但是從您的描述來看,所有聽起來都像是配置問題。

如果情況變得更糟,我建議您找出網站使用的是哪個版本的WordPress(查看文件/wordpress/wp-includes/version.php ,然后下載/wordpress/wp-includes/version.php安裝的WordPress,將配置設置為要加載舊/損壞站點的數據庫&such&然后將wp-content文件夾從舊安裝復制到新安裝。 希望以前的開發人員不會對WordPress核心文件感到厭煩,因此僅復制wp-content並使用舊目錄應該會對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM