[英]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/
基本上是基本安裝路徑,通常存儲在siteurl
, home
, dashboard_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.php
在wp-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.