WordPress 3.8:无法找到wordpress内容目录(wp-content)

时间:2014-02-22 21:21:02

标签: php wordpress apache ftp

我的服务器设置很好,允许我通过WordPress提供的漂亮按钮更新插件,主题和核心。但是,升级到3.8后我无法升级任何东西。但是,我也在同一时间向服务器添加了iptables,但我不认为这是问题 - 我关闭了iptables并尝试但没有取得任何成功。

当我尝试通过WordPress的FTP上传插件/更新时,它无法通过localhost连接。 127.0.0.1和公共IP都会在很长很长一段时间后返回“无法定位wordpress内容目录(wp-content)”,建议超时或多次超时。

环境:

  • WP 3.8(多站点,子目录)
  • Ubuntu 12.04服务器
  • vsftpd(所以我可以FTP我的用户)
  • 回来的时候(当我不知道我在做什么时)我将整个/ var / www /目录权限更改为gabe:gabe。我已经尝试将wp-content dir更改为gabe:www-data和www-data:www-data但没有成功。我也尝试在wp-content上使用chmod 777,但再次没有成功。

我google了,绝大多数修复都归结为权限。但是,正如我上面所说,我已经尝试将目录的所有者和权限更改为777。所以,我认为权限是死路一条。

我原本以为iptables在某种程度上妨碍了我。但是我把它关了/冲了桌子却没有成功。所以我认为iptables不是罪魁祸首。

其他Google搜索解决方案等于向wp-config.php文件添加一些代码。然而,其中一个完全打破了网站。另一个没有效果。

Apache和域的日志没有显示任何内容。它们不是空的,但没有一个引用wp内容或任何我能想到的与之相关的内容。 ftp日志显示已通过127.0.0.1成功建立连接。

所以我此时已经用尽了一些技巧。

-------------编辑:我对wp-config所做的改动------------- 每http://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content我更改了wp-config.php以包含:

if(is_admin()) {
    add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
    define( 'FS_CHMOD_DIR', 0751 );
}

这是4年前在WordPress 2.8中针对同一问题提出的解决方案。在添加这些行后,该站点将无法加载,并且考虑到我将其取出的帖子/解决方案的年龄,并且没有对网站无法加载的原因进行进一步的故障排除。我假设它正在调用一些WP中不存在的函数。

我添加到wp-config.php的第二段代码是:

putenv('TMPDIR='. ABSPATH .'tmp');
define('WP_TEMP_DIR', ABSPATH . 'tmp');

http://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content?replies=15。这并没有打破网站,但没有解决它,所以我删除它。

5 个答案:

答案 0 :(得分:32)

将此行添加到我的wp-config.php工作。

define('FS_METHOD', 'direct');

我在Ubuntu服务器上有一个本地开发环境。

答案 1 :(得分:3)

尝试将此行添加到您的wp-config.php中,它适用于我

define('FS_METHOD', 'ftpsockets');
define('FTP_BASE', 'xxx');

将xxx替换为您的ftp主路径,例如/ opt / htdocs / wordpress

答案 2 :(得分:1)

试试这个:)

//* FTP Settings **/
/** wp-content path */
define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/');
define('FTP_CONTENT_DIR', '/wp-content/');
define('FTP_PLUGIN_DIR', '/wp-content/plugins/');
define('FTP_USER', 'testdomain4.com');
define('FTP_PASS', 'XXXXXXXXXXXX');
define('FTP_HOST', 'ftp.enterpriseit.us');
define('FTP_SSL', false);

请参阅http://codex.wordpress.org/Editing_wp-config.php

答案 3 :(得分:0)

要检查的要点(如果您还没有): 1.检查您是否可以使用FTP客户端登录。 2.当ftp用户登录时是否将文件夹更改为WP文件夹。

可以帮助您交叉检查设置的一些要点:

您可能必须创建一个ftp用户,其主文件夹是您的WP安装。

当WordPress登录到FTP时,它应该是WP安装的主文件夹。

检查此网址,这对您有帮助。

http://blog.noizeramp.com/2008/09/10/wordpress-unable-to-locate-wordpress-plugin-directory/

如果您不确定如何创建用户或分配主文件夹,则有许多网站可以解释。

以下是其中之一:

http://www.cyberciti.biz/faq/howto-change-default-home-directory/

创建用户后,在wp-config.php中进行如下更改。

define( 'FTP_USER', 'username' );
define( 'FTP_PASS', 'password' );
define( 'FTP_HOST', 'ftp.example.org:21' );

古德勒克!

答案 4 :(得分:0)

在基于debian的系统上,从debian软件包安装wordpress之后,我不得不将目录的所有者和目录组从/ root / lib / wordpress / wp-content /中的“ root”更改为“ www-data” 例如。

module Main exposing (..)

import Html exposing (..)
import Html.Events exposing (..)
import Time exposing (Time)
import Date
import Task


type alias Model =
    { time : Maybe Float
    , message : String
    }


type Msg
    = OnTime Time
    | GetCurrentTime
    | PutTimeInMessage


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        OnTime t ->
            ( { model | time = Just t }, Cmd.none )

        GetCurrentTime ->
            ( model, getTime )

        PutTimeInMessage ->
            case model.time of
                Nothing ->
                    ( model, Cmd.none )

                Just t ->
                    ( { model | message = toString t }, Cmd.none )


view : Model -> Html Msg
view model =
    div []
        [ div []
            [ button [ onClick GetCurrentTime ] [ Html.text "Get now time." ]
            ]
        , model.message |> Html.text
        ]


getTime : Cmd Msg
getTime =
    Time.now
        |> Task.perform OnTime


main =
    Html.program
        { init = ( Model Nothing "Empty message.", Cmd.none )
        , update = update
        , view = view
        , subscriptions = always Sub.none
        }

使目录对于Web服务器可写。