Posts by Tim Düsterhus


    Yes, but there are other inconsistencies. People that were "@"ed and some links didnt rebuild. (Might be because of the XF version I imported from was I have 1.5.17 installed). Hopefully if some of the WoltLab staff want some databases to develop a new importer, I can get them a copy of my database at 1.5.17 and 2.0.2.....

    can you give a screenshot + the full BBCode / HTML source of an affected post? Can you give the BBCode source of the original post in XenForo as well?


    Set up a pool with that other user?

    yes. Set up the pool as the other user and then chown the webroot of WoltLab Suite recursively. You can find the pool configurations in /etc/php/7.0/fpm/pool.d for Ubuntu 16.04. I recommend to create a pool with a separate user for each application you are running (i.e. one for WoltLab Suite, a different one for e.g. Wordpress and yet another one for something else).

    My concern with leaving the entire directory tree owned by www-data is that if nginx or php is comprised, I'm toast, whereas if they can only write to a few small directories, it's isolated.

    It is required that the pool user is able to write all the files. But: nginx only needs to read the files, so you need to make sure that www-data is able to read the files. WoltLab Suite set o+r for all the files it creates, so you should not need to make any special accommodations.

    If you are absolutely paranoid you can ensure that nginx is not able to write into the webroot by leveraging SystemD's ReadOnlyPaths. I won't be able to give advice, unfortunately.


    nginx is running as www-data:www-data

    that is irrelevant: Interesting is what user PHP FPM is running as.

    I would prefer that the directories all be owned by another user,

    You can configure the FPM pool to run as a user of your choice.

    2) it looks like if I do (1), which I did, that CLI now fails, because I tried to run it as www-data, and this fails:

    You have to execute the CLI as the same user PHP FPM runs as.

    sudo doesn't seem to work off the bat, account is disabled, I'll have to figure that out?

    You can use su -s /bin/bash <username> as root to log in as disabled users / users without a shell.


    by subscription you mean “paid subscription”, right? While the importer does not transfer that I am sure that we can find a solution that's faster and less error-prone than manually transcribing the list of subscribers if that's the only thing that's holding you back from migrating.


    I've got nothing to add. If the database structure did not change the importer should work just fine. If it did change we would need an (anonymized) database export to make the necessary changes to the importer. The latter might take a bit depending on the changes and the complexity of the database structure.


    I've just become aware that some of the plug-ins on my site are not up to date. I had assumed that when updates were available for plug-ins, that these would become available as a software update in the ACP, but this is not default behaviour. I'm very surprised by this.

    I am confused: Our Plugin-Store is available as an update server by default. Did you buy or download an add-on outside the Plugin-Store?


    Is there a loss in ranking associated with this process?

    Not really clear, but definitely less than if there were no redirects at all, because Google would encounter a 404 otherwise and has to search the page itself.

    I hope I'm not asking too much. If possible please provide the redirects for these:

    I suggest you experimenting yourself with the tool I provided. It's a valueable exercise. If you are stuck: Try searching for “mod_rewrite”. If you're still stuck I can give you the solution :-)

    Edit: The boards / forums cannot be mapped, because your vBulletin links lack the board ID.


    how does this redirect help google to eventually replace the old search results/links with the new ones?

    Google will see the redirects as well. The status code 301 instructs Google to map the old URL to the new one.

    The redirect you provided works for threads, which is probably the most important. Should there be other redirects? I can't think for what.

    From top of my head I can think of: User profiles, Boards, Permalinks to specific posts.


    Is the 'mbstring' PHP extension an error on my end or is it my web hosts problem? If so I will contact their support immediately.

    this is something your web host needs to fix. To not bother them multiple times: Here's the full list of requirements:

    You need to have at least PHP in Version 5.5.4 and MySQL 5.5.35 or MariaDB 10.0.22 with InnoDB support. It is recommended to always use the latest versions for better performance, stability and security reasons. The following PHP extensions are required to operate our software: mbstring, libxml, dom, zlib, pdo, pdo_mysql, json, pcre, hash. The memory_limit must be at least 128 MB.


    okay. The importer does not support mapping the profile fields (presumably because I was unable to reliably detect the stock profile fields when creating it).

    There is a way to perform this mapping manually. Make sure to have a good backup of your database before!

    Go into your administrator's control panel and list the profile fields (Users -> Custom User Fields). Note the IDs of the two location fields and then perform the following SQL query:

    UPDATE wcf1_user_option_value
    SET    userOptionXXX = userOptionYYY

    XXX is where the ID of the undeletable WSF profile field goes (most likely 5). YYY is where the ID of the vBulletin field goes (should be the higher number).

    You can do this process for any fields that have the same Option Type.