This tutorial explain how to install Wordpress in a LAMP stack . If you haven't installed LAMP, you can find how to install LAMP here.
If you want to install Wordpress in a local VPS, follow the tutorial at Wordpress in local VPS page.
$ cd /tmp$ wget https://wordpress.org/latest.tar.gz$ tar xzvf latest.tar.gz$ touch /tmp/wordpress/.htaccess$ chmod 660 /tmp/wordpress/.htaccess$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.phpWe can also create the upgrade directory, so that WordPress won't run into permissions issues when trying to do this on its own following an update to its software:
$ mkdir /tmp/wordpress/wp-content/upgradeNow, we can copy the entire contents of the directory into our document root. We are using the -a flag to make sure our permissions are maintained. We are using a dot at the end of our source directory to indicate that everything within the directory should be copied, including hidden files (like the .htaccess file we created):
$ sudo mkdir /var/www/html/example.com$ sudo cp -a /tmp/wordpress/. /var/www/html/example.com $ sudo chown -R www-data:www-data /var/www/html/example.comNext, we will set the setgid bit on each of the directories within the document root. This causes new files created within these directories to inherit the group of the parent directory (which we just set to www-data) instead of the creating user's primary group. This just makes sure that whenever we create a file in the directory on the command line, the web server will still have group ownership over it.
We can set the setgid bit on every directory in our WordPress installation by typing:
$ sudo find /var/www/html/example.com -type d -exec chmod g+s {} \;There are a few other fine-grained permissions we'll adjust. First, we'll give group write access to the wp-content directory so that the web interface can make theme and plugin changes:
$ sudo chmod g+w /var/www/html/example.com/wp-contentAs part of this process, we will give the web server write access to all of the content in these two directories:
$ sudo chmod -R g+w /var/www/html/example.com/wp-content/themes$ sudo chmod -R g+w /var/www/html/example.com/wp-content/pluginsThis should be a reasonable permissions set to start with. Some plugins and procedures might require additional tweaks.
$ sudo nano /var/www/html/example.com/wp-config.phpedit:
. . .define('DB_NAME', 'example_database');/** MySQL database username */define('DB_USER', 'wpuser');/** MySQL database password */define('DB_PASSWORD', 'mypassword');. . .and append:
define('FS_METHOD', 'direct');The above line will allow us to install Plugins and Themes in Wordpress.
Copy the generated values and replace the dummy values at /var/www/html/example.com/wp-config.php
# mariadb -u root -pMariaDB> CREATE DATABASE example_database;MariaDB> GRANT ALL PRIVILEGES ON example_database.* TO "wpuser"@"localhost" IDENTIFIED BY "mypassword";MariaDB> FLUSH PRIVILEGES;MariaDB> EXITWhen finished, you can now login from http://localhost/example.com/wp-admin/index.php
Open the primary Apache configuration file to make our first change:
$ sudo nano /etc/apache2/apache2.confTo allow .htaccess files, we need to set the AllowOverride directive to All within a Directory block pointing to our document root. Towards the bottom of the file, add the following block:
<Directory /var/www/html/> AllowOverride All</Directory>Restart the Apache server:
$ sudo systemctl restart apache2Next, we can enable mod_rewrite so that we can utilize the WordPress permalink feature:
$ sudo a2enmod rewrite$ sudo chown -R www-data /var/www/html/example.comNow, go back the WordPress administration panel and apply the update.
When you are finished, lock the permissions down again for security:
$ sudo chown -R cheo /var/www/html/example.comThis should only be necessary when applying upgrades to WordPress itself.
Settings -> Reading -> Your homepage displays -> A static page -> Homepage: <select your page>
When initially creating the website, it is recommended to turn off Search Engine indexation:
Settings -> Reading -> Search Engine Visibility -> Discourage search engines from indexing this site
Clickeable Component -> Content -> Link -> #target_anchor
Target anchor component -> Advanced -> CSS ID -> target_anchor (without hash symbol)
Appearance -> Customize -> Top Bar -> General -> Enable Top Bar (uncheck)
Content to put before each post in the feed: %%POSTLINK%%
Content to put after each post in the feed: <p>Original article at <a href="https://mydomain.com/" rel="nofollow">My Site</a></p>
Appearance -> Menus -> Menu Structure -> Affected Page -> Disable link
Note: For the Astra Them and Plugins to work, php-xml extension must be installed in the server.
Themes -> Add New -> search for 'Astra' -> Install Now -> Activate
Plugins -> Add New -> search for 'Astra Starter Sites' -> Install Now
Appearance -> Astra Sites -> Elementor -> select Site -> Install Plugins -> Import This Site