Newcomers and converts to WordPress usually find themselves baffled over how WordPress interlopes with other server-side components such as PHP and MySQL. Guide books for beginners, such as WordPress For Dummies and Head First WordPress insist that beginners should blindly implement certain server-side configurations, and that fully understanding them is not neccessary for the operation of a WordPress website. While its true that understanding WordPress’ relationship with PHP and MySQL is not neccessary for operating a WordPress site, there are those of us who want to peek under the hood. Unfortunately, what lies under the hood is usually represented by complex diagrams and schematics, supplemented by pages of programming jargon. The following is an attempt to better visualize WordPress by blurring the boundary between art and abstraction.
Visualizing WordPress by Hamad Subani is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.
Based on a work at https://www.techtangerine.com/wordpress.
Permissions beyond the scope of this license may be available at https://www.techtangerine.com/contact.
Components of WordPress
The WordPress Installation
This is the ~10MB of WordPress files that constitute your WordPress installation. They reside on your personal webspace.
PHP is a server-side scripting language that runs on your webhost’s server (usually on Linux). On its own, PHP is usually too complex and too fragmented for creating dynamic websites. WordPress harnesses the power of PHP by acting as a medium through which some very specific and useful functions of PHP can be accessed and deployed.
MySQL is a database that resides on your personal webspace. This is where WordPress stores most of the content of your website (excluding graphics). When you access a WordPress website, the dynamic content is pulled from the MySQL database, while WordPress components remain static. This is what allows WordPress themes to be so easily changed, like skins. But as your database grows in size, pulling content from it can also slow down WordPress, which is why caching is neccessary.
Sub-Components of WordPress
Wp-config is a WordPress file that is used by WordPress to access the MySQL database. It resides in your personal webpsace.
.htaccess is a PHP component that resides in your personal webpace and controls access to your WordPress website. WordPress makes limited (but essential) use of it. However, it has powerful capabilities, and is often modified by some WordPress users to act as a firewall, and to block remote linking of images.
I appreciate the visualization and the work that you put into the artistry. However, it does make it look like the whole mechanism is a dirty-output manufacturing device. I don’t know if I’d like to give that impression to my clients.
Otherwise, you did a great job showing the relationships. Thanks, Hamad.
Hi there. At the end of the day, I still see WordPress as a lean, mean, machine. But of course, to each his own.
.htaccess is an Apache configuration file. It has little to do with PHP.