Question

Moving wp-content to block storage volume

Because I’m running out of space, I’m trying to move my wp-content folder to a block storage volume. (from /var/www/html/ to /mnt/folder)

I tried creating a symlink from the wp-content to the new wp-content folder but that doesn’t seem to work. Then I tried using the following code in the wp-config file:

    //define('WP_CONTENT_DIR', '../../../../mnt/folder/wp-content');
    //define('WP_CONTENT_URL', 'https://site/wp-content');
    //define('WP_PLUGIN_DIR', '../../../../folder/content/plugins'); 
    //define('WP_PLUGIN_URL', 'https://site/wp-content/plugins');
    //define( 'PLUGINDIR', '../../../../mnt/folder/content/plugins');

It seemed to work, for the most part. But when I enable any plugins I get an MSQL warning saying there are too many connections. I get locked out of the admin dashboard but I can fix it by renaming the plugins folder(to disable the plugins). I found some information here: https://www.digitalocean.com/community/questions/how-can-i-connect-wordpress-media-library-to-one-or-multiple-block-storage-volumes

I’d really appreciate some help.


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

@jtittle I’m not sure if you’ll agree with this - please alert @joostvanhoutte if not

@joostvanhoutte I don’t think DO has an option like that, since that’s what BS is there for.

First things first. Take a snapshot for your droplet, so you can revert if everything goes horribly wrong :)

Move your uploads so we don’t mess with current data:

mv /var/www/html/wp-content/uploads /var/www/html/wp-content/uploads-old

Unmount the current mount:

umount /mnt/bs-name-mount

Create the new empty uploads folder and set the correct permissions. I’m guessing you’re running as www-data:

mkdir /var/www/html/wp-content/uploads
chown www-data:www-data /var/www/html/wp-content/uploads

Edit fstab and mount directly to /var/www/html/wp-content/uploads instead of /mnt/bs-name-mount:

nano /etc/fstab

Remount the new mount point:

mount -a

Copy the uploads-old to the new BS mount:

cp -Rp /var/www/html/wp-content/uploads-old/* /var/www/html/wp-content/uploads/

Please reboot the server to confirm that the fstab is mounting correctly on reboot before getting rid of the uploads-old. When you’ve confirmed that you’re running on the new BS mount (upload a new file and see where it’s placed), you can safely remove the uploads-old folder:

rm -RI /var/www/html/wp-content/uploads-old

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hi @joostvanhoutte

May I recommend that you do not move the entire wp-content folder, because it will slow down your site.

You should only be moving the uploads folder, since it doesn’t contain files that require to be loaded in memory often (like the theme and plugins).

Something like this should be enough:

define( 'UPLOADS', '/mnt/folder/uploads');

@hansen Hello, i’m stuck at step:

<^>Edit fstab and mount directly to /var/www/html/wp-content/uploads instead of /mnt/bs-name-mount:

nano /etc/fstab<^>

how can i edit this, i don’t know what to do!

Example link

Hi,

Sorry for digging this up.

I was wondering if anyone encountered issues restoring a backup using UpdraftPlus when Block Storage is used to substitute /wp-content/uploads?

For some reason I am getting this error:

Warning: copy(): The first argument to copy() function cannot be a directory in /home/describee/public_html/wp-admin/includes/class-wp-filesystem-direct.php on line 243 Error message: Could not move the files into place. Check your file permissions. Error data: /home/describee/public_html/wp-content/upgrade/02f63344/uploads/cache -> /home/describee/public_html/wp-content/uploads/cache

I have already chown’ed the drive to my username, and ensured permissions are set to 775 or 777 (either doesn’t seem to work). In addition, I have also mounted the drive as my user instead of root. Anyone knows why it is still asking me to check my file permissions? Thanks!