Installing Wordpress CMS
Wordpress is a common blog system that can also be used for simple websites. Fedora includes an RPM package, so the installation is very simplified. This article focuses on Fedora-specific implementation details.
Wordpress is a widely used application and there is a corresponding amount of information on the Internet. The Wordpress project itself provides extensive upstream documentation.
For the sake of completeness: Even though Wordpress is widely used, you should carefully consider whether you really need a dynamic CMS that generates every page with every request anew.
|
The Fedora Wordpress RPM installs a closely upstream Wordpress while integrating as smoothly as possible into the Fedora runtime environment.
Another good first overview provides the Fedora Magazine article How to install WordPress on Fedora (2017).
Prerequisites
-
We assume a correctly installed Fedora Server Edition release 38 or 39. For details see Fedora Server Installation Guide.
-
Wordpress stores most of the content in a database. Accordingly, it requires access to a working database system and doesn’t even startup without. Currently, it no longer enables to use PostgreSQL, the Fedora Server Edition preferred and specifically supported database system. It just supports MariaDB or MySQL, which are included in Fedora as well.
So you have to install either MariaDB or MySQL following Installing MySQL/MariaDB. In terms of Wordpress, both systems work equally smoothly. Following Fedoras preferrence for truely OSS software we use MariaDB here.
Before you start installation, create the required storage. The easiest and quickest way is to use Cockpit (select the storage tab and then the appropriate Volume Group in the upper right corner).
-
Furthermore, Wordpress needs a web server to deliver the pages. Fedora Server Edition and the Fedora WordPress package support httpd, the Fedora version of the Apache Web server. Of course, other Web servers are also possible here. You will then have to do the adaptation to Wordpress yourself.
If not already done install the Fedora Web Server package. If your server will just server the Wordpress site, you may omit the section "Setup a Web site".
Installing Wordpress
-
Install the WordPress Package. It automatically installs PHP as a dependency, too.
[…]# dnf install wordpress
-
Add a database and a database user for Wordpress to the MariaDB DB.
[…]# mysql -u root MariaDB [(none)]> show databases; MariaDB [(none)]> CREATE DATABASE wordpress ; MariaDB [(none)]> CREATE USER 'wordpress' IDENTIFIED BY 'wp-test-proj'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'; MariaDB [(none)]> quit; […]#
-
Check the database connectivity via TCP/IP
[…]$ mysql -u wordpress wordpress -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 18 Server version: 10.5.20-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.‘ MariaDB [wordpress]> quit […]$
-
Configure Wordpress to access the database defined above
Edit the Wordpress configuration file which is in Fedora stored at /etc/wordpress (to achieve full Fedora integration).
[…]# vim /etc/wordpress/wp-config.php define( 'DB_NAME', 'xxxxx' ); define( 'DB_USER', 'xxxx' ); define( 'DB_PASSWORD', 'xxxxxxxx' ); define( 'DB_HOST', 'xxxx' );
-
Enabling public access
For security reasons, the default configuration restricts access to the local system, which is usually not why you install Wordpress. You have to edit the cpnfiguration file.
[…]# vim /etc/httpd/conf.d/wordpress.conf Alias /wordpress /usr/share/wordpress # Access is only allowed via local access # Change this once configured <Directory /usr/share/wordpress> AllowOverride Options #Require local # <== mod Require all granted # <== add </Directory>
-
Protect your site during configuration and development
Usually, it takes some time to configure the site and especially to develop the content. During this period you may want to restrict access to developers and peers only.
Modify the configuration file further and append at the end:
[…]# vim /etc/httpd/conf.d/wordpress.conf Alias /wordpress /usr/share/wordpress # Access is only allowed via local access # Change this once configured ... ... </FilesMatch> </Directory> ## Append the following lines to temporarily ## protect access to the wordpress page <Location /wordpress> AuthType Basic AuthName "Access for developers only" AuthUserFile auth.d/validusers Require valid-user </Location>
Provide authentication information
[…]# mkdir /etc/httpd/auth.d […]# htpasswd -c /etc/httpd/auth.d/validusers {USER} New password: Re-type new password:
-
Finally start the Web Server
[…]# systemctl enable httpd […]# systemctl start httpd […]# systemctl status httpd
Check out and configure your site
-
On your desktop open a Broser and navigate to the base address of the site you just configured:
http://example.com
Note: Currently no SSL access is defined, only http protocol is available.
The Fedora default page is displayed.
-
Your wordpress installation is available at
http://example.com/wordpress
If you implemented the access restriction as proposed, you get the default Apache login screen. Otherwise and after authentication you see the basic Wordpress graphical configuration page.
Complete the various items as appropriate.
Final fine tuning
After completing the site design and content and launching the site, you may want to adjust various parameters to your liking. Among others
-
Customize the base address
Specifically you want to modify the base address of your Wordpress site, from wordpress to e.g. mycuteblog. Edit the Wordpress Apache configuration file:
[…]# vim /etc/httpd/conf.d/wordpress.conf ## Alias /wordpress /usr/share/wordpress # <== Mod Alias /mycuteblog /usr/share/wordpress # <== Add […]# systemctl restart httpd
-
Alternatively you may want to access the Wordpress pages at your servers base address, example.com in this guide. Again, modify the Wordpress Apache configuration file.
[…]# vim /etc/httpd/conf.d/wordpress.conf ## Alias /wordpress /usr/share/wordpress # <== Mod ## Access wordpress via base address instead # <== Add DocumentRoot /usr/share/wordpress # <== Add […]# systemctl restart httpd
Want to help? Learn how to contribute to Fedora Docs ›