{"id":630,"date":"2018-11-07T20:19:42","date_gmt":"2018-11-07T20:19:42","guid":{"rendered":"https:\/\/draculaservers.com\/tutorials\/?p=630"},"modified":"2024-01-18T13:55:16","modified_gmt":"2024-01-18T13:55:16","slug":"ubuntu-wordpress-nginx-letsencrypt","status":"publish","type":"post","link":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/","title":{"rendered":"How to Install WordPress on Ubuntu 18.04 using MariaDB, Nginx, PHP 7.2 &#038; Let&#8217;s Encrypt"},"content":{"rendered":"<h2 id=\"introduction\">Introduction<\/h2>\n<p>If you want to set up a professional website without having to invest a good deal of money or time, then WordPress is one of the best solutions.<\/p>\n<p>Additionally, you can lower your budget by installing it yourself on a server, rather than hosting your website on shared hosting, or using a web panel.<\/p>\n<p>This is what we aim for in this tutorial. By the time you\u2019ve worked through it, you should have a fully functional, secure website that can withstand a good deal of traffic without affecting it\u2019s speed &#8211; and on a budget!<\/p>\n\n<h2 id=\"overview\">Overview<\/h2>\n<p>In this tutorial we&#8217;ll cover setting up <strong>LEMP Stack<\/strong>, installing and configuring WordPress and Let&#8217;s Encrypt.<\/p>\n<p><strong>LEMP Stack<\/strong> is a group of popular open-source software that serve your website&#8217;s dynamic web pages.<\/p>\n<p>LEMP stands for:<\/p>\n<ul>\n<li><code>Linux<\/code> &#8211; in our case it&#8217;s Ubuntu 18.04<\/li>\n<li><code>Nginx<\/code> &#8211; pronounced Engine-X, it is a powerful web server that will serve content to your visitors. It&#8217;s <a href=\"https:\/\/trends.builtwith.com\/web-server\" target=\"_blank\" rel=\"noopener\">one of the most popular web servers<\/a> and is used by some of the biggest websites on the internet.<\/li>\n<li><code>MariaDB<\/code> &#8211; a fork of the popular MySQL and some consider it to be better in some ways than MySQL. We won&#8217;t get into that, however you can <a href=\"https:\/\/www.google.com\/search?q=mariadb+vs+mysql&amp;pws=0&amp;gl=us&amp;gws_rd=cr\" target=\"_blank\" rel=\"noopener\">check comparisons for yourself<\/a>. We use MariaDB for storing and managing our data.<\/li>\n<li><code>PHP<\/code> &#8211; is one popular &amp; powerful server-scripting language that you&#8217;ve most likely heard of. We&#8217;ll use PHP 7.2 to dynamically process web pages.<\/li>\n<\/ul>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li>A Ubuntu server with a minimum of 512MB RAM, but with a recommended 1GB+ RAM.<\/li>\n<\/ul>\n<p>Most software that we&#8217;ll be using comes from Ubuntu&#8217;s default package repositories, which means we&#8217;ll use the <code>apt<\/code> command to make these installations.<\/p>\n<p>Since we assume this is the first time we&#8217;re using <code>apt<\/code> we&#8217;ll make sure we have the latest listings by updating our server&#8217;s package index:<\/p>\n<pre><code>$ sudo apt update<\/code><\/pre>\n<p><small><em>Updating package index<\/em><\/small><\/p>\n<p>Now that our package index is up-to-date, we can get down to business.<\/p>\n<h2 id=\"step-1-install-nginx\">Step 1 \u2014 Install Nginx<\/h2>\n<p>To install Nginx on Ubuntu just run the command:<\/p>\n<pre><code>$ sudo apt-get intall nginx<\/code><\/pre>\n<p><small><em>Installing Nginx<\/em><\/small><\/p>\n<p>Now <strong>stop, start and enable Nginx<\/strong> so it always starts on boot:<\/p>\n<pre><code>sudo systemctl stop nginx.service\r\nsudo systemctl start nginx.service\r\nsudo systemctl enable nginx.service<\/code><\/pre>\n<p><small><em>Stop\/Start\/Enable Nginx<\/em><\/small><\/p>\n<h2 id=\"step-2-install-mariadb\">Step 2 \u2014 Install MariaDB<\/h2>\n<p>WordPress will use MariaDB to store and manage our data. To install MariaDB run the following command:<\/p>\n<pre><code>$ sudo apt-get install mariadb-server mariadb-client<\/code><\/pre>\n<p><small><em>Install MariaDB<\/em><\/small><\/p>\n<p>Like we did with Nginx, use the following commands to stop, start and enable MariaDB so it always starts when the server boots:<\/p>\n<pre><code>sudo systemctl stop mariadb.service\r\nsudo systemctl start mariadb.service\r\nsudo systemctl enable mariadb.service<\/code><\/pre>\n<p><small><em>Stop\/Start\/Enable MariaDB<\/em><\/small><\/p>\n<p>To secure your installation, MariaDB comes with a script to help you adjust some insecure defaults. To start securing MariaDB run the following command:<\/p>\n<pre><code>$ sudo mysql_secure_installation<\/code><\/pre>\n<p>You&#8217;ll be prompted to answer some questions. We recommend you answer as follows:<\/p>\n<p><strong>NOTE:<\/strong> Make sure you remember your MariaDB password, as you&#8217;ll be using it later on.<\/p>\n<p><code>Enter current password for root (enter for none): Just press the Enter<\/code><br \/>\n<code>Set root password? [Y\/n]: <span style=\"color: red;\">Y<\/span><\/code><br \/>\n<code>New password: <span style=\"color: red;\">Enter password<\/span><\/code><br \/>\n<code>Re-enter new password: <span style=\"color: red;\">Repeat password<\/span><\/code><br \/>\n<code>Remove anonymous users? [Y\/n]: <span style=\"color: red;\">Y<\/span><\/code><br \/>\n<code>Disallow root login remotely? [Y\/n]: <span style=\"color: red;\">Y<\/span><\/code><br \/>\n<code>Remove test database and access to it? [Y\/n]: <span style=\"color: red;\">Y<\/span><\/code><br \/>\n<code>Reload privilege tables now? [Y\/n]: <span style=\"color: red;\">Y<\/span><\/code><\/p>\n<p><small><em>Secure MariaDB<\/em><\/small><\/p>\n<p>Restart MariaDB Server:<\/p>\n<pre><code>$ sudo systemctl restart mariadb.service<\/code><\/pre>\n<p><small><em>Restart MariaDB Server<\/em><\/small><\/p>\n<p>Let&#8217;s make sure MariaDB is set up correctly before moving forward. We&#8217;ll just test it by logging in. To do this run the following command and enter your MariaDB password at the prompt. After that you can just type <code>exit<\/code>.<\/p>\n<pre><code>$ sudo mysql -u root -p<\/code><\/pre>\n<p><small><em>Test\/Login MariaDB<\/em><\/small><\/p>\n<h2 id=\"step-3-install-php7-2-fpm-and-related-modules\">Step 3 \u2014 Install PHP7.2-FPM And Related Modules<\/h2>\n<p>Since Nginx does not come with PHP processing, we&#8217;ll have to install it ourselves. What we\u2019ll need to do now is install <code>php-fpm<\/code>, along with a few more extensions that are most frequently used by WordPress and its\u2019 plugins:<\/p>\n<pre><code>sudo apt update\r\nsudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip<\/code><\/pre>\n<p><strong>NOTE:<\/strong> The extensions we\u2019ve just installed are used by most plugins, but there are some WordPress plugins that require additional extensions. Make sure to check their documentations and see what other extensions they may require to work. You can install additional ones with the <code>apt<\/code> command as we\u2019ve just done above.<\/p>\n<p>When you\u2019re done installing PHP7.2-FPM, and the extensions, make sure to restart the PHP-FPM process so it uses the newly added extensions:<\/p>\n<pre><code>$ sudo systemctl restart php7.2-fpm<\/code><\/pre>\n<p><small><em>Install PHP7.2-FPM And Related Modules<\/em><\/small><\/p>\n<p>With that we\u2019ve installed PHP and extensions most commonly used by WordPress and many of its\u2019 plugins.<\/p>\n<h3 id=\"configure-the-php-processor\">Configure the PHP Processor<\/h3>\n<p>Now that we&#8217;ve got PHP installed, we&#8217;ll have to adjust a few settings to make our setup more secure and adjust some settings that&#8217;ll make our life easier when working with WordPress.<\/p>\n<p>To do this, open the main <code>php-fpm<\/code> configuration file:<\/p>\n<pre><code>$ sudo nano \/etc\/php\/7.2\/fpm\/php.ini<\/code><\/pre>\n<p>And adjust the following values:<\/p>\n<pre><code>memory_limit = 256M\r\nupload_max_filesize = 100M\r\ncgi.fix_pathinfo = 0\r\nmax_execution_time = 360\r\ndate.timezone = America\/Chicago<\/code><\/pre>\n<p>Save and close the file when you&#8217;re finished.<\/p>\n<p><small><em>Edit PHP.ini<\/em><\/small><\/p>\n<p>Restart the PHP processor, so that the changes we made are implemented:<\/p>\n<pre><code>$ sudo systemctl restart php7.2-fpm.service<\/code><\/pre>\n<p><small><em>Restart Nginx and PHP7.2-FPM<\/em><\/small><\/p>\n<h2 id=\"step-4-create-a-mariadb-database-and-user-for-wordpress\">Step 4 \u2014 Create a MariaDB Database and User for WordPress<\/h2>\n<p>First of all, we\u2019ll need to set up a new database and a user for WordPress to use. WordPress uses the database to manage and store data, and it\u2019ll need it\u2019s own user to be able to authenticate when doing that.<\/p>\n<p>Log into the MariaDB root by running:<\/p>\n<pre><code>$ mysql -u root -p<\/code><\/pre>\n<p>You should be prompted to enter your MariaDB root password. Enter the password you created when installing MariaDB.<\/p>\n<p>Now we\u2019ll create a database for WordPress to use. You can name it anything you want, but for the purposes of this tutorial we\u2019ll call it <code>dracula_db<\/code> here. Create it by running the following command:<\/p>\n<p><code>CREATE DATABASE dracula_db;<\/code><\/p>\n<p>Next we\u2019ll create a database user and set it a password. You can replace <code>wordpressuser<\/code> and <code>wordpressuser_password<\/code> with anything you\u2019d like.<\/p>\n<p><code>CREATE USER 'countdracula'@'localhost' IDENTIFIED BY 'bloodiwantblood';<\/code><\/p>\n<p>With the new database and user created, we\u2019ll have to grant our new user privileges to allow them to access the database. To do that, run the following command:<\/p>\n<p><code>GRANT ALL ON dracula_db.* TO 'countdracula'@'localhost' IDENTIFIED BY 'bloodiwantblood' WITH GRANT OPTION;<\/code><\/p>\n<p>You\u2019ve created a database and user exclusively for WordPress to use. Now we\u2019ll have to flush the privileges so that the current instance of MariaDB knows about the recent changes.<\/p>\n<p><code>FLUSH PRIVILEGES;<\/code><\/p>\n<p>Exit MariaDB when you\u2019re done:<\/p>\n<p><code>EXIT;<\/code><\/p>\n<p><small><em>Create MariaDB Database\/User\/Password<\/em><\/small><\/p>\n<h2 id=\"step-5-download-wordpress\">Step 5 \u2014 Download WordPress<\/h2>\n<p>Download, unpack &amp; move WordPress into your new website\u2019s root directory. In this tutorial, our directory is <code>dracula.host<\/code> but you can name it however you&#8217;d like.<\/p>\n<pre><code>cd \/tmp &amp;&amp; wget https:\/\/wordpress.org\/latest.tar.gz #download\r\ntar -zxvf latest.tar.gz #unpack\r\nsudo mv wordpress \/var\/www\/html\/dracula.host<\/code><\/pre>\n<p>Set the correct permissions for WordPress to function:<\/p>\n<pre><code>sudo chown -R www-data:www-data \/var\/www\/html\/dracula.host\/\r\nsudo chmod -R 755 \/var\/www\/html\/dracula.host\/<\/code><\/pre>\n<p><small><em>Download WordPress &amp; Set Permissions<\/em><\/small><\/p>\n<h2 id=\"step-6-configure-nginx\">Step 6 \u2014 Configure Nginx<\/h2>\n<p>Now we&#8217;ll edit the Nginx configuration file for your our new WordPress website, in <code>\/etc\/nginx\/sites-available\/<\/code>.<\/p>\n<p>In this example we\u2019ll use <code>\/etc\/nginx\/sites-available\/dracula.host<\/code> as the configuration file for our WordPress site. This file basically controls how visitors access your website. You should replace <code>dracula.host<\/code> with what applies to your requirements.<\/p>\n<p>To begin, open your server block\u2019s file with sudo privileges:<\/p>\n<pre><code>$ sudo nano \/etc\/nginx\/sites-available\/dracula.host<\/code><\/pre>\n<p>In the main <code>server<\/code> block we&#8217;ll have to add some <code>location<\/code> blocks.<\/p>\n<p>The first <code>location<\/code> blocks are will block the exact matches of <code>\/favicon.ico<\/code> and <code>\/robots.txt<\/code>, so we will block logging requests for them.<\/p>\n<p>We\u2019ll also turn off logging for static files, by using regular expressions. In these blocks we also mark these files as highly cacheable since they are typically expensive to serve.<\/p>\n<p>You can also adjust the regex for any other extension you\u2019d like.<\/p>\n<pre title=\"\/etc\/nginx\/sites-available\/dracula.host\"><code>server {\r\n    . . .\r\n    \r\n    location = \/favicon.ico { log_not_found off; access_log off; }\r\n    location = \/robots.txt { log_not_found off; access_log off; allow all; }\r\n    location ~* \\.(css|gif|ico|jpeg|jpg|js|png)$ {\r\n        expires max;\r\n        log_not_found off;\r\n    }\r\n\r\n    . . .\r\n}<\/code><\/pre>\n<p>Inside the existing <code>location \/<\/code> block, we\u2019ll need to adjust the <code>try_files<\/code> list so it passes control to <code>index.php<\/code> instead of returning a <code>404<\/code>.<\/p>\n<pre title=\"\/etc\/nginx\/sites-available\/dracula.host\"><code>server {\r\n    . . .\r\n\r\n    location \/ {\r\n        #try_files $uri $uri\/ =404;\r\n        try_files $uri $uri\/ \/index.php$is_args$args;\r\n    }\r\n\r\n    . . .\r\n}<\/code><\/pre>\n<p>Save and close the file when you\u2019re finished.<\/p>\n<p>To give you the full example, our file will look like this when we&#8217;re done with it. Remember to change <code>dracula.host<\/code> with your own domain.<\/p>\n<pre><code>server {                                                                                                                                                                                         \r\n        listen 80;                                                                                                                                                                               \r\n                                                                                                                                                                                                 \r\n        root \/var\/www\/html\/dracula.host;                                                                                                                                                                  \r\n        index  index.php index.html index.htm index.nginx-debian.html;                                                                                                                           \r\n        server_name dracula.host www.dracula.host;                                                                                                                                         \r\n                                                                                                                                                                                                 \r\n        client_max_body_size 100M;                                                                                                                                                               \r\n                                                                                                                                                                                                 \r\n        location \/ {                                                                                                                                                                             \r\n                try_files $uri $uri\/ \/index.php$is_args$args;                                                                                                                                    \r\n        }                                                                                                                                                                                        \r\n                                                                                                                                                                                                 \r\n        location ~ \\.php$ {                                                                                                                                                                      \r\n                include snippets\/fastcgi-php.conf;                                                                                                                                               \r\n                fastcgi_pass unix:\/var\/run\/php\/php7.2-fpm.sock;                                                                                                                                  \r\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;                                                                                                                \r\n                include fastcgi_params;                                                                                                                                                          \r\n        }                                                                                                                                                                                        \r\n                                                                                                                                                                                                 \r\n        location = \/favicon.ico { log_not_found off; access_log off; }                                                                                                                           \r\n        location = \/robots.txt { log_not_found off; access_log off; allow all; }                                                                                                                 \r\n        location ~* \\.(css|gif|ico|jpeg|jpg|js|png)$ {                                                                                                                                           \r\n                expires max;                                                                                                                                                                     \r\n                log_not_found off;                                                                                                                                                               \r\n        }                                                                                                                                                                                        \r\n                                                                                                                                                                                                 \r\n        location ~ \/\\.ht {                                                                                                                                                                       \r\n                deny all;                                                                                                                                                                        \r\n        }                                                                                                                                                                                        \r\n}<\/code><\/pre>\n<p>Now let\u2019s check if everything\u2019s ok with the changes we\u2019ve made:<\/p>\n<pre><code>$ sudo nginx -t<\/code><\/pre>\n<p>If there were no errors then we can restart Nginx so the changes can take effect:<\/p>\n<pre><code>$ sudo systemctl reload nginx<\/code><\/pre>\n<p><small><em>Configure Nginx<\/em><\/small><\/p>\n<p>The last step here is to enable our server block that we just created. We enable it by linking it from <code>\/etc\/nginx\/sites-available<\/code> and into <code>\/etc\/nginx\/sites-enabled<\/code>. We do this with the following command:<\/p>\n<pre><code>sudo ln -s \/etc\/nginx\/sites-available\/dracula.host \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Restart Nginx so our changes are implemented:<\/p>\n<pre><code>$ sudo systemctl restart nginx.service<\/code><\/pre>\n<p><small><em>Enable the Site<\/em><\/small><\/p>\n<h2 id=\"step-7-set-up-wordpress-configuration-file\">Step 7 \u2014 Set up WordPress Configuration File<\/h2>\n<p>Configure your WordPress configuration file <code>wp-config.php<\/code><\/p>\n<pre><code>$ sudo mv \/var\/www\/html\/dracula.host\/wp-config-sample.php \/var\/www\/html\/dracula.host\/wp-config.php<\/code><\/pre>\n<p>Open the configuration file to edit it:<\/p>\n<pre><code>$ sudo nano \/var\/www\/html\/dracula.host\/wp-config.php<\/code><\/pre>\n<p>Set the MariaDB Database, User &amp; Password that you created earlier, so that WordPress can use the it to store and manage data:<\/p>\n<pre title=\"\/var\/www\/html\/dracula.host\/wp-config.php\"><code>\/\/ ** MySQL settings - You can get this info from your web host ** \/\/\r\n\/** The name of the database for WordPress *\/\r\ndefine('DB_NAME', 'dracula_db');\r\n    \r\n\/** MySQL database username *\/\r\ndefine('DB_USER', 'countdracula');\r\n    \r\n\/** MySQL database password *\/\r\ndefine('DB_PASSWORD', 'bloodiwantblood');\r\n    \r\n\/** MySQL hostname *\/\r\ndefine('DB_HOST', 'localhost');\r\n    \r\n\/** Database Charset to use in creating database tables. *\/\r\ndefine('DB_CHARSET', 'utf8');\r\n    \r\n\/** The Database Collate type. Don't change this if in doubt. *\/\r\ndefine('DB_COLLATE', '');<\/code><\/pre>\n<p>Save the file and exit when you&#8217;re done.<\/p>\n<p><small><em>Configure WordPress<\/em><\/small><\/p>\n<h2 id=\"step-8-obtain-and-configure-the-lets-encrypt-ssl-certificates\">Step 8 \u2014 Obtain and Configure the Let\u2019s Encrypt SSL Certificates<\/h2>\n<p>Let\u2019s Encrypt provides an Nginx a client to automate obtaining and configuring it. It\u2019s called <code>certbot<\/code>, and to install it on Ubuntu run the following commands:<\/p>\n<pre><code>sudo add-apt-repository ppa:certbot\/certbot\r\nsudo apt-get update\r\nsudo apt-get install python-certbot-nginx<\/code><\/pre>\n<p><small><em>Install Let&#8217;s Encrypt Client<\/em><\/small><\/p>\n<p>To obtain your free Let\u2019s Encrypt SSL\/TLS certificate run the following command:<\/p>\n<pre><code>$ sudo certbot --nginx -m your@email.com -d your_domain.com -d www.your_domain.com<\/code><\/pre>\n<p>In our case we&#8217;ll run:<\/p>\n<pre><code>$ sudo certbot --nginx -m hello@draculaservers.com -d dracula.host -d www.dracula.host<\/code><\/pre>\n<p>After running the command, you&#8217;ll be prompted if you accept the Licensing Terms and after that, if you would like to share your email to receive news from the Electronic Frontier Foundation which is an organization that works towards digital freedom ( In short, they&#8217;re trustworthy, don&#8217;t spam, and are fighting the good fight, in our opinion ).<\/p>\n<p>You only need to accept the Licensing Terms to proceed <code>(A)<\/code>.<\/p>\n<pre><code>Please read the Terms of Service at                                                                     \r\nhttps:\/\/letsencrypt.org\/documents\/LE-SA-v1.2-November-15-2017.pdf. You must                             \r\nagree in order to register with the ACME server at                                                      \r\nhttps:\/\/acme-v02.api.letsencrypt.org\/directory                                                          \r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                         \r\n(A)gree\/(C)ancel: A<\/code><\/pre>\n<p>You are not required to share your email, but can do so if you&#8217;d like to receive emails regarding their <em>work encrypting the web, EFF news, campaigns, and ways to support digital freedom<\/em>.<\/p>\n<pre><code>Would you be willing to share your email address with the Electronic Frontier                           \r\nFoundation, a founding partner of the Let's Encrypt project and the non-profit                          \r\norganization that develops Certbot? We'd like to send you email about our work                          \r\nencrypting the web, EFF news, campaigns, and ways to support digital freedom.                           \r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                         \r\n(Y)es\/(N)o: Y<\/code><\/pre>\n<p>Next, you&#8217;ll be prompted to answer whether you want to redirect all HTTP traffic to HTTPS. <span style=\"color: red;\">This is an important step!<\/span><\/p>\n<p>Choose option <code>2<\/code>, so everyone visiting, for example, <code>http:\/\/dracula.host<\/code> will be actually be redirected to <code>https:\/\/dracula.host<\/code><\/p>\n<pre><code>Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.                   \r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                         \r\n1: No redirect - Make no further changes to the webserver configuration.                                \r\n2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for                        \r\nnew sites, or if you're confident your site works on HTTPS. You can undo this                           \r\nchange by editing your web server's configuration.                                                      \r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                         \r\nSelect the appropriate number [1-2] then [enter] (press 'c' to cancel): 2<\/code><\/pre>\n<p>After that, the Let&#8217;s Encrypt Client should install your certificate and configure your website to redirect all traffic to HTTPS.<\/p>\n<pre><code>Congratulations! You have successfully enabled https:\/\/dracula.host and                                 \r\nhttps:\/\/www.dracula.host                                                                                \r\n                                                                                                        \r\nYou should test your configuration at:                                                                  \r\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=dracula.host                                             \r\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.dracula.host                                         \r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -                         \r\n                                                                                                        \r\nIMPORTANT NOTES:                                                                                        \r\n - Congratulations! Your certificate and chain have been saved at:                                      \r\n   \/etc\/letsencrypt\/live\/dracula.host\/fullchain.pem                                                     \r\n   Your key file has been saved at:                                                                     \r\n   \/etc\/letsencrypt\/live\/dracula.host\/privkey.pem                                                       \r\n   Your cert will expire on 2019-01-21. To obtain a new or tweaked                                      \r\n   version of this certificate in the future, simply run certbot again                                  \r\n   with the \"certonly\" option. To non-interactively renew *all* of                                      \r\n   your certificates, run \"certbot renew\"                                                               \r\n - Your account credentials have been saved in your Certbot                                             \r\n   configuration directory at \/etc\/letsencrypt. You should make a                                       \r\n   secure backup of this folder now. This configuration directory will                                  \r\n   also contain certificates and private keys obtained by Certbot so                                    \r\n   making regular backups of this folder is ideal.                                                      \r\n - If you like Certbot, please consider supporting our work by:                                         \r\n                                                                                                        \r\n   Donating to ISRG \/ Let's Encrypt:   https:\/\/letsencrypt.org\/donate                                   \r\n   Donating to EFF:                    https:\/\/eff.org\/donate-le<\/code><\/pre>\n<p>If you check your site&#8217;s Nginx configuration file, in our case <code>\/etc\/nginx\/sites-available\/dracula.host<\/code>, you&#8217;ll notice that some modifications have been made by the Let&#8217;s Encrypt client.<\/p>\n<pre><code>. . .\r\n    \r\n    listen 443 ssl; # managed by Certbot\r\n    ssl_certificate \/etc\/letsencrypt\/live\/dracula.host\/fullchain.pem; # managed by Certbot\r\n    ssl_certificate_key \/etc\/letsencrypt\/live\/dracula.host\/privkey.pem; # managed by Certbot\r\n    include \/etc\/letsencrypt\/options-ssl-nginx.conf; # managed by Certbot\r\n    ssl_dhparam \/etc\/letsencrypt\/ssl-dhparams.pem; # managed by Certbot\r\n\r\n}\r\n\r\nserver {\r\n    if ($host = www.dracula.host) {\r\n        return 301 https:\/\/$host$request_uri;\r\n    } # managed by Certbot\r\n\r\n\r\n    if ($host = dracula.host) {\r\n        return 301 https:\/\/$host$request_uri;\r\n    } # managed by Certbot\r\n\r\n\r\n    listen 80;\r\n    server_name dracula.host www.dracula.host;\r\n    return 404; # managed by Certbot\r\n\r\n}<\/code><\/pre>\n<p>Your WordPress site is now ready to be used over HTTPS.<\/p>\n<p><small><em>Obtain Free SSL\/TLS Certificates<\/em><\/small><\/p>\n<p>There&#8217;s one more step that we need to do here.<\/p>\n<p>The Let&#8217;s Encrypt SSL\/TLS Certificates expire in 3 months and you will have to renew for another 3 months, and so on. To automate this, we can set up a cron job to renew it every time so we don&#8217;t have to worry.<\/p>\n<p>To do this run:<\/p>\n<pre><code>sudo crontab -e<\/code><\/pre>\n<p>And add the following line at the end of the file. It will try to renew the certificate every day, and it will succeed in renewing it when it gets close to expiring.<\/p>\n<pre><code>0 1 * * * \/usr\/bin\/certbot renew &amp; &gt; \/dev\/null<\/code><\/pre>\n<p>Save and exit when you&#8217;re done.<\/p>\n<p><strong>NOTE: <\/strong>You can see a nice explanation of the cron expression we used here: <a href=\"https:\/\/crontab.guru\/#0_1_*_*_*\" target=\"_blank\" rel=\"noopener\">https:\/\/crontab.guru\/#0_1_*_*_*<\/a><\/p>\n<p><small><em>Finalize\/Schedule SSL Renewal<\/em><\/small><\/p>\n<h2 id=\"step-9-finalize-the-wordpress-installation\">Step 9 \u2014 Finalize the WordPress Installation<\/h2>\n<p>The final step is to complete the WordPress installation through the web interface. To do this, just navigate in your browser to your domain ( in our case <code>https:\/\/dracula.host<\/code> ), and you&#8217;ll be guided through the easy process of installing WordPress.<\/p>\n<p>Select your preferred language.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-742\" src=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_1.png\" alt=\"install_wordpress_select_language\" width=\"1228\" height=\"636\" srcset=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_1.png 1228w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_1-300x155.png 300w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_1-1024x530.png 1024w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_1-768x398.png 768w\" sizes=\"auto, (max-width: 1228px) 100vw, 1228px\" \/><\/p>\n<p>And fill in your basic website and admin user information.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-743\" src=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_2.png\" alt=\"install_wordpress_fill_desired_credentials\" width=\"1226\" height=\"638\" srcset=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_2.png 1226w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_2-300x156.png 300w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_2-1024x533.png 1024w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_2-768x400.png 768w\" sizes=\"auto, (max-width: 1226px) 100vw, 1226px\" \/><\/p>\n<p>You can see that your website&#8217;s URL shows that you are using HTTPS.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-744\" src=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_3.png\" alt=\"wordpress_url\" width=\"1366\" height=\"691\" srcset=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_3.png 1366w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_3-300x152.png 300w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_3-1024x518.png 1024w, https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/dracula_host_install_wordpress_3-768x388.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/p>\n<p>Congratulations! You&#8217;ve successfully set up WordPress using Nginx, MariaDB, PHP and Let&#8217;s Encrypt on an Ubuntu server!<\/p>\n<p>If you&#8217;d like an budget Linux VPS then <a href=\"https:\/\/draculaservers.com\/kvm.php\" target=\"_blank\" rel=\"noopener\">check out our Linux KVM SSD Plans<\/a>. We offer affordable VPS, with our smallest plan featuring 2GB RAM, 10GB SSD and for only $5.99!<\/p>\n<p>And f you&#8217;ve got any questions or you&#8217;ve got an issue that you can&#8217;t figure out, then don&#8217;t hesitate to leave a comment or contact us.<\/p>\n<p>Cheers!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction If you want to set up a professional website without having to invest a good deal of money or time, then WordPress is one of the best solutions. Additionally, you can lower your budget by installing it yourself on a server, rather than hosting your website on shared hosting, or using a web panel. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6,2,22],"tags":[40,38,37,15,39,34,17],"class_list":["post-630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-getting-started","category-hosting","category-linux-basics","category-ubuntu","tag-lemp-stack","tag-lets-encrypt","tag-mariadb","tag-nginx","tag-php","tag-ubuntu","tag-wordpress"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"featured_image_urls_v2":{"full":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png",1024,512,false],"thumbnail":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX-150x150.png",150,150,true],"medium":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX-300x150.png",300,150,true],"medium_large":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX-768x384.png",768,384,true],"large":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png",1024,512,false],"1536x1536":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png",1024,512,false],"2048x2048":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png",1024,512,false],"pk-small":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX-80x80.png",80,80,true],"pk-thumbnail":["https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX-300x225.png",300,225,true]},"post_excerpt_stackable_v2":"<p>Introduction If you want to set up a professional website without having to invest a good deal of money or time, then WordPress is one of the best solutions. Additionally, you can lower your budget by installing it yourself on a server, rather than hosting your website on shared hosting, or using a web panel. This is what we aim for in this tutorial. By the time you\u2019ve worked through it, you should have a fully functional, secure website that can withstand a good deal of traffic without affecting it\u2019s speed &#8211; and on a budget! Overview In this tutorial&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/draculaservers.com\/tutorials\/category\/getting-started\/\" rel=\"category tag\">Getting Started<\/a>, <a href=\"https:\/\/draculaservers.com\/tutorials\/category\/hosting\/\" rel=\"category tag\">Hosting<\/a>, <a href=\"https:\/\/draculaservers.com\/tutorials\/category\/linux-basics\/\" rel=\"category tag\">Linux Basics<\/a>, <a href=\"https:\/\/draculaservers.com\/tutorials\/category\/ubuntu\/\" rel=\"category tag\">Ubuntu<\/a>","author_info_v2":{"name":"Vlad","url":"https:\/\/draculaservers.com\/tutorials\/author\/vlad\/"},"comments_num_v2":"0 comments","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Install &amp; Setup WordPress for Secure &amp; Speedy Sites<\/title>\n<meta name=\"description\" content=\"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install &amp; Setup WordPress for Secure &amp; Speedy Sites\" \/>\n<meta property=\"og:description\" content=\"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/\" \/>\n<meta property=\"og:site_name\" content=\"Dracula Servers Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-07T20:19:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-18T13:55:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vlad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vlad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/\"},\"author\":{\"name\":\"Vlad\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#\\\/schema\\\/person\\\/931f7fa8b2126ace6edfb82775e0ec0e\"},\"headline\":\"How to Install WordPress on Ubuntu 18.04 using MariaDB, Nginx, PHP 7.2 &#038; Let&#8217;s Encrypt\",\"datePublished\":\"2018-11-07T20:19:42+00:00\",\"dateModified\":\"2024-01-18T13:55:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/\"},\"wordCount\":1819,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Wordpress-NGINX.png\",\"keywords\":[\"LEMP Stack\",\"Let's Encrypt\",\"MariaDB\",\"nginx\",\"PHP\",\"Ubuntu\",\"wordpress\"],\"articleSection\":[\"Getting Started\",\"Hosting\",\"Linux Basics\",\"Ubuntu\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/\",\"url\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/\",\"name\":\"How to Install & Setup WordPress for Secure & Speedy Sites\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Wordpress-NGINX.png\",\"datePublished\":\"2018-11-07T20:19:42+00:00\",\"dateModified\":\"2024-01-18T13:55:16+00:00\",\"description\":\"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#primaryimage\",\"url\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Wordpress-NGINX.png\",\"contentUrl\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2018\\\/10\\\/Wordpress-NGINX.png\",\"width\":1024,\"height\":512,\"caption\":\"wordpress_nginx_featured_image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/ubuntu-wordpress-nginx-letsencrypt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Install WordPress on Ubuntu 18.04 using MariaDB, Nginx, PHP 7.2 &#038; Let&#8217;s Encrypt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#website\",\"url\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/\",\"name\":\"Dracula Servers Tutorials\",\"description\":\"Dedicated Servers\",\"publisher\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#organization\",\"name\":\"Dracula Servers\",\"url\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/dracula_full_logo_smaller.png\",\"contentUrl\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/dracula_full_logo_smaller.png\",\"width\":1625,\"height\":200,\"caption\":\"Dracula Servers\"},\"image\":{\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/draculaservers.com\\\/tutorials\\\/#\\\/schema\\\/person\\\/931f7fa8b2126ace6edfb82775e0ec0e\",\"name\":\"Vlad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g\",\"caption\":\"Vlad\"},\"description\":\"Tech Support\",\"sameAs\":[\"https:\\\/\\\/draculaservers.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Install & Setup WordPress for Secure & Speedy Sites","description":"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/","og_locale":"en_US","og_type":"article","og_title":"How to Install & Setup WordPress for Secure & Speedy Sites","og_description":"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.","og_url":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/","og_site_name":"Dracula Servers Tutorials","article_published_time":"2018-11-07T20:19:42+00:00","article_modified_time":"2024-01-18T13:55:16+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png","type":"image\/png"}],"author":"Vlad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vlad","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#article","isPartOf":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/"},"author":{"name":"Vlad","@id":"https:\/\/draculaservers.com\/tutorials\/#\/schema\/person\/931f7fa8b2126ace6edfb82775e0ec0e"},"headline":"How to Install WordPress on Ubuntu 18.04 using MariaDB, Nginx, PHP 7.2 &#038; Let&#8217;s Encrypt","datePublished":"2018-11-07T20:19:42+00:00","dateModified":"2024-01-18T13:55:16+00:00","mainEntityOfPage":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/"},"wordCount":1819,"commentCount":0,"publisher":{"@id":"https:\/\/draculaservers.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png","keywords":["LEMP Stack","Let's Encrypt","MariaDB","nginx","PHP","Ubuntu","wordpress"],"articleSection":["Getting Started","Hosting","Linux Basics","Ubuntu"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/","url":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/","name":"How to Install & Setup WordPress for Secure & Speedy Sites","isPartOf":{"@id":"https:\/\/draculaservers.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#primaryimage"},"image":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png","datePublished":"2018-11-07T20:19:42+00:00","dateModified":"2024-01-18T13:55:16+00:00","description":"Unlock the power of WordPress for a professional website on a budget! Learn to install and set up WordPress, bypassing shared hosting expenses and web panels.","breadcrumb":{"@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#primaryimage","url":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png","contentUrl":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2018\/10\/Wordpress-NGINX.png","width":1024,"height":512,"caption":"wordpress_nginx_featured_image"},{"@type":"BreadcrumbList","@id":"https:\/\/draculaservers.com\/tutorials\/ubuntu-wordpress-nginx-letsencrypt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/draculaservers.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"How to Install WordPress on Ubuntu 18.04 using MariaDB, Nginx, PHP 7.2 &#038; Let&#8217;s Encrypt"}]},{"@type":"WebSite","@id":"https:\/\/draculaservers.com\/tutorials\/#website","url":"https:\/\/draculaservers.com\/tutorials\/","name":"Dracula Servers Tutorials","description":"Dedicated Servers","publisher":{"@id":"https:\/\/draculaservers.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/draculaservers.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/draculaservers.com\/tutorials\/#organization","name":"Dracula Servers","url":"https:\/\/draculaservers.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/draculaservers.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2016\/06\/dracula_full_logo_smaller.png","contentUrl":"https:\/\/draculaservers.com\/tutorials\/wp-content\/uploads\/2016\/06\/dracula_full_logo_smaller.png","width":1625,"height":200,"caption":"Dracula Servers"},"image":{"@id":"https:\/\/draculaservers.com\/tutorials\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/draculaservers.com\/tutorials\/#\/schema\/person\/931f7fa8b2126ace6edfb82775e0ec0e","name":"Vlad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/499c7a24aa9727703300a291f8f69dfd1b01b8d6a19a4ae4fbe669b4b12b8cbe?s=96&d=mm&r=g","caption":"Vlad"},"description":"Tech Support","sameAs":["https:\/\/draculaservers.com"]}]}},"_links":{"self":[{"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/posts\/630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":2,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/posts\/630\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/posts\/630\/revisions\/2216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/media\/747"}],"wp:attachment":[{"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/media?parent=630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/categories?post=630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/draculaservers.com\/tutorials\/wp-json\/wp\/v2\/tags?post=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}