How to develop a WordPress plugin in /home/user linked to /var/www

Step 1: Create the Custom Plugin Directory

If you haven’t already created your custom plugin directory in your home folder, do so with the following command:

mkdir -p /home/user/customplugin

Replace user with your actual username.

Step 2: Create a Symbolic Link in the WordPress Plugins Directory

Use the ln command to create a symbolic link from your custom plugin directory to the WordPress plugins directory:

sudo ln -s /home/user/customplugin /var/www/wordpress/wp-content/plugins/customplugin

This command does the following:

sudo: Runs the command with superuser privileges, necessary for writing to /var/www.

ln -s: Creates a symbolic (soft) link.

/home/user/customplugin: The target directory where your plugin resides.

/var/www/wordpress/wp-content/plugins/customplugin: The location where the symbolic link will be created.

Step 3: Set Appropriate Permissions

To ensure that the web server (commonly running as the www-data user) can access your plugin, adjust the permissions accordingly:

Change Group Ownership: Set the group ownership of your plugin directory to www-data:

sudo chown -R user:www-data /home/user/customplugin

Set Directory Permissions: Grant read and execute permissions to the group:

sudo chmod -R 750 /home/user/customplugin

This grants the owner full permissions and the group read and execute permissions, which is typically sufficient for web server access.

Ensure Parent Directory Access: The web server needs execute permissions on each parent directory to traverse the path:

sudo chmod o+x /home/user

This grants others (including the web server) execute permissions on your home directory, allowing access to the customplugin directory.

step 4 Verify Access as www-data

To test if www-data can access the target directory through the symbolic link, try listing the directory contents as www-data:

sudo -u www-data ls /path/to/symlink