以下は、成功せずに実行しようとしたコマンドです。
exec('ln -s ' . PLUGIN_DIR . '/.htaccess ' . ABSPATH . '/.htaccess');
最後に die() を追加すると、エラーがあることがわかります。
exec('ln -s ' . PLUGIN_DIR . '/.htaccess ' . ABSPATH . '/.htaccess') or die('what?!');
上記の exec() ステートメントでは、パーミッションの問題がエラーの原因ですが、PHP はそれを表示していません。発生しているエラーをPHPからどのように表示しますか?