Blog

  • 20 Essential Docker Commands You Should Know

    20 Essential Docker Commands You Should Know

    Docker is commonly used by software developers and engineers to develop, test, and control the conditions in which they test their software. It allows software developers to create portable containers, making it easy to collaborate with others remotely.

    If you’re new to Docker, learning all of the commands may seem a bit daunting at first. The sheer amount of documentation available for Docker can be overwhelming to review. However, there are some commands which are more commonly used than others.

    What is Docker?

    Docker is a free, open-source platform that lets developers create, manage, and run containers in the cloud or on servers. It’s considered a PaaS (platform-as-a-service) product that lets developers use virtualization to run software in containers.

    Docker makes it easy for developers to use system resources more efficiently, as containerized apps generally use less memory when compared with virtual machines. Docker also makes applications portable, since a container includes everything the application requires to work.

    You just need Docker runtime on a host to easily execute a Docker container. Now that you know the basics, let’s look at 20 essential Docker commands.

    20 Essential Docker Commands and What They Do

    Here are 20 essential Docker commands, including their intended functions. 

    1. Docker run

    The Docker run command is used to create and start containers. When you run this command, it’s going to first look for a container image.

    If one is not found, it will create a new one and run it.

    Docker run[OPTIONS] IMAGE [COMMAND] [ARG...]

    Here’s an example of running a Nginx container from Docker’s repository.

    docker run —-name nginx-root -p 8080:80 -d nginx

    The -d means that the container will run in the background detached, while you can also customize the name flag and map the container port to the host port.

    2. Docker search

    You can use this command to search for different images from the main Docker hub. It will show you information about the image, including its name, description, and other specifications.

    Here’s an example:

    docker search nginx

    3. Docker stop

    This command is used to stop containers that you’re running. Unlike the docker kill command, this one stops the container in its own time. Here’s how to use it:

    docker stop [container name or ID]

    4. Docker rename

    This one’s fairly self-explanatory. If you want to rename a container, you can use this command. Here’s the syntax:

    docker rename [current_name] [new_name]

    5. Docker restart

    If you’ve stopped a container, you can restart it using this command. The syntax is as follows:

    docker restart [container name]

    6. Docker pause or unpause

    This command lets you pause or suspend all processes running within a container. Here’s the syntax that you use:

    docker pause [container name]

    You can also unpause containers using the unpause command:

    docker unpause [container name]

    7. Docker kill

    This command can be used to send the “KILL” signal to a container. It sends a SIGKILL signal without sending a request for termination.

    Generally, this command is in typical emergency situations, which is why it’s generally a wise idea to use the docker stop command before trying this.

    docker kill [container name]

    8. Docker pull

    The docker pull command can be used to pull an image from the Docker Hub. Here’s the basic syntax:

    docker pull [container name]

    You can also use tags to identify images, including the -all-tags- command to pull all images from a repository.

    9. Docker ps

    If you want to list all containers that are running in the background, you can use this command. Here’s the syntax:

    docker ps—-all

    10. Docker login

    If you want to log into the Docker hub, you can use this command. When you use this command, you’ll have to enter your Docker hub credentials.

    docker login

    11. Docker commit

    You can use this command to save an image of a container or create one on a localized system.

    docker commit [container name]

    12. Docker exec

    You can use this to execute new commands in a container that is already running.

    docker run --name ubuntu_1 --rm -i -t ubuntu bash
    

    This will create a new container entitled ubuntu_1 and launch a Bash session.

    13. Docker rmi

    If you want to remove an image from the host node and free up some space you can use this command. You will have to add the image ID to run this command.

    docker rmi [add image ID]

    14. Docker cp

    This command is used to copy files and directories from the container to the host and vice versa.

    docker cp test-container:/1/2/random.conf ./test

    This command is going to copy the random.conf file from the test-container and then paste it into the test directory, which would ideally be present in the same directory.

    15. Docker logs

    If you want to check the logs for all Docker containers, you can use this command. This is great when you want to review errors and then resolve problems. Here’s the syntax for it:

    docker logs [container name or ID]

    16. Docker info

    This is a fairly simple command that will show you information about the localhost, or the host on which Docker is running. The syntax is fairly simple:

    docker info

    17. Docker logout

    As you can imagine, this command will log you out of the Docker hub. The syntax is straightforward:

    docker logout

    18. Docker inspect

    If you want some basic information about the images and the containers, such as the checksum, layers, or the container’s IP address, you can use this command.

    The syntax for this is as follows:

    docker inspect [image name]

    19. Docker history

    If you want to go through the history of any image on your Docker system, you can use this command to get all the information you require.

    This can help you identify any changes made to the image, as well as any commits, starting from the most recent one. Here’s the syntax:

    docker history [container name]

    20. Docker push

    This command is used to upload a Docker image to a particular repository or the Docker hub. Here’s the syntax for it:

    docker push [image ID]

    After Action Report – Which Commands Do You Use Most Frequently?

    There are hundreds of different Docker commands and thousands of variations in total. Which Docker commands do you use most frequently? Let us know & join the conversation in the comments (or by Tweeting @RunCloud_io) what your preferred server file management process currently looks like! 💬

  • Laravel Octane – What It Is, Why It Matters & How To Take Advantage Of It

    Laravel Octane – What It Is, Why It Matters & How To Take Advantage Of It

    Laravel Octane is the latest Laravel open-source package, introduced by Taylor Otwell during his Laracon Online Talk last May 12th, 2021.

    The new Laravel package is a bigger and better version of Laravel. It’s powered by Roadrunner and Swoole, where you can store your Laravel server and website to let it handle all requests and boot-up processes. It’s faster, has a bunch of new features, and might be the future of Laravel web development.

    This guide will go over everything you need to know about Laravel Octane. What it is, why it matters, and how you can get started.

    What is Laravel Octane?

    Laravel Octane is an open-source package that boosts your Laravel application performance through stateful PHP programming.

    The package itself comes with dependencies and libraries for new features (mentioned below) and compatibility with high-performance servers such as RoadRunner and Swoole.

    Laravel VS Laravel Octane

    Laravel Octane runs on top of Laravel and PHP version 8.0 and above. It’s an addition to standard Laravel and is not a separate language.

    When comparing performance, standard Laravel apps can process up to 500 requests per second at best, while Laravel Octane easily passes 2,000 requests alone. While the data across numerous sources for this will vary somewhat, the consensus is that Laravel Octane performs at least 10x better than traditional Laravel – and that’s based on conservative estimates.

    Laravel Octane operates differently from traditional Laravel apps when it comes to servers as well. Octane has its own server through Swoole and RoadRunner, which Nginx and Apache should redirect to for incoming traffic.

    However, another key difference between standard Laravel and Laravel Octane is in PHP usage. Laravel Octane changes your PHP stack into a semi-stateful PHP framework.

    NOTE: Some sources will outright say that Laravel Octane uses a stateful PHP framework. But, since PHP is naturally stateless and most PHP developers are used to programming stateless frameworks, the Laravel Team made Laravel Octane only partially stateful. PHP libraries are also not ready to program Laravel in a completely stateful framework.

    Before proceeding with the article, one of the biggest factors you’ll need to consider before trying out Laravel Octane is the fact that you’ll have to learn stateful programming.

    Stateful PHP vs Stateless PHP

    Let’s try to break down the difference between stateful and stateless PHP without being too technical.

    Stateless PHP has servers that can act independently from a user or client’s request. The servers store user information and open the info file, send the requested query to the user or server, and then close the info file. This simplifies the design process because the info files are only opened when needed and will always be up to date for every new request.

    On the other hand, Stateful PHP utilizes servers that act together with a client or user. The servers store user information and actively remembers this data as if the info file is open throughout the entire session. This makes the user-side process faster since operations like opening and closing information files no longer need to happen.

    Real-life Example of Stateful vs Stateless PHP

    It’s easier to understand the differences between these two with a real-life example. So, here’s a simple analogy:

    You’re logging into your RunCloud account to access your personal dashboard. This dashboard contains personal information that only your account has access to. How does RunCloud know that you have access to the dashboard?

    Stateless ServersStateful Servers
    The server stores a record signifying that you just logged into your RunCloud account. When you open your dashboard, the RunCloud server opens the record and sees that you logged in with the correct credentials, then closes the record again. This process repeats every time you go from page to page.The server recognizes that you just logged into your RunCloud account and will keep this information open until you logout or end your session. During your entire session, even as you move from page to page, the RunCloud server will remember that you logged in correctly and won’t have to open and close the records to verify this.

    Aside from the contrasts in how these two work, the way of coding and thinking of stateful vs stateless PHP is also different. If you’re thinking of picking up Laravel Octane, you’ll have to dedicate some time to adapting and learning this new framework.

    Why is Laravel Octane Stateful and Why Is It Faster?

    Laravel Octane needed to adapt a stateful framework because it’s faster. Traditionally, the standard Laravel process creates a PHP worker for every incoming request (like opening a page). This means starting up an individual PHP process that needs to boot and prepare the framework before serving that one request.

    To put that into context, that PHP worker would need to boot the framework and all of the service providers it uses. It would have to register those services within that container and then boot the providers. After that, the request goes through a list of middleware classes, hitting your controller, then finally rendering a view that opens up on your computer (opening a page).

    With Laravel Octane, all the HTTP requests share the same booted framework. This means that once the framework is booted (when the website is opened for the first time), any request after that will make use of the framework that’s already been booted. Laravel Octane will not have to boot a new framework for every request, thereby decreasing the workload. This is why Laravel Octane is so much faster than traditional Laravel.

    The reason why Laravel Octane can do this effectively is because of high-performance servers like Swoole and RoadRunner.

    Swoole VS RoadRunner

    Swoole and RoadRunner are two high-performance PHP servers that can manage PHP processes across strenuous and large-traffic scenarios.

    Laravel Octane lets you choose between running Swoole or RoadRunner for your website.

    Swoole is firstly a PHP extension, which means you’ll need to compile it on top of your PHP build during the setup. If you can get past that, Swoole is faster than RoadRunner and adds some custom PHP Laravel-related features for development. On the downside though, Swoole does not work with Xdebug, the most popular debugging tool for PHP. There are also cases where monitoring tools like New Relic and Datadog don’t work reliably with Swoole because it’s incompatible with Swoole’s co-routine and CLI environment.

    RoadRunner, alternatively, works as a replacement for PHP-FPM. It doesn’t need to be compiled with your PHP files, making it easier to deploy and install on your Laravel website from the start. The only downside to RoadRunner is that it’s not as fast as Swoole and doesn’t come with Swoole’s PHP features. Other than that, it works right out of the box, and really well, if you want immediate performance improvements without modifying your PHP files.

    Should You Use Laravel Octane?

    So, since speed is the number one key metric for a better-performing website, should you update your PHP version and start installing Laravel Octane?

    The short answer is that it will depend on your needs. ‘Yes’ if your website is struggling with performance, and ‘No’ if you can help it.

    Laravel Octane requires PHP version 8.0 and the adoption of a stateful programming convention.

    • There are tons of websites that run on older versions of PHP that will have to update their system just to use Laravel Octane.
    • If your development team isn’t familiar with using a stateful framework, they will also have to dedicate some time to figuring that out before adopting Laravel Octane.

    If these two issues are not a problem, then we can wholeheartedly recommend the improvement. Outside of that, unless your site is crawling and struggling from the magnitude of processes your server is handling, you may not need to upgrade to Laravel Octane.

    Laravel Octane Key Features

    To help you weigh your choices better, we’ve listed some key features from Laravel Octane, besides the obvious performance benefits. Most of these features will only apply to Laravel Octane that’s running with Swoole, so keep that in mind while reading through the list.

    Octane Workers

    PHP workers are traditionally created every time an incoming request is received. With Laravel Octane, multiple workers are created from the start making it faster for the server to immediately service requests as they are received.

    You can even specify how many workers you want to begin with, as well as the number of workers you want to initialize per CPU core. Having multiple workers helps because if one worker is busy with a task, the other worker can start servicing other requests from the user without any delays. This is how Swoole and RoadRunner increase performance by large margins.

    Here’s the code for that through Artisan:

    php artisan octane:start --workers=4

    If you’re using Swoole, you can also specify the number of task workers with this command. We’ll talk more about task workers below.

    php artisan octane:start --workers=4 --task-workers=6

    Be careful about how many workers you’ll initialize per CPU core though. The use case for this will vary from site to site and will depend on how intensive your processes are. We don’t recommend reconfiguring the Octane worker settings unless you know what you’re doing.

    Concurrent Tasks

    Laravel Octane also allows you to perform concurrent tasks, meaning these tasks will be done at the same time and not after each other. You can do this through task workers, which will only be available depending on the number you set with the octane:start command.

    php artisan octane:start --workers=4 --task-workers=6

    These task workers are separate from the web workers that receive web requests. If you want to process a task and keep a web worker busy, you can defer the task to a task worker instead.

    This feature is only available for Swoole.

    Ticks or Intervals

    Ticks make operations execute repeatedly after a specific number of seconds. These are also referred to as internals just like the setInterval method in JavaScript. Here’s what the command looks like.

    Octane::tick('simple-ticker', fn () => ray('Ticking...'))
           ->seconds(10);

    Where:

    • ‘simple-ticker’ represents the name of the ticker as a string
    • fn () => ray(‘Ticking…’) is the callable that is executed after every interval

    As of writing, there is no command to stop these ticks from running, so keep that in mind when using this feature.

    This feature is only available for Swoole.

    Octane Cache

    The Laravel Octane cache driver is powered by Swoole tables, which we’ll also talk about below.

    The cache driver reads and writes up to 2 million operations per second, making it a fast and excellent upgrade from your current caching system. It’s an in-memory cache, meaning the data will flush out when the server is restarted, so keep that in mind. This is the command you’ll need to activate the cache:

    Cache::store('octane')->put('framework', 'Laravel', 30);

    Another feature that’s related to Octane caching is being able to set a cache interval. This means you can refresh the data in the octane cache at given intervals. Here’s how you can do that.

    use Illuminate\Support\Str;
     
    Cache::store('octane')->interval('random', function () {
       return Str::random(10);
    }, seconds: 5);

    This feature is only available for Swoole.

    Octane Tables

    Swoole tables are extremely fast and provide a huge boost of performance to your server. This is because Swoole tables can be accessed by all the workers on the server, making operations and data retrieval all the faster. The only caveat to this is that all the data in the tables will be lost when the server restarts.

    Tables are defined within the table configuration array inside your application’s octane config file. The file will have a default table of 1,000 rows, but you can reconfigure that to your needs. It should look something like this:

    'tables' => [
       'example:1000' => [
           'name' => 'string:1000',
           'votes' => 'int',
       ],
    ],

    The code for accessing a table goes through the Octane::table method.

    use Laravel\Octane\Facades\Octane;
     
    Octane::table('example')->set('uuid', [
       'name' => 'Nuno Maduro',
       'votes' => 1000,
    ]);
     
    return Octane::table('example')->get('uuid');

    The Swoole table only supports string, int, and float for the column types.

    This feature is only available for Swoole.

    How to Install Laravel Octane

    Now that you know the benefits of using Laravel Octane as well as its key features, it’s time to teach you how to install it. Thankfully, since Laravel Octane is just a package, the installation process is the same as installing a dependency.

    NOTE: Laravel Octane needs PHP version 8.0+ to work.

    You can install Laravel Octane using the following command through the Composer package manager:

    composer require Laravel/octane

    This will download the Laravel Octane package. Once that’s done, install it with the help of the following command.

    php artisan octane:install

    The command will generate a configuration file config/octane.php. When you’re done installing Octane, it’s time to choose between RoadRunner and Swoole. Remember, RoadRunner is the easiest one to install as it works on top of your Laravel site, but it’s less powerful than Swoole. On the other hand, Swoole is a PHP extension which means you’ll have to compile it together with your PHP files and have it run with them.

    RoadRunner

    You can choose Roadrunner if you don’t want to install any other application packages and don’t need the extra features that come with Swoole.

    1. To start with RoadRunner, open up the config file that was generated when we installed Laravel Octane.
    2. In the file, replace the ‘server’ key into ‘roadrunner’.

    After that, run this command through composer:

    composer require spiral/roadrunner

    This will install RoadRunner to your server.

    Swoole

    As mentioned before, Swoole is much more powerful than RoadRunner and comes with some extra PHP features. Here’s how you can install Swoole:

    1. Open your PECL and run the command: pecl install swoole
    2. While the installation is happening, you’ll be asked if you have support for certain technologies within Swoole. You can safely stick to default values here and proceed.

    Once Swoole is done installing, we can proceed with the next step and run the server.

    Running Laravel Octane

    With either Swoole and RoadRunner installed, you can now launch Laravel Octane with the following command:

    php artisan octane:start

    After Action Report — Install Laravel Octane on RunCloud

    Laravel Octane can be a game changer for your website, or it can be completely unnecessary — in the end, it all depends on your needs.

    There is a learning curve to mastering Laravel Octane, but the benefits of implementing Laravel Octane can be tremendous.

    Thinking about installing Laravel Octane on your RunCloud server? Follow our full step-by-step guide here!

    What are your thoughts on Laravel Octane? Did you try to implement it? Let’s talk in the comments below! 💬

  • Cheat Sheet To All Bash Shortcuts You Should Know

    Cheat Sheet To All Bash Shortcuts You Should Know

    The Linux Bash is commonly used by developers, though it may seem fairly difficult to navigate at first. The use of arrow keys to navigate between commands is obviously a hassle and often becomes a major challenge.

    However, in general, Bash is quite easy to use. If you’re going to use it on a VPS, it’s important that you know about the different shortcuts that Bash has to offer. Here’s a full list of different Bash shortcuts that you can use, divided in separate categories.

    Editing

    The following list of shortcuts will allow you to easily edit commands. 

    ShortcutAction
    CTRL + x, CTRL + eEdit the current command in $EDITOR
    CTRL + _Undo
    ALT + DELDelete word before the cursor
    ALT + dDelete word after the cursor
    CTRL+ yPaste the last item
    CTRL + dDelete character below the cursor
    CTRL + hDelete character before the cursor
    CTRL + wCut the word just before the cursor to clipboard
    CTRL + dCut the word after the cursor to clipboard
    CTRL + uCut the line before the cursor to clipboard
    CTRL + kCut the line after the cursor to clipboard

    Navigation

    These are the shortcuts that you can use to navigate Bash.

    ShortcutAction
    CTRL + eGo to the end of the line
    CTRL + aGo to the start of the line
    CTRL + xToggle between the current position of the cursor or to the start of the line
    CTRL + fMove cursor forward by one character
    CTRL + bMove cursor back by one character
    ALT + fMove cursor forward by one word
    ALT + bMove cursor back by one word

    History

    You can use these shortcuts to check your history or bring up a history search.

    ShortcutAction
    CTRL + gExit history search
    CTRL + rOpen history search
    CTRL + pSee previous commands
    CTRL + nSee the next commands in history

    Control

    These are commands that you can use to control processes in Bash.

    ShortcutAction
    CTRL + lClear your entire screen
    CTRL + zSuspend currently running processes and move them in the background
    CTRL + cKill currently running processes
    CTRL + dExit current shell
    EnterExit a suspended SSH session

    After Action Report – Use These Commands to Simplify Bash

    These are some of the many commands that you can use to simplify your use of Bash and move between commands more easily.

    Already using Bash on your VPS? Let us know if you have any other commands to add, and join the conversation by leaving a comment below! 💬

  • The Best Email Marketing Plugins For WordPress

    The Best Email Marketing Plugins For WordPress

    Email marketing is one of the most effective ways to connect with your customers. Whether you’re a small business trying to grow or an established brand, the right email marketing software can help you build relationships with your audience and increase revenue. But not all email marketing plugins are created equal, so we’ve put together this list of our favorite WordPress plugins.

    Constant Contact for WordPress

    constant contact for WordPress

    Constant Contact for WordPress is a tool that will allow you to create email opt-ins and capture leads within your WordPress website. It’s an excellent choice for small businesses, bloggers, churches, and nonprofits.

    The app allows you to set up forms in minutes and then send them out in email blasts or via social media. It also provides analytics so that you can see how many people have clicked on the link in their emails or opened it on social media.

    Pros

    There are a lot of great features that make Constant Contact an effective and successful marketing tool. It is easy to use, has a lot of features and functionality, and integrates well with WordPress.

    You can create newsletters in minutes with their drag-and-drop editor, or you can choose from the thousands of templates available on their website. Their platform comes packed with features like autoresponders (which send automatic email responses when someone subscribes or unsubscribes) and social media management tools so you can easily share your newsletters on Facebook and Twitter.

    Cons

    The integration between Constant Contact for WordPress and your site involves several steps that are not necessarily intuitive or easy to navigate through. For beginners, this might be frustrating when trying to set up the plugin in the first place.

    Because Constant Contact for WordPress integrates directly with your WordPress installation (and therefore requires access to certain files), it can slow down other areas of your website while it is running in the background or even cause certain pages on your site not to load properly due to conflicts between plugins or code errors during installation/setup process which may require some technical knowledge before implementing them into a production environment.

    MailChimp for WordPress

    mailchimp homepage

    The MailChimp for WordPress plugin is a free and easy way to add sign-up forms to your website. This integration allows you to create a form anywhere on your site – in content areas or in the header or footer. You can also add it directly into a post, page, or widget on a per-page basis as well.

    The features MailChimp for WordPress provides are among the most robust in the industry, making it one of our top picks for anyone looking for an easy way to get started with email marketing automation without breaking the bank.

    Pros

    MailChimp for WordPress is a freemium plugin that offers a free version and an upgraded premium version, which comes with additional features. The free version is great for getting started and the interface is simple enough to be used by beginners.

    The integration with other plugins, apps, and services is one of MailChimp’s strongest points: it has an API (Application Programming Interface) that allows you to connect your site with other software or services such as Zapier or Google Analytics, so you can send analytics data directly from those platforms into your email marketing campaigns without having to manually enter them into MailChimp.

    You can also use third-party integrations like Easy Digital Downloads or WooCommerce if you want to automate your eCommerce sales funnel using MailChimp’s powerful automation features

    Cons

    The biggest con is that you can’t customize the exit popups. There are only two available options: one that shows an email signup form, and another that redirects users to a thank you page.

    Another drawback of MailChimp for WordPress is the lack of custom fields. While you can add custom fields to your forms in order to collect more information from your subscribers, there’s no option to do so with Exit Popups or Exit Intent Popups.

    Sendinblue – Newsletter & SMTP Plugin

    sendinblue homepage

    Sending emails with Sendinblue is an excellent way to improve your email marketing strategy. The plugin has the same features as Mailchimp, and it’s easy to use. However, some users have reported issues with the plugin, especially when sending large volumes of emails. In addition, there are no templates available for this plugin like there are with Mailchimp.

    Sendinblue offers a lot of features that you would expect from a plugin like this. It offers a wide range of templates and a drag-and-drop editor that allows users to build their own newsletter design quickly and easily. Users can also customize their newsletter by changing colors, fonts, and images within the Sendinblue interface.

    Pros

    Sendinblue is a great alternative to Mailchimp. It has a lot of features and integrations, which might make it seem like an intimidating option at first. But once you get used to Sendinblue’s interface, it becomes easy to use and you will be able to take advantage of all the options available.

    It has a lot of pricing options as well, so there’s something for everyone: from free accounts with limited features up to enterprise solutions that include additional support options. And last but not least, if you ever have any questions or need help using our plugin they have great customer service available 24/7 via live chat or email.

    Cons

    SendinBlue has no tracking. This means that you’ll have to rely on your inbox to see how many clicks you’re receiving and if people are reading your emails.

    SendinBlue also doesn’t have any automation or drip campaign capabilities, so if you want to automate the sending of future newsletters or track the performance of certain campaigns over time, SendinBlue won’t help much with this.

    There are also no integrations with other services such as Zapier for automating tasks like adding subscribers into an email marketing service (like MailChimp), or Mandrill for sending transactional emails from Shopify stores. The lack of automation tools is particularly frustrating given how many options there are out there for managing these sorts of tasks.

    Campaign Monitor for WordPress

    campaign monitor for wordpress

    Campaign Monitor for WordPress is a popular email marketing service that lets you design and send newsletters, sales updates, and other messages to subscribers. It has a number of advantages over other services like Mailchimp and Constant Contact – such as its integration with WordPress – but it also costs more than similar services.

    Pros

    Campaign Monitor for WordPress is a straightforward email marketing solution that doesn’t require any coding skills, so you can set up an effective newsletter without hiring a developer or designer.

    The documentation on the plugin’s website is clear and easy to understand, and there’s also an active community forum where users can get help from other people who have used Campaign Monitor for WordPress before them. Additionally, the company offers email support for paid plans as well as free trials of their software.

    This plugin integrates with popular WordPress plugins such as WooCommerce (for eCommerce), Yoast SEO (for search engine optimization), Jetpack (for social media integrations), and Google Analytics For WordPress Users

    Cons

    Campaign Monitor for WordPress costs up to $175 per month. That’s the same price as an annual subscription to MailChimp, which has more features and offers a better user interface than Campaign Monitor.

    Also, the user interface is not as intuitive as it could be. While Campaign Monitor does include some helpful tutorials, they’re not very comprehensive—the plugin often doesn’t do what you think it should do until after reading through a few pages of instructions (and sometimes even then). Additionally, there aren’t any interactive walkthroughs available for users who want to learn how to use the plugin by doing rather than by reading about what they can do beforehand.

    OptinMonster

    optin monster homepage

    OptinMonster for WordPress is a popular email capture tool for WordPress. It offers a variety of email templates, email popups, exit-intent popups, and more. It’s a great tool for increasing email subscribers on your website or blog as it allows you to create engaging opt-ins that convert traffic into leads by using powerful lead generation tools like Opt-in Forms, Exit Popups or Slide-ins.

    Pros

    OptinMonster’s drag-and-drop interface makes it easy to add forms and campaigns to your website. You won’t need to be a developer or a designer to create beautiful, successful email marketing campaigns with the help of this plugin.

    OptinMonster integrates seamlessly with all major email marketing platforms including MailChimp, Campaign Monitor, ConvertKit, ActiveCampaign, and more! This integration also allows you to import contacts from these top third-party providers as well as directly from WordPress itself – making it super simple for you to get started building your list on day one.

    Because OptinMonster is built specifically for WordPress users who want better control over their site design than traditional webmail services like Gmail or Yahoo Mail offer (no matter what theme they’re using), there are almost no compatibility issues when using this plugin across various themes out there today – which means no more messing around trying figure out why things aren’t working right when they’re supposed too… just install/update/go!

    Cons

    There are a few drawbacks to OptinMonster for WordPress. First and foremost, the plugin has limited use. It’s best for blogs or websites that already have an email list and want to grow it further. If you don’t have an email list yet, then this isn’t the right tool for you – you’ll need something more robust like MailChimp instead.

    Another drawback is that there aren’t many templates available in OptinMonster’s library of templates (though they’re working on increasing this). This means you won’t be able to create a lot of different kinds of forms quickly; instead, you’ll need to hire someone who can build them from scratch using their own code (or purchase another plugin) in order to get more options out there.

    Lastly, while there are plenty of widgets available with OptinMonster for WordPress, not all of them will fit into your theme perfectly – so again: if you want complete control over how everything looks and works together on your site, then this may not be the best choice for your needs because it doesn’t have as much flexibility as some other plugins do!

    FluentCRM

    fluentcrm homepage

    The FluentCRM is a self hosted email marketing plugin for WordPress that allows you to send newsletter to your audience directly from the WordPress dashboard.

    Pros

    The software is easy to use, and everything happens within Gutenberg editor. Basically, everything you can do with blog post or page in Gutenberg, you can do with your email newsletter.

    It offers incredible sorting features where you can create multiple categories, lists, and tags, all in your WordPress dashboard.

    None of their plans have a limitation to how many emails you want/need to send.

    Also, their reporting tool is amazing and very simplistic which makes tracking data super easy.

    Cons

    Even though self-hosted solutions are usually less expensive, FluentCRM pricing isn’t the most affordable option there, esspecially if you have multiple websites. Another downside is that they do not offer monthly subscription, but annual only.

    Even though they offer 14-day refund, it’s still a con that they don’t offer a free trial.

    WP Email Capture

    wp email capture homepage

    WP Email Capture is a free and easy-to-use email marketing plugin for WordPress. It allows you to create and send email newsletters, email autoresponders, and campaigns.

    WP Email Capture can be used by anyone with even a passing interest in digital marketing – from the business owner who wants to gain more customers through their website or blog, to the marketer who needs something simple yet effective for sending automated emails on behalf of their clients, all the way down to someone who wants an off-the-shelf solution so they can get started quickly.

    Some of the most popular features of WP Email Capture include:

    • Autoresponder – Create autoresponders & email marketing campaigns in minutes, not weeks. WP Email Capture includes pre-made templates that you can edit to create your own unique emails.
    • Capture – Add an email capture form to any page or post on your website using the easy-to-use shortcode builder tool. Once someone fills out the form, their information is automatically added to your email list for future contact and follow-up.
    • Conversion – Monitor how many people visit your site, where they come from, what pages they visit and more with Google Analytics integration built right into WP Email Capture.
    • Segmentation – Create segments of your email list based on specific criteria like geographic location or browser type so you can send targeted emails only when it makes sense for them (i.e., don’t bother sending a discount code for shoes if someone has already bought a pair).
    • Email Builder – Create beautiful-looking emails using a drag & drop editor which comes with dozens of ready-made templates covering everything from abandoned cart reminders to end-of-year newsletters.
    • Email Marketing – Send personalized messages without having to touch code once thanks to its advanced autoresponder functionality which allows you to target specific users based on their actions within the past 6 months (or longer if needed).

    Pros

    The WP Email Capture interface is clean and intuitive, even for those who are new to the world of lead generation.

    A large part of the success of any business is determined by its ability to provide excellent customer service, and this plugin doesn’t disappoint in this area. If you have any questions about using it or need assistance setting up your form, their team will help you out as quickly as possible (often within minutes).

    Even if you’re not an experienced developer or designer, using this plugin will be a breeze since it has a simple drag-and-drop interface that makes building forms easy for anyone who knows how to use WordPress’ customizer feature. In fact, we were able to set up our first form with just one instruction because all we had to do was choose where we wanted the button on the page and select which fields should appear in our form (namely email address). The rest was handled automatically by WP Email Capture so all we had left was importing some HTML into our post editor via shortcodes before publishing.

    Cons

    The plugin only comes with one template to choose from, which may not suit your needs. There are no other templates available and there is no option to customize the template.

    Also, while some of the features of this plugin can be customized, it’s important to note that there is no option for customization of the thank you page or confirmation page. The same applies to both the thank you email and confirmation email as well.

    MailPoet

    mailpoet homepage

    MailPoet, the popular WordPress plugin that is used to send newsletters and other transactional emails, has received mixed reviews from users. There are many positive aspects of MailPoet, including its ease of use and great features. However, some users have reported problems with MailPoet’s performance and scalability.

    Pros

    MailPoet is a WordPress email plugin with a drag-and-drop editor, so you can create beautiful emails without having to write code.

    The plugin integrates seamlessly with WordPress and lets you manage your email campaigns easily.

    It is easy to use, as it has an intuitive interface that allows even beginners to start creating their first newsletter right away.

    You can also use its responsive design for mobile devices, which makes sure that your newsletter looks great no matter how the recipient accesses it.

    Cons

    As with any product, there are users that say MailPoet is not a good fit for their business. Some users report that the plugin is not very intuitive, while others say that it does not deliver emails as efficiently as they would like.

    A few people also complain about how difficult it is to track email opens and clicks.

    Icegram

    icegram homepage

    Icegram for WordPress is a free, easy-to-use plugin that can be used to create pop-ups, lead generation forms, and opt-in boxes.

    There are a few features that make Icegram different from other pop-up plugins. For one, it has multiple templates for you to choose from – you can create your own template, or choose one of the five that are included in the plugin. The second is its unique “targeting” feature, which allows you to target different users depending on their behavior on your site. For example, if someone visits a page without leaving any comments they may receive a different message than someone who leaves comments often.

    This makes Icegram special because it gives you more control over how your popups appear and how they work in relation to how people interact with your website and content. You can use this feature by choosing what kind of action or interaction triggers an Icegram popup (like submitting contact info or filling out forms) and then creating rules that determine when a certain condition has been met (for example: when someone submits contact info).

    Pros

    Icegram for WordPress is a free plugin.

    There are numerous options that you can use to customize your site, but the process of setting up this theme and adding it to your site takes just a few minutes.

    Icegram for WordPress is responsive, which means that it’ll automatically adjust its layout based on what device is viewing it (desktop computer or mobile phone). This makes it easy for visitors from all devices to see the same things when they visit your website, regardless of how they’re accessing it – and no matter where they’re located in the world.

    Cons

    It is not a standalone plugin and requires the use of other plugins, such as WooCommerce or Easy Digital Downloads, to function properly. If you don’t plan on using either of these services, then you won’t be able to utilize Icegram’s full capabilities.

    It can also be difficult to set up because it requires additional plugins and files that need to be installed manually in order for Icegram to work properly. This can make things confusing for users who aren’t familiar with WordPress or installing plugins on their site.

    Additionally, once installed there may still be problems with ensuring that everything runs smoothly together; occasionally users have reported having trouble with integrating different aspects of their site (i.e.: their blog vs product pages).

    After Action Report — Choose The Email Marketing Plugin That Fits Your Needs

    These email marketing plugins represent a great choice, and a wide range, so not all will be suitable for everyone’s needs. But everyone should find at least one plugin which meets their needs perfectly.

    When choosing which email marketing plugin to use, you’ll also want to consider a few other factors, including:

    • The email marketing plugin’s design. Does it fit in with your website’s current theme? Will it be easy for you to use and customize?
    • The quality of the support provided by the plugin creator. Is there live chat or phone support available? How often is the developer updating their product and adding new features?
    • How many active users are on that particular plugin? This isn’t necessarily an indicator of quality, but it will help you determine if there are any bugs in the code that might cause problems down the road.

    It’s hard to narrow down the best email marketing plugins for WordPress, but these are some of the most popular options you should consider.

    Which email marketing plugin have you used before? Anything that you believe we missed that’s worth mentioning? Let’s talk in the comments! 💬

  • Understanding Linux File Permissions – Read, Write & Change

    Understanding Linux File Permissions – Read, Write & Change

    Linux permissions allow you to set security levels for different users. Linux allows you to define access levels for individual files, specify attributes, and tighten security. This way you can provide granular permission levels and improve file security.

    Linux lets you choose from different file permissions for each type of user, but they can generally include a combination of:

    • Read
    • Write
    • Execute

    Before we talk about Linux file permissions, let’s talk about the different types of users.

    Linux Users

    The three types of users include:

    • Owners
    • Groups
    • Others

    Owner

    The owners include those who create the file.

    Group

    Groups generally include different users with the same Linux permissions. For instance, the owner can provide read information to a specific group instead of manually granting permission to each user.

    Others

    This includes any other user who can access the file. These are generally users who haven’t created the file, nor are part of a group with specific permissions. So, if you’ve set permissions for “others”, they will apply to this group.

    Understanding Linux Permissions

    Now, as mentioned above, each file or directory can be assigned any of the three permissions discussed below.

    Read (r)

    The Read permission gives users the ability to open and read a file. If the Read permission is assigned to a directory, users will be able to list all of its contents.

    Write (w)

    The Write permission lets users modify the contents of a directory or a file. This allows a user to add, remove, rename, or modify the file however they see fit.

    For instance, if you have to write permissions for a file, but not for the directory, you won’t be able to rename or remove the file from the directory. You’ll only be able to make changes to the contents of the file itself.

    Execute (x)

    This allows the user to execute the file. Essentially, with this permission, you can run the file.

    Example of Linux Permissions

    For instance, if the file name is:

    Ls -l example_file

    The first character tells you about the type of file. It could either be a directory (d), a regular file (-), or a symbolic link (l). The output of this file provides the following permissions:

    -rw-w-r- 

    In the first part, you can see that the file owner has both the read and write permissions. Then, the group only has write permission, and all others have just read permission.

    How to Change Linux File Permissions

    The chmod command is commonly used to change Linux file permissions. Any user with sudo privileges, the root, and the file owner are capable of changing the file permissions. When using the symbolic format, here’s the format that you can use to change the file permission:

    chmod [OPTIONS] [ugoa] [-+=] perms...[,...] filename...

    In this format, the first set of flags simply denotes the user classes for which you want to change the permissions. These include:

    • The owner (u)
    • Group (g)
    • Other users (o)
    • All users (a)

    The next set of flags defines whether to add (+), remove (-), or change the existing permissions to specific permissions (=).

    For example, if the command is:

    chmod -r o-x example_file  

    It will remove the execute permission for all other users.

    Absolute Mode

    Also known as the numeric mode, file permissions in this mode are represented by a three-digit number instead of a series of characters. Here are the numerical values for your understanding:

    0 = No permission

    1 = Execute

    2 = Write

    3 = Execute and Write

    4 = Read

    5 = Read + Execute

    6 = Read + Write

    7 = Read + Write + Execute

    So, if you were to use the following command:

    chmod 754 example_file

    You’ll essentially be changing the file permissions to the following:

    • Owner: Read, write, and execute (7)
    • Group: Read and execute) (5)
    • All others: Can read) (4)

    Conclusion

    We hope you find this simple guide for Linux permissions helpful. Keep in mind that the chmod command lets you change permissions, as long as you’ve sudo privileges or are the file owner. Any questions about Linux you’d like to see us cover in a future guide? Feel free to join the conversation by dropping a comment below or Tweeting at us! 💬

  • The Best WordPress Caching Plugins To Speed Up Your Site

    The Best WordPress Caching Plugins To Speed Up Your Site

    WordPress caching is one of the most important ways in which you can significantly improve your website’s performance and speeds. Caching plugins simply store data that’s frequently accessed in temporary storage for more rapid retrieval.

    This improves loading times whenever a person visits your site, as these elements can load up quicker straight from the cache. This works because in most cases, the posts or pages on your site aren’t going to change much after they’re published.

    WordPress caching significantly reduces data transmissions from the user’s browser to the WordPress database and the server, which ultimately results in faster page load times.

    If you aren’t already using a WordPress caching plugin, installing one could significantly improve your website’s performance, and result in a slew of other benefits.

    Why Use a WordPress Caching Plugin?

    Keep in mind that most browsers store a cache of your website’s page, so some form of caching is still active, even if you don’t use a plugin. However, with a caching plugin, you can significantly improve the process.

    A WordPress caching plugin offers the following advantages:

    • Greater control over types of server-side caching, including an object or page caching
    • Additional features such as minifying JavaScript or CSS files
    • Improved SEO performance
    • Greater visitor engagement, which can result in a significantly reduced bounce rate
    • Improvement in your site’s Core Web Vitals and PageSpeed scores

    The 8 Best WordPress Caching Plugins

    Now, here are the eight best WordPress caching plugins that you can use to speed up your website’s performance.

    1. WP Rocket

    WP Rocket caching plugin homepage

    WP Rocket is widely regarded as one of the best plugins for improving your website’s performance, and for good reason.

    WP Rocket offers control over both page caching and browser-side caching, and you can even set up Gzip compression so that web pages can be compressed on the server, and decompressed in the user’s browser.

    What makes WP Rocket the top pick is simply the fact that, right after installation, many of the settings are preconfigured. This means that you will notice a significant uptick in performance without even tinkering with any key settings.

    From delaying JavaScript scripts to lazy-loading media files, WP Rocket offers everything in a nifty, lightweight plugin. You can even integrate your CDN into WP Rocket’s dashboard or use their proprietary RocketCDN.

    Key Features

    • WP Rocket supports a range of add-ons, such as Cloudflare, Varnish Cache, and Sucuri
    • Compatible with all the popular themes and plugins
    • Automatic eCommerce customization that removes sensitive pages from being cached
    • Extensive range of settings and options that offer granular control over how your website performs

    2. Autoptimize

    autoptimize caching plugin homepage

    Autoptimize isn’t really a caching plugin, per se, but it does the job exceptionally well. Most caching plugins even recommend that you use Autoptimize along with them!

    At its core, Autoptimize is a plugin that’s designed for minifying and aggregating scripts to improve your website’s performance. You can determine which scripts to load or completely ban, which results in a significant performance boost.

    Another reason why Autoptimize is so popular is that it’s incredibly easy to use; the interface is very simple and presents you with all the options you need with brief descriptions.

    The plugin itself is free to use, though the team charges an amount for setting it up and customizing it for your site, which is definitely worth it.

    Key Features

    • Helps you fully optimize all scripts on your site
    • Has a free version
    • Quite simple for beginners, but also has advanced features that make it a suitable choice for technical professionals

    3. W3 Total Cache

    w3 total cache caching plugin homepage

    Third on the list is W3 Total Cache, a lightweight plugin that offers plenty of caching options. It offers optimized progressive rendering, which improves page load times and allows visitors to interact with them much faster.

    W3 Total Cache offers support for the Secure Socket Layer and also lets you minify your HTML, CSS, and JS files, reducing bandwidth consumption significantly. More importantly, it also lets you cache feeds, on CDN, or on the disk.

    Apart from that, you can choose to cache database objects, fragments in memory, search result pages, and a lot more. With this plugin, you can easily defer non-critical JS or CSS scripts to render pages faster.

    It also offers comprehensive stats to help users better understand the impact of each setting they change.

    Key Features

    • Offers reverse proxy integration using Varnish or Nginx
    • Lets you minify virtually all JavaScript, CSS, and other elements
    • Offers WP-CLI support for purging the cache

    4. WP Super Cache

    wp super cache caching plugin homepage

    Automattic, the company behind WordPress itself, offers WP Super Cache as a fairly simple caching plugin. It generates static HTML files to reduce load times significantly, serving these instead of loading data dynamically.

    It uses the Apache mod_rewrite module to bypass PHP, improving speeds dramatically. There are three options available:

    • Expert
    • Simple
    • WP-Cache caching

    Each of these differs in terms of speed, with Expert being the fastest. If you need a reliable caching plugin that’s designed for optimizing website performance, you can’t go wrong with WP Super Cache.

    Key Features

    • Has a Preload Mode that lets you preload as many posts as you want
    • Automatically deletes old files from the cache directory
    • Comes pre-configured with recommended settings

    5. WP Fastest Cache

    wp fastest cache caching plugin homepage

    Popular amongst developers, WP Fastest Cache offers all the features that you need to quickly set up caching on your site. When you install it, the plugin automatically modifies your .htaccess file, so you don’t have to do much.

    It deletes cache files when posts or pages are published, which keeps things running smoothly. Like WP Total Cache, it also lets you purge your cache using the command line interface.

    You can easily enable or disable the cache option for users that have already logged in, or those on mobile devices. It also lets you disable emoji inline CSS, and lets you combine your CSS and JS scripts.

    Key Features

    • Has both a free and a paid version
    • Lets you optimize all images on your site to reduce data consumption, while also offering an in-built WebP image converter
    • Lets you select elements to lazy load to further boost page load times

    6. Swift Performance

    swift performance caching plugin homepage

    Swift Performance has both a free and a pro version (with the former known as Swift Performance Lite). It’s a fairly comprehensive WordPress caching plugin that automatically optimizes page caching once you activate the plugin.

    It works seamlessly with WooCommerce, bbPress, Varnish Cache, Cloudflare, and several others. Furthermore, it lets you minify JS and CSS scripts, combining them to load simultaneously.

    It also offers Gzip compression and has a built-in optimizer for cleaning databases. It automatically detects duplicate metadata and removes it. The Pro version also lets you schedule a time for optimizing your database.

    Key Features

    • Supports WP Multisite for optimizing several sites
    • Offers browser caching right out of the box
    • Can automatically generate critical CSS to prioritize content in specific folds

    7. WP-Optimize

    wp-optimize caching plugin homepage

    WP-Optimize was originally developed as a database optimizer, but since then the team behind the tool has added lots of new features to turn it into a plugin that offers full-scale caching.

    It lets you cache, optimize, and significantly compress elements such as images on your site to improve loading times. There’s a free version, but to fully unlock all of its features, you’ll probably want to invest in the Pro plan.

    That unlocks additional features such as Multisite support and more caching options. But, if you run a simple site and need a plugin to minify JS and CSS files and improve page load times, WP-Optimize is a good choice.

    Key Features

    • Includes database optimization, image compression, and caching options
    • Improves website performance once you activate it automatically by optimizing common settings
    • Very responsive team of developers

    8. LiteSpeed Cache

    litespeed cache caching plugin homepage

    If you need a reliable caching solution, LiteSpeed Cache is a great choice. LiteSpeed Cache works well with web servers like (unsurprisingly) LiteSpeed, Nginx, Apache, and others.

    If your website’s hosting stack features LiteSpeed, this is a good plugin to use. It offers object caching support, HTTP/2 push for both CSS and JS files, Cloudflare API, and multisite support.

    The interface is intuitive, letting you choose whether to lazy load images, optimize PageSpeed scores, support for WP-CLI, schedule cache purges, and more.

    Support for LiteSpeed Cache is excellent, with a dedicated Slack community, detailed documentation, and a huge support community. There’s an API for the themes and plugins that aren’t directly compatible with LSCache, making it a great choice all around.

    Key Features

    • Has a built-in database optimizer
    • Supports both basic and advanced setting views
    • Multisite support is available

    Using a WordPress Caching Plugin is Essential to Boost Performance

    WordPress caching plugins aren’t just an “added bonus”. If your website has a lot of content and you intend to scale it in the future, you should use a caching plugin.

    Without a caching plugin, you’d have to tweak every setting manually, which is obviously quite complicated. While there are quite a few caching plugins out there, these are some of the best choices, and most others usually offer similar features.

    Let us know in the comments below if you have any questions or any recommendations for plugins that aren’t on the list, or the ones you prefer using!

  • How To Create a Docker Image For Your Application

    How To Create a Docker Image For Your Application

    Docker is an incredibly popular platform & framework that lets users build, run, and manage different “containers” on cloud servers. For app developers, Docker is an excellent option as it significantly accelerates their workflow, while offering them a comprehensive array of tools and environments to seamlessly execute each project.

    In this article, we aren’t going to discuss what Docker is or how it really works, since if you want to create a Docker image for an application, you already know the basics. Instead, we’re going to look at the steps that you can take to create a Docker image for an application.

    So, without further ado – let’s dive right in…

    What Does It Mean To Build A Docker Image?

    Building an image in Docker simply means creating a Dockerfile, hosting your Docker image on a registry, and then pulling and running the image on the same or another machine.

    How To Create Docker Image for Your Application

    Here is the recommended workflow that you should follow if you want to create a Docker image for your application.

    1. Write Your Dockerfile

    Docker usually takes instructions from the Dockerfile in order to build images. It automatically reads the instructions to build the file. Essentially, a Dockerfile is a text file that includes all relevant commands required to create an image.

    For the purposes of this tutorial, we’ll just create a simple Node.js app through the Express application generator. The first step is to use the Express generator, a command-line interface that’s used for creating Express application skeletons.

    This guide is written for users on a Linux machine, and those who are adept at using a command-line interface. Open the Terminal, and install the Express app generator with the following code:

    $ npm install express-generator -g
    $ express docker-app
    $ npm install
    $ npm start

    For Windows users, use the Command Prompt:

    > set DEBUG=myapp:* & npm start

    And, if you’re on Mac, just do the following:

    $ DEBUG=myapp:* npm start

    After having installed the package dependencies, then go ahead and launch the application. If you type http://localhost:3000, you’ll see the original “Welcome to Express” text on your screen, indicating confirmation. 

    So, you have an application running already, but the Dockerfile is still missing. Open your application’s root directory, and create a file. Name it “Dockerfile”.

    The Dockerfile usually begins through a base image. This is the part where your image is based. To create one, here’s what you do:

    # Filename: Docker
    FROM node: 14-alpineges

    2. Building Your Docker Image

    Now, you need to send instructions to Docker to copy the source when you run the docker build command. For this, use the following command:

    # Filename: Dockerfile
    FROM node:14-alpine
    WORKDIR /usr/src/app
    COPY package*.json ./
    RUN npm install
    COPY . .

    Now that you have the Dockerfile ready, it’s time to build the image. Run the following command:

    $ docker build .

    Docker will build the image, and you can also view the image you built using the docker images command:

    $ docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    <none> <none> 7y312abd0bf2 1 minute ago 80.2MB

    3. Host Your Docker Image

    Once you have created the image, the next step is to share it on a registry so that it can be downloaded and used on any machine. The DockerHub registry is free to use, and you can easily push or pull images through there very easily.

    But, if you don’t want your images to be publicly available, you can also host them on a private cloud server. Private repos are available from Docker, or you can just sign up for a cloud server through any IaaS provider like DigitalOcean, Linode, or AWS.

    4. Save and Load Images from Files

    Now, you can easily export and load Docker images as files using a simple command:

    $ docker save Dockerfile 

    If you want to download your Docker image on any destination machine, use the following code:

    $ docker load Dockerfile

    You can also use any other name except “Dockerfile” to save your images.

    How To Run a Docker Image

    If you’ve given the Docker image a name, you can just launch it using the code below:

    $ docker run -i -t Dockerfile /bin/bash

    After Action Report — Is Docker Useful?

    In essence, it really depends. After this, you should be able to create your own Docker image for a simple Node.js app.

    As you can see, Docker is generally a wise option if you need to port your applications quite often and access them from multiple machines. If your software development is generally restricted, Docker might not be a suitable choice.

    But, for distributed software teams, there’s hardly a better choice than Docker since it speeds up development and helps in containerizing different versions of the same application.

  • WP-CLI — The Complete Guide to Controlling WordPress From The Command Line

    WP-CLI — The Complete Guide to Controlling WordPress From The Command Line

    Thanks to all the themes and plugins of WordPress, it is now very easy to build and manage a WordPress site. Once you have created your site, the Admin Panel allows you to manage it easily.

    However, what if you prefer a command-line interface? It requires time and effort to manage WordPress websites through the Admin Panel. But, instead of taking steps manually, a command-line interface lets you quickly perform actions with simple commands.

    That’s where WordPress Command Line Interface (WP-CLI) comes in. WP-CLI is a popular and powerful tool to generate backups, add/update themes and plugins, and manage your WordPress website using a simple command-line interface.

    In this article, we’ll talk about what WP-CLI is and how you can use it to manage your WordPress website. We’ll also walk you through some of the basic WP-CLI commands:

    • What Is WP-CLI?
    • How To Install WP-CLI?
    • Getting Started With WP-CLI Commands
    • How to use WP-CLI from a remote server?
    • Conclusion

    What Is WP-CLI?

    wp-cli logo

    WP-CLI is an open-source tool for web developers to maintain and update their WordPress sites through the Command Line Interface. Its main goal is to speed up the WordPress developer’s workflow.

    WP-CLI’s various functions and commands manage common (and some not-so-common) tasks such as resetting passwords, managing post categories, adding/removing users, updating plugins, configuring multisite installations, and more. WP-CLI saves you time and increases your productivity because it allows you to complete multiple tasks quickly.

    Daniel Bachhuber has maintained WP-CLI since 2003. Over the years, WP-CLI has been a requirement for other open-source projects like Bedrock and Trellis. In January 2017, this open-source tool officially moved to WordPress.org and was co-maintained by Alain Schlesser.

    Suggested read: How to Change the WordPress Admin Password via wp-cli

    How To Install WP-CLI

    Installing WP-CLI is easy. From WP-CLI.org, download the Phar file to complete the installation process. For other installation methods (Homebrew, Docker, Composer), check out the WP-CLI documentation file.

    Make sure that your environment meets the following requirements:

    • UNIX-like environment (OS X, Linux, FreeBSD, Cygwin); limited support in Windows environment
    • PHP 5.4 or later
    • WordPress 3.7 or later.
    1. Now, download the wp-cli.phar
    2. Download the cURL command-line tool.
    3. Check the Phar file to make sure it’s working by executing the following command in your Linux terminal after installing cURL:
    php wp-cli.phar --info

    To use the WP-CLI command, you need to first mark the file as an executable, as it’s still a Phar build. Then, you must move it in your PATH. Use the following command to make this happen:

    chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp

    Now, instead of typing wp-cli.phar, you can just type wp. When you run wp –info, you’ll see the following code, which means that WP-CLI is installed successfully:

    $ wp --info
    OS:     Linux 4.19.128-microsoft-standard #1 SMP Tue Dec 7 12:58:10 UTC 2021 x86_64
    Shell:  /usr/bin/zsh
    PHP binary:     /usr/bin/php
    
    PHP version:    8.0.5
    php.ini used:   /etc/php/8.0/cli/php.ini
    MySQL binary:   /usr/bin/mysql
    MySQL version:  mysql  Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
    SQL modes:
    WP-CLI root dir:        /home/wp-cli/
    WP-CLI vendor dir:      /home/wp-cli/vendor
    WP_CLI phar path:
    
    WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
    WP-CLI global config:
    WP-CLI project config:  /home/wp-cli/wp-cli.yml
    WP-CLI version: 2.5.0 

    If you did everything correctly, WP-CLI will work properly. If, however, you encounter an error, you’ll have to repeat the steps again.

    To install WP-CLI on Windows, the process is slightly different. You should have the command line PHP for Windows in your system so you can execute PHP from any working directory.

    Now, you can just use cURL to install WP-CLI (cURL ships natively with Windows 10).

    Getting Started With WP-CLI Commands

    In this section, we’ll learn some of the basic commands that are commonly used in WP-CLI.

    WP-CLI commands generally begin with “wp.” A command and subcommand follow the “wp” to execute a query. A full WP-CLI command looks like this:

    wp command subcommand requiredparam --optionalparam --optionalparam2=value

    Let’s take a look at some basic WP-CLI commands with examples:

    How To Install A Plugin With WP-CLI

    Installing a plugin with WP-CLI is fairly straightforward. All RunCloud servers have WP-CLI installed by default, so you can easily connect to WP-CLI via the Terminal on Mac or through third-party software like PuTTY for Windows using your SSH key.

    Once the connection is established, here’s what you do.

    To install a public plugin through WP-CLI, type the following command:

    wp plugin install [plugin name]

    For example, to install the WooCommerce plugin, type:

    wp plugin install woocommerce

    To activate the plugin, type:

    wp plugin activate [plugin name]

    For example:

    wp plugin activate woocommerce

    Your plugin has now been activated.

    Installing Multiple Plugins with WP-CLI:

    You can install multiple plugins using the following command:

    wp plugin install advanced-custom-fields jetpack ninja-forms --activate

    To find a plugin name, use the command wp plugin search term, which will give you a list of plugins in the terminal.

    You can also install plugins from a remote file. This comes in handy if you’re developing a plugin or using a premium plugin. The following example installs two plugins from the repository and one from an Amazon S3 server:

    wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2018/06/23073607/myplugin.zip --activate

    This command is especially useful to troubleshoot compatibility issues. The best way to manage plugins that are not compatible is to deactivate all the plugins.

    Get a list of plugins with WP-CLI

    Run the following command to get the list of the available plugins:

    wp plugin list

    To see the list of active plugins, use the following commands:

    wp plugin list --field=name --status=active --update=available

    Managing WordPress themes with WP-CLI

    To install a theme, type:

    wp theme install [WordPress theme name]

    For example:

    wp theme install twentytwentytwo

    Make sure to type the theme name exactly as it appears in the page URL.

    wp theme path example for wp cli

    To activate a theme, type:

    wp theme activate twentytwentytwo

    Your WordPress theme should now be activated.

    To install and activate a theme from wordpress.org, run the following command:

    $ wp theme install twentytwentytwo --activate

    You can also install a theme from a local .zip file:

    First, you have to download the ZIP file for your theme and upload it to your server. This is possible through SFTP using a client like FileZilla.

    Once you’ve uploaded the file to your server, just run the following command:

    $ wp theme install mynewtheme.zip -activate

    Or from a URL:

    $ wp theme install https://github.com/Automattic/_s/archive/master.zip

    To list all installed themes, run the following command:

    $ wp theme list

    It’s important to note that non-marketplace themes can’t be downloaded using the WP-CLI. Custom themes can be activated through their zip folder or through URL. You could also download them with curl and the themes package will have specific instructions to activate them through WP-CLI.

    Make sure to use only trusted sources to download themes and plugins as themes/plugins installed from unverified sources are not safe to use.

    Installing WordPress with WP-CLI

    You can easily install WordPress through WP-CLI by using a few simple commands. This allows you to skip the standard WordPress installation process which can take some time as compared to completing the installation process through WP-CLI.

    Step 1: To install WordPress through WP-CLI, you’ll have to locate the directory where you want to complete the setup process and run the following command:

    wp core download

    Step 2: The second command will set up the config file with the database access and some additional PHP.

    wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef
    wp db create
    wp core install –url=https://mysite.io –title=mysite –admin_user=mydbuser admin_password=mydbpass –admin_email=mydbuser@email.com

    Step 3: You’ll need to run the core install command to start the installation process. There are some extra parameters in the command such as email, admin username, and password, where you have to replace those parameters with your own variables.

    WordPress should be installed to the latest version. After some time, you will need to update WordPress. You can use the following command to update the platform:

    wp core update

    Once the platform is fully updated, you’ll want to do the same for your database:

    wp core update -db

    Changing the WordPress URL with WP-CLI

    Generally, WordPress is configured to work and accept requests through the URL which is set during the installation process. Sometimes, for various reasons, the URL is required to change. For example, you may need to move your WordPress installation from one subfolder/subdomain to a different one, or you might want to change your domain name. You may even need to force HTTPS connections to your website after installing an SSL certificate. Another reason may be when you want to install WordPress or want to move the site from local to production, then you need to update the WordPress and site address URLs.

    Updating the URL is usually a complex job, as all the database entries containing the old URL need to be updated with the new URL. However, doing it through WP-CLI is much easier and quicker, and can be done by running one command:

    wp option update home [URL homepage web address]
    wp option update siteurl [URL homepage web address]
    

    For example:

    wp option update home 'http://www.domainofthewebsite.com'
    wp option update siteurl 'http://www.domainofthewebsite.com'

    Your WordPress URL should be updated.

    There can be some hard-coded links to resources in your files that can contain old URLs. If you find any missing CSS files, missing images, or any other inconsistencies, check out your web browser’s error console for the particular errors. Also, you can open the error console by clicking F12.

    Manage users with WP-CLI

    You can use the following commands to manage users along with their roles, responsibilities, and metadata.

    List users

    In order to list all users you can use the following commands:

    wp user list

    You can also list users with certain roles (such as the administrator role in this case)

    wp user list --role=administrator

    Create a new user

    New users can be created with the command:

    wp user create name email.

    If you want to assign the new user a role, then the command will need to include a suffix:

    --role=whatevertheroleis

    Examples:

    Create a new editor role.

    wp user create ron ron@alexa.com --role=editor
    
    Success: Created user 4.
    Password: WordPressAssignedPassword
    

    Delete user and re-assign posts to another user

    Delete function is simple as create command – run command

    wp user delete name

    If you want to re-assign posts to other users, add the suffix:

    --reassign=username

    Example:

    Delete user ‘ron’ and reassign posts to user ‘tim’:

    $ wp user delete ron --reassign=tim

    Reset the password for one user

    This is how to reset the password of any user:

    Step 1:

    $ wp user list

    Find the ID of the user you’d like to update.

    Step 2: update the user

    $ wp user update 1 --user_pass=password

    Replacing “1” with the ID of the user you want to update.

    Change admin email address for one user

    Step 1:

    $ wp user list

    List to see all users. Find the ID of the user you’d like to update.

    Step 2: update the user

    $ wp user update 1 --user_email=newemail

    replacing “1” with the ID of the user you want to update

    Set or modify a user role

    Step 1:

    Type the following to see all users:

    $ wp user list 

    Find the ID of the user you’d like to update.

    Step 2:

    $ wp user set-role 1 administrator
    Success: Added ronsmith (1) to http://yourdomain.com as author.
    

    WordPress’s available roles by default:

    • Administrator
    • Editor
    • Author
    • Manager

    Suggested read: Using wp-cli to manage WordPress Cron Jobs

    Manage WP core and cache with WP-CLI

    Check for missing or modified core files

    You can use the following commands to check for any missing or modified core WordPress files:

    wp core verify-checksums

    Reinstall WordPress Core

    You can use the following command to download WordPress core without the default themes and plugins.

    wp core download --skip-content --force

    Flush cache

    To flush the cache, use the following command:

    wp cache flush

    A full list of WP-CLI commands can be found by visiting https://developer.wordpress.org/cli/commands/.

    How To Use WP-CLI From A Remote Server

    One of the best features of WP-CLI is that you can use it to manage your remote WordPress installations.

    You will have to install WP-CLI in two places: on the system from where you’re running the command, and on your server.

    In order to install WP-CLI on your system, you can use the guide above since we have already gone through this. Saying that here’s how to configure the server with WP-CLI.

    Configuring Remote Server with WP-CLI:

    You can configure your server through WP-CLI globally or locally.

    To configure your server globally, use the config.yml file. You can also use wp-cli.yml or wp-cli.local.yml files in your current working directory. In one of your working files, type the following code:

    ssh:
    
      staging:
        cmd: ssh %pseudotty% username@server.com %cmd%
        url: http://yourdomain.com
     path: /www/path/to/site/root
    

    Once this is done, write the following command to update WordPress on your server:

    wp ssh core update --host=staging

    Use Bash Scripts

    Developers save up a lot of time by using bash scripts to automate tasks. With a single script, you can install WordPress or manage other tasks without typing multiple commands.

    To use Bash scripts, you will have to build an “install.sh” file inside a directory and paste the following code:

    wp core download
    wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    PHP
    wp db create
    
    wp core install --url=http://yourdomain.com --title=SiteTitle --admin_user=username --admin_password=yourpassword --admin_email=your@email.com
    

    After which, enter the following command:

    bash install.sh

    The script will be good to go without any interference from the user. If you handle multiple websites, you can establish all your environments by creating similar bash scripts:

    wp ssh core update --host=clientS
    wp ssh core update --host=clientR
    wp ssh core update --host=clientG
    wp ssh core update --host=clientY

    Bash scripts can free up your time when a new WordPress version is released.

    After Action Report — Using WP-CLI Can Be Extremely Useful

    WP-CLI solves many of the most common problems experienced by web developers and website managers. This saves you considerable time and effort, allowing you to focus elsewhere, safe in the knowledge your sites are taken care of.

    As a web developer, you can quickly develop test sites, include test data, and import/export as required. You can easily manage site updates and different other jobs for various websites with one command. WP-CLI community commands such as WP-CLI-SSH also provide some amazing functions. If you encounter an issue, a good place to refer is the WP-CLI common issues documentation.

    RunCloud easily allows hosts and lets you create and manage multiple WordPress websites with fast configuration. Using RunCloud in addition to WP-CLI, will give you back considerable time, and make site management easier. 

    What’s your favorite use case for WP-CLI? Did you come across any issues? Join the conversation & let us know in the comments below. 💬

  • WordPress.com vs. WordPress.org – The Differences & Which To Choose

    WordPress.com vs. WordPress.org – The Differences & Which To Choose

    Are WordPress.com and WordPress.org the same? It’s a question that on the surface seems so obvious, that many people don’t even think to ask it, let alone consider the answer. The truth is that those three little letters after the period make a huge difference, and could impact the success of your website in the future.

    So, what are the differences between WordPress.com and WordPress.org? Besides sharing the name ‘WordPress’ there are a number of significant differences to be aware of when choosing the platform you want to use for your website.

    In this post, we’ll dive deep into their backgrounds & how they’re different.

    What Is The Difference Between WordPress.com and WordPress.org?

    To make things as clear as possible, we’re going to cover all differences between WordPress.com and WordPress.org, starting with:

    The Fundamental Difference

    This is where people typically get confused. Both are called WordPress, yet aren’t the same.

    The non-profit WordPress Foundation manages WordPress.org which is a self-hosted content management system (meaning that you can install it anywhere and buy your own domain to set up a site). Not only is it a self-hosted content management system, but it’s also the world’s leading content management system.

    WordPress.com, on the other hand, is essentially the largest WaaS platform owned by Automattic, the company run by WordPress co-founder, Matt Mullenweg. It is powered by the WordPress.org open-source software.

    TL;DR – WordPress.com vs. WordPress.org Differences

    In short, WordPress.com is a limited version of WordPress.org that has been intentionally simplified for a completely different demographic.

    WordPress.org is open-source meaning that the main difference is:

    • Hosting – you can either set up a server with a cloud provider like DigitalOcean, Linode or Vultr with the help of RunCloud (highly recommended, of course 😉) or using a shared hosting service (which we would not recommend due to the limited resource availability and sluggish performance).

    While some of the most notable limitations of WordPress.com include:

    • No monetization through ads is possible (you are locked in to using the “official” WordPress.com advertising program)
    • No plugin installation or updates on the free plan — bigger plans also have these limitations, just lighter
    • You only get to choose one out of a few free themes if you’re on a free plan
    • Customization of the appearance, features, and overall site is heavily limited
    • The free plan doesn’t let you use Google Analytics
    • You have to upgrade from the free plan if you want to use your domain without the WordPress.com subdomain
    • No eCommerce features or integrated payment on the free plan
    • No membership websites

    Verdict

    There are plenty more limitations with WordPress.com, however, you have more responsibility with WordPress.org as a result. This should affect your decision on whether you should go with WordPress.com or WordPress.org.

    Pricing and Cost Differences

    Budget is always one of the first things you have to figure out when you’re building something. In this case, there are big differences between the pricing and costs of WordPress.com and WordPress.org, so to help you plan your budget better, we have broken down both solutions.

    WordPress.com offers four different pricing plans that can be paid annually, upfront, or monthly.

    Here’s a detailed pricing breakdown for WordPress.com

    wordpress.com pricing

    Besides these, WordPress.com does offer a free plan, and all you have to do is buy the domain. However, you will have their subdomain displayed e.g www.yourwebsite.wordpress.com.

    When it comes to WordPress.org, it’s completely free to use. However, there are other costs that WordPress.org doesn’t cover, which WordPress.com covers for you. The costs that WordPress.org doesn’t cover are:

    • Hosting — you will have to choose where you will host your WordPress website. You can check out some of our solutions here!
    • Security — Depending on your hosting, you might need some premium security features or plugins that can cost up to $250 per year.
    • Premium themes — there are free ones, but to get the most out of WordPress.org, you’ll probably want to go with premium themes. They usually cost up to $150 per year.
    • Premium plugins — another optional thing, but if you’re serious about scaling your website fast, you will probably want to go with some premium plugins like Rank Math for SEO.

    Verdict

    The cheapest way to create a website with WordPress is to buy a domain and go with the WordPress.com free plan. However, how desirable the free plan is will depend on the nature of your site, as WordPress.com has greater limitations. If you go with WordPress.org, you may end up incurring more costs on what it doesn’t cover, spending more than you wanted.

    Ease of Use

    Both WordPress.com and WordPress.org have a learning curve, but which one is easier to overcome?

    Since WordPress.org offers you a lot more freedom, you might frequently get lost if you’re a beginner. Whereas WordPress.com doesn’t have this issue. Their setup is more robust as you’re solely dependent on the plan you chose.

    On the other hand, if you are a more advanced user, you’ll probably find your way faster with WordPress.org, as you’ll know exactly what you need to set up your intended site.

    Setting up WordPress.com is a bit easier as it’s designed for blogging. Also, since it has far more limitations and doesn’t allow you to change many things you would normally be able to change on WordPress.org, fewer options mean it is easier to use.

    Verdict

    Considering WordPress.com has more limitations, it’s a lot easier to find your way around with their streamlined setup process. Therefore, WordPress.com wins this battle!

    Hosting

    Hosting is your own home in the internet realm. Without hosting, your site pretty much doesn’t have a place to live, and therefore no one can find it.

    WordPress.com and WordPress.org differ when it comes to hosting options, and these differences are important to know.

    With WordPress.com, you are already getting the hosting regardless of the plan you pick, since the service is self-hosted (free or premium). Effectively, hosting isn’t something to worry about if you decide to go with WordPress.com.

    However, since WordPress.org is just software, you will need hosting with your WordPress site.

    There are dozens of hosting providers out there offering you your new virtual house, and it can be a bit overwhelming sometimes to review all of them, especially if you’re not that tech-savvy.

    It doesn’t matter if you’re a beginner or an expert — we’re certain that here at RunCloud, we can provide you with everything you need to get your site up and running with ultra-fast speed, maximum security, and features that will help you scale it sky-high. Make sure to check our plans here!

    Verdict

    Since WordPress.com will take care of all hosting-related stuff, it’s fair to say that WordPress.com is the simpler option to go with here. However, if you’re a more advanced user who wants more control, you’ll definitely want to host your website by yourself.

    Theme Design & Customization

    Themes are there so you can get your WordPress site to look exactly the way you want.

    When speaking solely about themes, you have plenty of choice on both WordPress.com and WordPress.org.

    However, here are some things worth mentioning:

    With WordPress.com you:

    • Can’t upload any premium themes without the Business plan
    • Can choose from dozens of free themes
    • Are heavily limited with customizing themes

    With WordPress.org you:

    • Can choose from plenty of free themes
    • Can upload whichever premium theme you want
    • Can edit absolutely everything if you know how to code

    Customization is also a big part of deciding which of the two options is better in terms of design. Unfortunately, customization is impossible on WordPress.com which makes WordPress.org win this race by some margin.

    This flexibility is a benefit if you’re an advanced user who already knows how things work and what exactly it is you need.

    On the other hand, if you’re a beginner, you might be perfectly fine with the limitations of WordPress.com, as you are yet to develop your experience and are still learning what you actually need.

    Verdict

    WordPress.org wins hands down in terms of options and possibilities with your website design. It practically has no limits and you can do whatever you want to as long as you know how to do it properly. But once again, it all comes down to what you actually need out of your website, and WordPress.com is more beneficial if you are newer to the process.

    Plugins

    Plugins are coded programs that serve the purpose of performing certain functions on your website, and they can be anything from payment integrations to a simple table of contents.

    There are major differences in handling plugins on WordPress.com and WordPress.org so you must familiarize yourself with these to make your choice better.

    WordPress.com doesn’t allow you to use any plugin upload or installation unless you’re on the Business plan ($300) even though the majority of plugins from WordPress databases (over 50,000) are free.

    This again represents a huge limitation in controlling your website, but the benefit is that WordPress.com pretty much handles a lot of things for you. Whereas you’d need to install more plugins yourself on WordPress.org.

    Speaking of WordPress.org, you have zero limitations when it comes to playing with plugins. You can install any plugin you want, free or premium, and configure it however you want.

    Verdict

    Both platforms use the same plugin directory, but the fact that you can’t modify your plugins on WordPress.com without paying $300 per year, gives a huge advantage to WordPress.org. The advantage of WordPress.com is again for those with less experience and who prefer things being handled for them.

    Blogging

    If you’re looking to build a site for blogging, then both options can be great. It all depends on what you need.

    If you have never previously had a blog, want to start one without planning to scale it sky-high, and don’t have much blogging experience, then in terms of structured SEO writing and setting the blog up WordPress.com is an amazing option for you.

    You will learn a lot and it can be free (which we suggest). There’s no harm in trying new things out and as you don’t have to spend a dime (except on the optional domain of course) to tackle that learning curve, it’s a great option!

    There are many blogs on the WordPress.com free plan, and we’re sure it will satisfy your needs as a beginner.

    However, if you’re an experienced blogger, then WordPress.com probably won’t work for you.

    WordPress.org is a much better option for experienced bloggers as you probably have WordPress knowledge and you know exactly what you need. There is likely to be an issue with WordPress.com because of its limitations.

    Also, if you’re planning to scale your blog and make it a six-figure business, then WordPress.org might be a better solution as it gives you more options from the beginning.

    Verdict

    Both WordPress.com and WordPress.org are great options for blogging. WordPress.com is great for beginners, but if you’re planning to grow your blog rapidly then WordPress.org will be a better solution.

    SEO (Search Engine Optimization)

    SEO plays an important role if you’re planning to grow your site’s traffic organically.

    WordPress is generally one of the best (if not the best) platforms when it comes to SEO, and both services will provide you with high-quality tools. Both will make sitemaps and send them to Google.

    Both will leave you plenty of options for creating content no one can compete with.

    The only difference here is with plugins.

    As you already know, WordPress.com will not let you upload or install any plugins, which means no SEO plugins as well. Only if you go with a Business plan will you be able to install SEO plugins.

    On WordPress.org, things are much easier, and for that purpose, we recommend Rank Math. It’s currently the best SEO plugin out there and we’re certain it will help you immensely with your SEO game.

    Verdict

    Both services offer a great SEO-friendly environment for creating top-notch content. But the advantage goes to WordPress.org as there are no limitations to boosting your SEO game with SEO plugins.

    Analytics

    Analytics also play an important role in growing your website. How else would you know what your readers want unless looking at analytics, stats, and data?

    WordPress in general doesn’t have its own analytics. All you can track is site traffic, but that doesn’t tell you much, meaning you’ll need some plugins or hard-coded integrations.

    Google Analytics is definitely the best analytics tool out there, but unfortunately, you can only have Google Analytics on your WordPress.com website site if you upgrade to the Premium Plan.

    Besides that, Google Analytics isn’t the only analytics you might want. Depending on your site’s nature you might want to install a heatmap or some other form of the data collection system. Unfortunately, all this is unavailable with WordPress.com if you don’t go with their Business plan.

    On the other hand, if you go with WordPress.org, you can install whatever you want, including Google Analytics. You can install Google Analytics through a hard-coded API, or use some of the other plugins like Rank Math, Jetpack, or others. Effectively all options are at your disposal!

    Verdict

    WordPress.org is a far better platform for tracking down data and getting insights into your audience, as you can use any plugin.

    Maintenance

    Technical maintenance of your website usually comes down to three things:

    • Web hosting maintenance
    • Security maintenance
    • Plugins maintenance

    The benefit of having a website on WordPress.com is that they take care of everything for you. You don’t have to worry about hosting as WordPress.com is self-hosted. You don’t have to think about security as they keep everything together. Additionally, since you don’t have any plugins besides the ones they install for you, you don’t have to pay attention to them either.

    On the other hand, you will need to take care of all these things if you decide to go with WordPress.org.

    Most web hosting companies keep a very close eye on every upcoming WordPress update, making sure that the support is there should you need it.

    With RunCloud this process is made considerably easier, as you have access to a server management control panel that allows you to monitor and update multiple WordPress installations much more quickly. This makes the process of keeping multiple sites secure significantly more practical.

    When it comes to security, depending on the hosting provider you’re working with, you may need to install a security plugin. The Wordfence plugin is often recommended, which has a free option, but if you want to upgrade your security they have multiple plans available.

    Also, WordPress.com provides you with a free SSL certificate which is a super important security requirement, as well as an increasingly important SEO metric. If you decide to go with WordPress.org you will have to take care of SSL yourself. Luckily most hosting providers have free SSL included in their plans.

    Last but not least: plugins. You probably have heard of plugins crashing sites. How do you prevent that from happening to your site? Always keep everything updated! Yes, even though there might be a risk of your website experiencing issues after a plugin update, the chances are much higher of issues occurring when they’re not updated. Also, make sure not to use too many plugins!

    Verdict

    There are almost no differences between the two except that you will have to work a bit more on maintenance with WordPress.org.

    Customer Support

    If you’re a beginner, then support might come in handy, especially if you’re setting up your website for the first time.

    WordPress.com doesn’t offer any support on a free plan, but if you upgrade to the Personal plan, you will get email support, although it might take several days for them to reply.

    If you upgrade to the Business plan, however, you will get their live chat support which is far more responsive than email support.

    WordPress.org doesn’t offer any type of support as there’s no need for them to provide it. The service is free and you have all the freedom to create whatever you want. However, they do offer documentation that you can use and gain a lot of useful information.

    Speaking of support, for both platforms, you can actually find a lot of useful information on the WordPress forum, as issues you’re experiencing are likely issues other people have been experiencing as well.

    Verdict

    There is no support at WordPress.org as your websites are more your own. WordPress.com does offer some sort of support, which makes it more user-friendly in this case.

    We have covered the main differences between WordPress.com and WordPress.org, so now we’ll answer some key common questions, before concluding.

    How To Install WordPress With RunCloud

    Installing WordPress on RunCloud is super simple, and we have a detailed guide here to help you with it!

    Is WordPress.com or WordPress.org Better?

    It all depends on your needs and what you want your website to be. If you are a beginner looking to build a small personal blog, then WordPress.com is a good option. However, if you’re looking to scale your website as an online business, WordPress.org offers much better solutions as it has fewer limitations.

    Can You Switch From WordPress.com to WordPress.org?

    Yes, you can switch from WordPress.com to WordPress.org. All you have to do is

    1. Find a hosting provider where you will host your WordPress.org website
    2. Export your WordPress.com website
    3. Import your site to your new hosting provider (support can help with this)
    4. Voila!

    Some hosting services have an option where you submit your WordPress.com credentials, and they do all the heavy lifting and get it ready for you. Bear in mind this is highly likely to be a paid service.

    What Should You Look For When Picking A WordPress Hosting Provider?

    First and foremost you want to make sure that your hosting provider offers fast and secure servers with good uptime.

    After that, their support is something you should also have in mind as it will often come in handy.

    And last but not least, make sure your hosting provider offers decent pricing, with a range of plans to suit both your budget and your needs, as well as providing the flexibility to upgrade plans in the future as your business expands.

    Here at RunCloud, we pride ourselves on offering top-notch server management tools, helping to improve the speed and responsiveness of your site. Our support is always ready to assist you in case of any need. Check out our server management plans here!

    Can I Monetize A Free WordPress.com Website?

    Yes, you can monetize the WordPress.com website. There are two popular ways you can go with this — either affiliate marketing or building a paid membership program. WordPress has written its own guide to membership programs if you’re interested in finding out more.

    WordPress.com vs WordPress.org – Which One Is Better For eCommerce?

    WordPress.org is far better for building an eCommerce website.

    The reason for that is that with the WooCommerce plugin you can achieve so much without having to spend much more money on premium solutions or buying their extensions. In fact, if you’re starting as a simple eCommerce store, you don’t need any extra features of WooCommerce, which means you can run it almost free (domain and hosting needed only).

    When it comes to WordPress.com, you can go with an eCommerce plan that costs $540 per year which is not the most affordable option, especially if you’re just starting out. Additionally, even with paying that amount, you will still have limitations you wouldn’t usually have with WordPress.org.

    After Action Report — Use WordPress.org for Maximum Versatility & Control

    Although both platforms have their advantages and disadvantages there’s really no question as to which is the best solution for any business that’s either already established or is planning on significant growth.

    From the addons and plugins you can choose that allow you to integrate everything from payment portals to mailing lists, security to social media automation, to full control over your themes and website’s appearance, WordPress.org lets you have it all.

    Have you already made your choice? What was the deciding factor for you? Leave a comment below and join the conversation either here or on Twitter @RunCloud_io. 💬

  • What Is Managed WordPress Hosting & Do You Need It?

    What Is Managed WordPress Hosting & Do You Need It?

    Trying to figure out what managed WordPress hosting is and whether you need it?

    WordPress currently powers over 455 million websites, with 500 new WordPress websites every day. Well over a third of the top 1 million websites is WordPress based, so no one is ever going to deny its popularity or success, but that doesn’t mean that it’s immediately straightforward – there are key decisions to make right from the start which could have a long term impact on your website’s success.

    In this guide, we’ll walk through when managed WordPress hosting can make sense and why for many use-cases running your own infrastructure (with the help of RunCloud) paired with a popular cloud provider like UpCloud, DigitalOcean, Vultr, etc. can be the better choice. Without further ado – let’s dive in.

    What is Managed WordPress Hosting?

    Managed WordPress hosting is a service that takes care of all the technical aspects of running a WordPress website. This generally includes everything from maintaining the performance, stability, and security of your hosting infrastructure all the way through to providing support for technical issues that arise.

    For those willing to pay a premium to have everything taken care of for them, managed hosting can afford you some extra peace of mind. We’ll get into the advantages and disadvantages shortly.

    Overall, the main attraction in finding a managed WordPress host is convenience. You delegate responsibility and let experts handle the technicalities, freeing up to do what you want to focus on which may not be anything related to your hosting infrastructure.

    The Pros & Cons of Managed WordPress Hosting

    Although the features and services may differ from host to host, you can still rest assured that the majority of these pros and cons will be present in every host.

    Managed WordPress Hosting Pros

    There are really only two main advantages of choosing managed WordPress hosting – support & the absence of responsibility.

    Support

    Managed WordPress hosting providers tend to pride themselves in the level of support they’re able to provide.

    The Absence of Responsibility

    When you work with sites where 100% uptime and maintaining security, stability, and performance are not things that you wish to be responsible for, they’re often a good choice.

    Managed WordPress Hosting Cons

    Price (better yet, what is your business model?)

    Managed WordPress hosting is more expensive, but that’s not really what cost comes down to. Whether or not you choose to go with managed hosting as a result of the cost, realistically is a matter of what your business model is. If you’re a WordPress design and development agency that has made the decision they want to get into the hosting business (a billion-dollar industry), then running your own infrastructure, eventually staffing your own support, etc. becomes a more logical choice.

    Whereas, if you wish to maintain the stance that hosting is not something you’re interested in getting into and you would rather focus solely on your area of expertise as a design and development partner, perhaps eventually expanding into offering other services like SEO, then going with a managed WordPress hosting provider – depending on the site – can make more sense for your business.

    Less Control

    When you go with managed WordPress hosting, you are tied into their ecosystem of how you can scale sites, and traffic and how you can optimize when you reach a certain point, i.e. can you decouple your database and use a dedicated database server & do you need to pay $100/month to enable Redis caching because your host offers it as an add-on? All of these are out of your control and tied to how your managed WordPress hosting provider wants you to handle them.

    When Can Managed WordPress Hosting Make Sense?

    We would distill the ideal customer profile of managed WordPress hosting providers don’t

    To make the distinction of when to choose managed WordPress hosting over a solution like RunCloud (and vice versa), you can distill things into 2 ideal customer profiles:

    1. The business owner who is not interested in having extra work to do, just wants things taken care of so is willing to pay a managed WordPress hosting provider.
    2. The businesses that have the technical talent but don’t want to capitalize on WordPress hosting as a part of their business model (as a part of a strategic choice to focus on what their core service is, missing out on recurring revenue as a result, but this can be the right way to go of course).

    While using a solution like RunCloud doesn’t require you to be a SysAdmin or expert by any stretch of the imagination, realistically anyone who can use WordPress to a decent level will (perhaps with some help from our incredible support team) get up & running, it is still slightly more involved than going with a managed WordPress hosting provider.

    So if we go back to the two profiles above, it really comes back to what you want your business model to be. Do you want to take ownership of the hosting layer and become the expert or do you want this to be taken care of by a managed WordPress hosting provider that staffs a team of experts?

    Or, better yet, a mix of both? This is what quite a few of our customers do.

    For agencies that host sites for their clients but not all client sites are alike, some have bigger budgets and some have more complex sites. When there’s a site that’s too big for the agency’s appetite for managing in-house (with their current team) on RunCloud, they offload it to their managed WordPress hosting provider of choice. While the majority of sites tend to fall within the type of sites they want to manage in which case they choose RunCloud which makes total sense, because it really isn’t a completely black & white choice, and fortunately, isn’t an all or nothing choice either.

    Managed WordPress Hosting vs. Shared Hosting

    Now although this isn’t the focus of the article, there is one thing we do want to mention and that is shared hosting. Yes, we’re thinking exactly what you’re thinking – subpar support and terrible performance.

    When To Avoid Shared Hosting?

    Our personal stance on shared hosting is that it almost never makes sense for any kind of serious business owner. Sure, we’re well aware that the shared hosting providers in the industry occupy a very significant portion of the market share but realistically that is because many people that use WordPress aren’t necessarily running a business or working to accomplish something with their websites.

    For the price of most shared hosting providers, you can easily maintain your infrastructure with RunCloud at a fraction of the cost so referring clients (if you’re a design and development agency) to a shared hosting provider is really just a huge missed opportunity. Because you’re both not going to satisfy them with your recommendation (given they are likely to not be happy with their experience) and will miss out on keeping them as a customer as a part of a hosting & support service offering.

    After Action Report – Get Ready To Own The Hosting Layer & Grow Your Business

    Now that you know how to decide on when to use or better yet, the type of sites it may make sense to host with a managed WordPress hosting provider, let’s take a moment to talk about how you can own the hosting layer and use it to grow your business.

    Traditionally, managing your infrastructure with cloud providers like DigitalOcean, UpCloud, Vultr, Linode, AWS, the Google Cloud Platform (and more) required you to be extremely familiar with Linux to the point where you could essentially consider yourself a self-taught SysAdmin.

    Fortunately thanks to RunCloud, this is no longer the case. Managing your own infrastructure, deploying servers with DigitalOcean of UpCloud all the way to setting up WordPress sites on those freshly-deployed servers can all be done in a matter of minutes. And, if you do run into any issues, you have a friendly support team of real people ready to jump in to help.

    This only begins to scratch the surface of how you can use RunCloud, but here are some of the things you can expect to enjoy when managing your infrastructure with RunCloud:

    • Easy server deployments
    • 1-click WordPress installation
    • Built-in tools for file management, Cron jobs, and more
    • 1-click staging environments
    • Server and site monitoring
    • Server statistics and health checks
    • Atomic Deployment
    • Integrations with GitHub and Bitbucket
    • 24/7 friendly & human support team
    • Built-in backups (including to external providers of your choice, i.e. S3 Buckets & more)

    What really separates RunCloud from other similar solutions is ease of use and support. Other newer providers that throw together some copied version of what RunCloud offers come and go, we’ve been here for years and aren’t going anywhere. And we aren’t basing our product development timeline off of competitors.

    One-click SSL, seamless integration with Cloudflare, and more make managing dozens of websites as a company of one (or more with a small team) is all possible with RunCloud.

    Ready to get started? Learn more and sign up for your free trial today.


    Bonus: If I Do Choose To Go The Managed Route – Which Managed WordPress Hosting Providers Can You Recommend?

    So, if you’ve made it to the end of this article and still have a specific use-case for managed WordPress hosting – this is a handpicked list (based on the hosting providers our team has actual experience with). These are all hosts that we can wholeheartedly recommend and are very well-reputed in the industry.

    Servebolt

    servebolt homepage

    Servebolt is a next-level, high-performance managed hosting provider with a strong focus on scalability. Whereas most such hosting companies are built on other platforms, such as AWS or GCP, thereby limiting the extent to which they can optimize their service, Servebolt has built and maintains its own Linux distribution – and controls the stack from top to bottom. As such, they’re able to optimize for raw performance at every layer of their stack.

    • Built for true scale and raw performance
    • Friendly customer support
    • A hardcore approach to performance
    • Consistently outperforms all other managed hosting providers in independent WP Hosting Benchmarks across all tiers.

    If you already aren’t using RunCloud to manage a server deployed with DigitalOcean or UpCloud, it makes sense to go with a hosting provider that hasn’t just built their infrastructure on top of AWS, the Google Cloud Platform, etc. Because maintaining their own hardware is what allows Servebolt to achieve the performance and optimize the stack from top to bottom while the other managed hosting providers (although we still recommend them) are simply powered by AWS and the Google Cloud Platform.

    servebolt pricing

    It’s also worth noting that Servebolt does not impose a limit on PHP workers, something we highly recommend when choosing a hosting provider, especially when looking at managed WordPress hosts which are by no stretch of the imagination extremely affordable. A limit on PHP workers is something that a lot of managed WordPress hosting providers like to do in order to throttle performance when your site starts to scale and charge extra to “add extra PHP workers to your site” to keep charging you more as you grow. Charging more as your site grows is fine, server costs will trend upwards as your site grows but throttling performance as a means of achieving this is not something Servebolt (nor we at RunCloud) are advocates for.

    Pagely

    pagely homepage

    Pagely is an enterprise-level WordPress host and is easily the most expensive service on this list. If you want a host to take care of all the heavy lifting and provide a premium, near hands-free experience, then keep reading.

    • World-class server speeds powered by AWS Cloud
    • Superb customer support (live chat and tickets)
    • Free SSL, CDN, and backups
    • Optimized WordPress sites
    • Simple staging tools
    • Automatic site-wide updates
    • Efficient hosting for eCommerce

    Pagely’s higher pricing plans allow bigger businesses to host 30 to 60 websites and more. As a solution for enterprise companies, Pagely takes security very seriously. You’ll be protected against DoS/DDoS attacks and have all plugins up to date. Pagely also developed its own security architecture called PressArmor. Finally, since nothing is 100% safe, Pagely will automatically back up your website at no additional cost.

    A premium price also requires stellar support, which Pagely proudly offers. Basic support means sending tickets and having access to live chat (only during business hours). If you opt for a more expensive plan, you can get access to phone calls and even have your own personal Slack channel.

    pagely pricing

    Kinsta

    kinsta homepage

    One of the largest managed WordPress hosting sites in the industry, Kinsta caters to a wide range of customers, including new business owners as well as enterprise-level clients.

    Whether you’re a small business or one that’s almost a household name, Kinsta has a pricing plan ready for you. In this review, we’ll be focusing on Kinsta’s cheapest pricing option, the Starter plan.

    Here’s what you can expect from working with Kinsta:

    • Site staging features
    • Automatic database optimization
    • Automatic daily backups, with the option to create manual backup points
    • Free SSL
    • Limits on the number of PHP workers per site
    • 24/7 live chat support team

    It’s important to note that Kinsta doesn’t offer unlimited visits and CDN. Each plan has a monthly visit limit and if your visitors go past that number, you’ll be charged extra (notified ahead of time).

    As a separate point, it’s worth keeping in mind that depending upon which plan you choose, you will have a cap on the number of PHP workers active on your site. For basic, static websites this is not generally a problem, but more dynamic sites should take this into consideration when comparing their options.

    In addition, Kinsta also does not include server-level caching (Redis) that works for dynamic sites unless you pay an additional fee as they separate it from their plans to sell it as a premium add-on.

    Still, the support team behind Kinsta feels passionate about their work. The reviews on Kinsta’s support team are some of the best you can read in this industry. If you’re a business with a sizable number of employees, Kinsta makes team management a breeze. You can add unlimited users to your site and easily set roles or permissions for each user.

    As for security, Kinsta will fix your website for free if it’s hacked. Which frankly is unlikely given the GeoIP blocking, DDoS scanning, and other features that are protecting your site as standard. The only notable downside to Kinsta is their inability to provide an unlimited plan and their list of blocked plugins (to avoid slowing down the servers and your site).

    All in all, Kinsta is a very flexible managed WordPress host. They have 10 pricing plans incremented by $100s from $30 all the way to $1,500. You can also save 2 months’ worth of hosting payments if you pay annually.

    WP Engine

    wp engine homepage

    WP Engine is an all-around managed WordPress host with a long portfolio of innovation and consistent service.

    The managed WordPress hosting service is specifically designed to manage WordPress sites. With patented optimization tools, good customer support, and a range of premium features, WP Engine is an affordable alternative that offers reliable quality.

    Here’s what you can expect from using WP Engine:

    • 24/7 customer service
    • Daily backups
    • Staging site features
    • Simplified website managing process
    • Reliable performance when it comes to speed and uptime
    • Quick and easy WordPress migration and installation
    • Premium themes
    • Automatic site-wide updates
    • Free fix in case of hacking incidents

    WP Engine has a good list of features to help you build and maintain a solid website. Since their entire framework is specifically designed for WordPress, you’ll also be benefiting from consistent loading times and server speed.

    If you’re looking for an entry-level managed WordPress host that executes all the basic features of a WordPress host well, then WP Engine makes a good case.

    wp engine pricing

    Beginner-friendly and inexpensive, WP Engine is a great option for new business owners. For those of you who have more websites and demands to solve, WP Engine also offers enterprise-level solutions with a pricing system that’ll be specific to your needs.