Blog

Some pricing changes

I’ve upped some of my prices. You can see a list of all my prices on my services page.

I’m trying to recapture the labor involved in answering your questions prior to you hiring me. Not everyone who inquires of my services hires me of course. Typically there is at least an hour of time involved in back and forth emails with clients. This time was not built into my pricing structure, meaning I am effectively discounting my own labor rates by giving away this time for free.

So mostly this amounts to $10 or $20 increases for services I do most of the time, such as updates, upgrades, conversions and extension installations. My basic labor rate is unchanged. Obviously if you choose not to hire me you don’t have to pay anything. But if you do I want the work I do for you to reflect the full amount of my effort. And that typically involves at least an hour of back and forth communications over email, often more, usually over many days, as details about the work are refined.

My prices remain very competitive. If you can find a better deal out there, please go for it.

I also updated the page to discuss developing extensions for clients. In general I don’t do it, but I will refer you to other extension authors I trust. Mostly it’s due to a lack of time as developing extensions takes considerable time. Extension development is quite costly and most clients usually decide they cannot afford to have custom extensions developed anyhow.

January 2018 work summary

I didn’t do much work in January, mainly because I spent most of it on vacation: 19 days in total! It was a great vacation: a 16 day circuit of the Panama Canal on Holland America, from Fort Lauderdale to San Diego with lots of ports of call. In addition we stayed an extra day in San Diego to see its infamous zoo! I do have a few buns in the oven at the moment including a large project for a large client that I am starting work on that may take a month or two.

During my vacation my site’s certificate expired. I tried to fix the issue remotely when I had Internet, but just couldn’t do it with my Windows laptop. That may have cost me some business. It’s all fixed now.

On the infrastructure side, I upgraded my iMac to use a solid state drive. Things are so much spiffier now!

Before and after my vacation though I did squeeze in some jobs:

  • A client got rid of his forum due to low traffic but wanted me to do some WordPress work for him. He was been having WordPress security issues. I examined his WordPress .htaccess file. I found no issues there but redundant duplicate code was removed. I explained how the .htaccess file works and provided advice on updating, finding, fixing and proactively handling security for WordPress including Wordfence and UpdraftPlug plugins.
  • Two forums were upgraded for the same client, both from phpBB 3.0.12 to 3.2.1. Since the forums caters to German speakers, with the upgrade I installed two German language packs (casual and formal honorifics). On the first forum, I installed the prosilver_se style. I installed the Navbar search extension thinking it would help with styling but eventually disabled it as it was not needed. I changed style a bit to somewhat match old logo and background, experimenting with CSS until I found something that fit. Since the user could not login, I created a new account (after enabling registration) and gave myself founder privileges in the database. The next day I upgraded the second forum. I integrating the old logo but it did not look right with the new style. I tried changing the background color for the style but it still looked off. However, it was acceptable to the client. I then installed version 3.2.6 of my digest extension, and set up and tested the system cron job to ensure digests went out in the hour requested. I used curl and set the cron to run at top of the hour. I resolved a permissions issue that allowed any registered user to be a global moderator. There were some hosting issues: I could not find a link to cron in the web host control panel until the customer added it to my account. The next day I fixed a database issue: changed default for user_topic_sortby_type from m to t. This was apparently changed by some phpBB 3.0 mod. I updated the database to change this value to t for all users.
  • Troubleshooting. A forum gave a “is_dynamic missing” error message, which was actually a row in the phpbb config table. It took a bit of puzzling but it turned out that the forum’s config.php file was pointing to a phpBB2 database! No wonder the row was missing! I searched and found another database that looked like it had the tables for phpBB 3. But it was missing the last 5 tables. I found a copy of the database in the store folder dated 12-18-17. With customer’s permission, I reloaded that database. Bringing up board, the phpbb_login_attempts table was missing so I created it manually. I could not login with customer’s credentials so I created an account for myself and gave myself founder privileges via the database. The subsilver2 style was misidentified as Red Silver. I renamed it to subsilver2 in the database and enabled the Red Silver style. This fixed the styling issue and the site’s logo appeared in the header like before.
  • I upgraded a forum from phpBB 3.2.1 to 3.2.2. An issue with quoted characters repeating themselves horizontally and vertically, overwriting the quote, was solved with upgrade. Replicated logo in header and changes to footer. This was my first attempt to update to phpBB 3.2.2. I quickly learned that (a) the incremental update still does not work reliably and (b) you need to apply some patches. Other than that (to quote Monty Python), phpBB was perfectly fine!
  • I upgraded another forum from phpBB 3.2.1 to 3.2.2. Database updater failed due to timeout. The real issue were some bugs in 3.2.2 and had to apply some patches to complete the upgrade. I reapplied the logo. The search index erroneously pointed to nonexistent MySQL index. Pointed it to phpBB native and message went away.

End phpBB update styling rework with a custom style

Updated February 15, 2018 to add a few things.

Has this happened to you? You update phpBB to the latest version and find out that your custom logo or various style changes that you tediously made to phpBB are gone, or partially gone. It’s a common problem and one reason many forum owners defer updating phpBB.

You can end this hassle by creating and installing your own custom style. Using this approach your custom style inherits most of its styling from a primary phpBB style. You then selectively override the primary style’s CSS, HTML or Javascript with your own changes. This way when the primary style you use is changed, you don’t lose your custom changes. This also ensures that your styles and templates use the most current and approved code, which often includes security patches.

In this tutorial I will show how you can do this. I will keep my example simple by using my custom style to swap out the default phpBB logo with my own logo, sized to the new logo’s dimensions. In principle though you can go way beyond this simple use. For example, your custom style can overwrite the inherited style’s colors, padding and margins, or container widths and heights. You can also overwrite HTML and Javascript files.

Overview of steps required

The basic approach is:

  1. Make a note of all the changes you made to your style
  2. Reload your preferred style
  3. Create a custom style that inherits from your preferred style
  4. Override the preferred style’s stylesheet directives. This is best done by creating a stylesheet.css file for your custom style and placing your style customizations there.
  5. If you changed some templates, place the custom version of these templates in your custom style’s template directory. Frequently, forum owners will make changes to overall_header.html and overall_footer.html.
  6. Install the custom style
  7. Make the custom style the primary style
  8. Test and refine

Let’s delve into each step to see how this is done.

Make a note of all the changes you made to your style

You probably know what these changes are, but if you have any questions you can use a file comparison tool like WinMerge (for Windows) or kdiff3 (for pretty much any operating system) to compare your files with a reference version.

  1. Download your current style folder where you made all your custom changes, such as /styles/prosilver
  2. Download a reference version of your style for your current release of phpBB. phpBB keeps a list of its releases here. If your styles are based on prosilver then you would use the reference /styles/prosilver folder for your current release of phpBB. If using a different style, find the style version you used. You may have to download it from phpbb.com or from the style author’s website.
  3. Run the file comparison tool and note the changes you made so they can be reapplied in the custom style.

Reload your preferred style

  1. Make certain you have documented all the changes you made to your style. Once they are overwritten, you may not be able to recover them.
  2. Since you made changes to your preferred style, it’s a good time to undo them. The simplest way to upload the reference version of your style, replacing anything that’s there. Purge the cache. If you don’t see the style changes afterward, clear your browser’s cache and reload the page.

Create a custom style that inherits from your preferred style

  1. First review phpBB’s Creating & Modifying Styles page.
  2. Create a folder in the styles folder for the name of your style. In this example I keep it simple and call the folder “custom”, i.e. /styles/custom.
  3. Create a style.cfg file in this folder. Copy the style.cfg contents from your parent style’s style.cfg file. Below is the code in /styles/prosilver/style.cfg for phpBB 3.2, which I used because my “custom” style inherits from prosilver.
#
# phpBB Style Configuration File
#
# This file is part of the phpBB Forum Software package.
#
# @copyright (c) phpBB Limited <https://www.phpbb.com>
# @license GNU General Public License, version 2 (GPL-2.0)
#
# For full copyright and license information, please see
# the docs/CREDITS.txt file.
#
# At the left is the name, please do not change this
# At the right the value is entered
#
# Values get trimmed, if you want to add a space in front or at the end of
# the value, then enclose the value with single or double quotes.
# Single and double quotes do not need to be escaped.
#
#

# General Information about this style
name = prosilver
copyright = © phpBB Limited, 2007
style_version = 3.2.0
phpbb_version = 3.2.0

# Defining a different template bitfield
# template_bitfield = lNg=

# Parent style
# Set value to empty or to this style's name
# if this style does not have a parent style
parent = prosilver
  1. In my example I changed “name = prosilver” to “name = custom”. Since I want to inherit from prosilver I left the “parent = prosilver” line unchanged. If you are changing a style other than prosilver as the primary style, you need to change the parent style to the correct style name. It must match the parent folder name in the styles folder. You might also want to edit the copyright, style_version and phpbb_version lines. If it’s only for your own use, this is not necessary. Here are my changes:
# General Information about this style
name = custom
copyright = © Mark D. Hamill
style_version = 1.0.0
phpbb_version = 3.2.2

# Defining a different template bitfield
# template_bitfield = lNg=

# Parent style
# Set value to empty or to this style's name
# if this style does not have a parent style
parent = prosilver
  1. Save the file, making sure it is in the root folder for the custom style, e.g.: /styles/custom/style.cfg.

Override the preferred style’s stylesheet directives

  1. Create a theme folder for your style. In my example, this would be /styles/custom/theme.
  2. Create an images folder inside the theme folder. In my example, this would be /styles/custom/theme/images.
  3. If changing the logo, upload the logo you will use to /styles/custom/theme/images. Make a note of the image’s height and width as you will need this later.
  4. Create a file called stylesheet.css in the theme folder.
  5. To inherit styles from your parent style, you need an @import statement at the top of this file. For example, if prosilver is the preferred style, this line would be at the top of the file. Generally you just need to reference the stylesheet.css file in the parent style. You will have to amend the path so it finds the parent style’s stylesheet files. In my case for the @import line, I added “../../prosilver/theme/”. The ?v=3.2 indicates the version of phpBB expected, so it may have to be changed.
@import url("../../prosilver/theme/stylesheet.css?v=3.2");
  1. Any style changes that you want to override should now be appended to the end of this file. In the example of replacing the logo, in the prosilver style you would normally edit the .site_logo class in colours.css and common.css. In my case I added these lines at the end of my /styles/custom/theme/stylesheet.css file, which provides the correct image to use for the logo and its proper dimensions:
.site_logo {
    background-image: url("./images/mark.jpg");
    width: 181px;
    height: 229px;
}
  1. I then saved the file stylesheet.css with my changes.

Changing templates

In my example, since I am only replacing the logo so no template changes were needed. If you need to change templates there are two approaches.

  1. The simplest is to copy the template, for example, /styles/prosilver/template/overall_header.html to /styles/custom/template/overall_header.html. Then make the changes that you need to make and save the file. This has a downside: if there are changes made to this template with an update, your version won’t have them unless you manually inspect for any changes and apply them to your custom version.
  2. In many cases you want to insert some HTML or Javascript rather than change existing HTML or Javascript. In this case it’s better to use template events, if you can “hook into” an appropriate event. This way if the parent style is changed with an update, you don’t have to worry about replicating any changes to it in your style. For example, overall_header.html has a template event in it marked as <!– EVENT overall_header_head_append –>. In this case you could create an event folder in your template folder then create a file called /styles/custom/template/event/overall_header_head_append.html. Add whatever HTML you want inserted when this event is encountered into this file. A list of template events can be found here.

Install the custom style

  1. ACP > Customise > Style management > Install Styles
  2. Select the new style you created (“custom” in my example) by pressing the corresponding Install style link.

Make the custom style the primary style

ACP > General > Board configuration > Board settings. Generally you set the default style to your new custom style, the guest style to your new custom style and you may optionally want to set the override user style option to Yes. Submit the form.

Test and refine

You should not need to purge the cache if you make any stylesheet changes. However, if you make subsequent changes to any templates first purge the cache then test.

Approach when upgrading

This approach is unlikely to work correctly when upgrading. An upgrade is when you go from one minor release of phpBB to another, such as from 3.2 to 3.3. You can of course go through the process of creating a new custom style again. As for updates, this should work.

Enjoy!

December 2017 work summary

December was a very slow month. December often is as clients have other priorities as did I. I finished teaching a class and issues two new releases of my digests extension. Revenue-wise, 2017 was my best year so far. Here is a summary of my paid work in December. All client information has been anonymized. Since I will be on vacation for 18 days in January, I expect next month will be slow as well.

  • Undertook a painful upgrade of a forum from phpBB 3.0.1 to 3.2.1. It ended up taking most of the day. A database timeout meant I could not upgrade phpBB on the client’s site. So I had to extract the database, download it, recreate it on my machine and convert it there. Some tables requires multiple extracts to export due to timeouts. Because I have PHP 7 on my main computer and I needed to first upgrade the forum to phpBB 3.0.14 (which does not work on PHP 7), I had to do the conversion on my laptop. After I upgraded the forum on my laptop, extracting the database from the laptop turned out to be an issue until I explicitly told mysqldump to export as UTF 8 (UTF-16 was the default). This seems to be a MySQL peculiarity when it runs on Windows. In addition, the client’s file manager was rudimentary. All files had to move using FTP. Installed the Advertising Management extension and mChat extension but left client to configure. Client will handle styling. Upgraded PHP to 5.6 (was on 5.0).
  • Moved a forum from Westhost hosting to A2 hosting. Client had a temporary domain name on the new host. I first tried to upgrade forum on old server but it didn’t work. I created a new forum on new server but database and files were not moved by the new host. Client provided a copy of the database. I loaded it on local machine (3.1.9 database) and upgraded it there to 3.2.1. I then created a new forum database on new host. I populated it with upgraded database from my machine. I changed folder permissions to standard. Moved /files, /images and /store folders from old server. Changed Imagemagick path as it had changed so embedded images would display. Installed ID_Launch Fresh Style. Installed Google Analytics and Shareon extensions.
  • Installed Authorized for URLs extension. I went through the client’s numerous user groups and disabled privilege for bots, guests and newly registered users. I enabled extension to work for every other group. I provided instructions for its use.
  • Troubleshooting. Slow server, mostly manifested in slow database but also a lot of spam traffic. I discovered a WordPress temporary table issue. Two search tables in phpBB had repair issues as well; repairs would not stick for long. To keep a lot of the spam traffic from ever reaching the server, I installed Tapatalk both for WordPress and phpBB and enabled its spam firewall feature. I changed the storage engine for forum tables to use InnoDB. Converting the search tables to InnoDB required doing it from the command line as phpMyAdmin would time out.
  • Issue with routing and mChat on other than first page of the mChat display. Not sure what was causing issue is. .htaccess file for forum was missing uploaded it but didn’t solve the issue. Suggested disabling mod_rewrite. Installed SEO Sitemap extension and Italian language translation for it.

Digests 3.2.6 (RC13) released

This version incorporates the bug that the Czech translator for digests, Petr Hendl found and fixed. You can download it from GitHub or on my digests page.

In my testing I was only able to get digests to mail from my web server when the email package size was 0. I assumed this was something about how my web server email interface was configured, which I can’t control.

I also assumed that when $html_messenger->send() was called it placed it into the queue unless email_package_size = 0. It’s counter-intuitive to call $html_messenger->send() and then have to call $html_messenger->save_queue() afterward to ensure it gets in the queue. Thanks to Petr, he determined this was the way it is apparently done.

So if you are using digests, after you install this release feel free to change your email package size from 0.

Digests 3.2.5 (RC12) released

Digests version 3.2.5-RC12 is released! In addition, it’s been submitted for extension team review. With luck it may finally get approved. Given its complexity I expect they will reject it again. I expect it will take a few months to get a review, based on past experience.

You can download the archive from my digests page.

Not much new, fixed some bugs, most changes are to the ACP:

  • Templates were converted to use TWIG syntax. Minor HTML5 validation errors were also fixed.
  • Fixed bug in Edit Subscribers that would store a user_digest_send_hour_gmt outside the valid values of 0 – 23 in certain cases
  • Balance load now has individual columns to show daily, weekly and monthly subscribers for a particular hour rather than use bold and italics to distinguish digest types
  • Fixed bug in get_subscribers_for_hour function. The second parameter for the function is supposed to be an offset in hours from UTC.
  • ACP edit subscribers and balance load functions now have different background colors for alternating table rows
  • As many inline styles as possible were moved into stylesheets
  • Fixed various SQL statements to cast values into integers or floats explicitly. This is a phpBB coding standards requirement.
  • In the admin log, dates now actually show two digit months and day
  • includes/html_messenger.php, which overrides the messenger class, was updated to include new code added in /includes/functions_messenger.php since the html_messenger class was first created

November 2017 work summary

Business here at phpBB Services was a bit slow in November but it picked up toward the end of the month. It worked out to a nicely profitable month in the end. Here is a summary of the work done this month. All identifying client information has been withheld, of course:

  • Tried to fix more malware issues for a client who uses WordPress for a site to advertise his business. Because of the malware, his web host would not allow me access to the site to fix it, but they did provide a Dropbox with the files and identified the known files with vulnerabilities. Setting it up on my machine was complicated but I finally got it to work. I corrected the known problems and compared WordPress and all plugins with referenced files. I checked the database too for malware. I removed all unused themes, including one with a known vulnerability. I updated a few plugins and WordPress itself. I zipped everything up and sent it to the web host, who installed it and found no errors. But later on despite my best efforts and scanning all the files by the web host, the malware returned. The malware looked like it has been injected into a business theme. The frustrated client ditched WordPress. Not sure what he is using now but I think he moved to weebly.com. I can’t say I blame him. I tried to fix this for him as a favor. While I dabble in WordPress but don’t consider it an area where I have any particular expertise.
  • I installed the Advertising Management Extension on a forum running phpBB 3.2.1. I spent extra time troubleshooting and analyzing his ad placement questions … apparently there was an ad missing in the footer. I found one missing on the portal page and suggested checking his Adsense code to see if it is still correct, as it left a blank area on the page.
  • I upgraded a forum from phpBB 3.1.9 to 3.2.1. Since the client has a SCCS-based style, I reinstalled the Artodia SCCS compiler extension after the upgrade so I could give it the desired look. The colorizeit.com site unfortunately doesn’t work on phpBB 3.2 styles, so I looked at changes made originally using colorizeit.com to his Elegance style for 3.1 and replicated them for his Elegance style for phpBB 3.2, creating new custom style I called Elegance Orange. There were some issues with drop down controls and the style that the client noticed. Fortunately, I found a newer version maintained by another style artist that fixed these bugs. I installed that version of Elegance, made a new Elegance Orange style again and reapplied the code changes to the theme and templates. Customer satisfied!
  • Client had issues accessing tabs in the Administration Control Panel. I tried to look in the database using phpMyAdmin but got a token error trying to run phpMyAdmin. I figured the issue was with the database itself, so I repaired it outside of phpMyAdmin. There were still issues so I deleted the cache manually and the errors stopped. The client approved converting tables to InnoDB to reduce likelihood of further issues. I had to put Unix 777 permissions on the cache/production folder. For some reason they did not inherit. I recommended that the client complain to web host and ask to be moved to newer hardware and software as he was constantly running out of quota and they were using old Windows hosting.
  • I updated the Tapatalk extension from version 2.0.3 to 2.0.5 based on email client received from Tapatalk.
  • I moved a forum from FastComet hosting to TMD hosting, both the database and files including files for the website, not just for the forum. I changed the DNS in GoDaddy to point to the new hosting.
  • I updated the Tapatalk extension from version 2.0.3 to 2.0.5 for another client.
  • I installed the Advertisement Management Extension on a phpBB 3.2.1 forum using the standard prosilver style.
  • I installed my digests extension (version 3.2.4) on a new phpBB forum. There were some issues getting the cron to work right. It required a support ticket to the web host to get path to curl.
  • I updated a forum from phpBB 3.2.0 to 3.2.1. I had to upload all the files rather than the changed files because the upgrade would not work otherwise.
  • I upgraded forum from phpBB 3.0.10 to 3.2.1. Due to the high availability requirement of the forum, it was a two step process, first to verify it could be done at all. In the first step, I created a test database and copied the production database into it. This exposed MySQL shared hosting quota issues, so it took a while to copy all the tables correctly. Trying to recreate the search index on the test forum also caused MySQL quota issues. I installed the Flat style and integrated the old logo, changing some CSS to place the transparent logo image on a black background like before. Converting the production forum was straightforward. I placed a copy of files and database into a backup folder first. I copied theme as I configured it from test forum to save time. It all looked good so I deleted old database, the test forum folder and subdomain too.
  • Client worked with his web host to move his WordPress site and phpBB forum to a new server. The forum did not come up. Upon investigation, I determined that the forum’s files were moved but database hadn’t been moved. I exported the database from the old hosting and imported it into a new database on the new hosting. I edited the config.php file so it correctly connected with the new database. I purged cache manually otherwise the cached file would still try to connect to the old database. I set folder permissions correctly. I then upgraded the forum from phpBB 3.1.9 to 3.2.1. There were no complications, just one image to replace. Later the user discovered that post images weren’t showing. When I tried to bring up the forum but the phpBB3 folder was gone! I recovered it using File Manager. The post images still didn’t show. It turned out that the path to Imagemagick had changed from the old machine. Once the path to it was fixed the images showed. I also changed some settings to use the new security certificate installed.
  • I fixed a weird issue that developed with Forumrunner modification installed on a forum running phpBB 3.0.10. Forumrunner is similar to Tapatalk in that it allows a forum’s posts to be seen inside of a smartphone app. In the forum’s error log, I discovered an error that said the Forumrunner program expected to write to a missing fr_token column in a table. I scoured the web for a reference and found its datatype (tinyint), then added the column to the table with phpMyAdmin. It should make this issue go away. I also provided an estimate for upgrading to phpBB 3.2.1 but the client is not interested at this time. Hopefully there are no more Forumrunner issues like this!

Professionalizing your forum, part two

Since I wrote my first post about professionalizing your forum, I realized there are some other actions that will up your game in this area.

Monitor your domain for blacklisting

Blacklisting happens when users report to one or more blacklist sites that your site is sending out spam or contains malware. Generally you don’t get put on a blacklist inadvertently, so your site may have been hacked. It’s also possible that some email sent or reportedly sent from your domain were judged as spam or spam-like. It’s also possible of course that someone is falsely reporting your site to a blacklist. In any event being on a blacklist is not a mark of distinction. You need to monitor blacklists and take corrective action if your domain shows up on a list. Being on a blacklist can get your dropped from search engines or move way down in the rankings, as well as dramatically reduce site traffic.

Since you probably don’t want to check all the blacklists out there individually, there are services out there that can help you. If you have just one domain and getting one email a week is sufficient, you can use this site for free. They offer paid plans for multiple domains and more frequent checks, and there are other similar services so shop around.

To get yourself off a blacklist usually requires some explicit action on your part where you appeal or prove that the content does not or no longer exists.

Monitor, find and fix issues with Google Webmaster Tools

Google of course is constantly searching the web and indexing as much content on your site as you allow it to index. Google Webmaster Tools can find security issues with your site too, as well as tell you of issues like links that are bad that should be fixed.

To see reports about your domain you must take the time to register the site with Google, which can be done using a number of methods. Google will tell you if there are any critical issues but to do things like fix broken links you have to dig into their reports. Since most links on your site are going to be in posts posted by users to your forum, fixing these links is probably not worth the effort. However, there may be other links that are worth fixing.

Periodically check your WOT Rating

Browsers generally support a Web of Trust (WOT) extension. The extension allows users to easily say whether they trust your site or not. Since it’s an extension, you can install it in your favorite browser and when you are on your site monitor your reported trust status. If you notice your site trust level going down, you might want to see if there is a root cause and take appropriate actions.

There is some controversy about whether WOT can itself be trusted, since it was reported its developers were collecting your browser history without identifying information.

Use a sitemap

A sitemap indexes your forum’s content into a file that search engines like Google can read. It’s an authoritative way of describing the content on your site to search engines. There is a sitemap extension that works for phpBB 3.1 and reputedly 3.2 as well. Since it is simple to install, installing this one should be a no-brainer, providing you know about it!

Moderate, or take out the trash

A lot of administrators don’t even read their forums, or not all parts of it. It could be because the forum gets a lot of traffic and it’s a lot to keep up on. All forums should at least be moderated, either by an administrator or one or more global or forum-specific moderators. The moderation tools in phpBB are pretty good. They let users do a lot of the moderation for you by at least being able to report a post as inappropriate, spam or whatever. They won’t do this though unless you encourage them, so if this is important to you post a global announcement to this effect.

Disk space is cheap these days so moderation may seem like a lot of work. Why not just let people post whatever they want in whatever rambling way they want? For many forums this is fine, but for certain forums it’s not appropriate. You want the content to be relevant and that can be done by removing posts and topics that aren’t relevant.

Posts that seek to troll other users, inflame conversations and such are rarely desired. Here’s where you moderators can be of help, perhaps by empowering them to set up moderation guidelines for their forums setting the rules and then letting them wield the power. Hopefully this will translate into a better reputation for your forum and topics as search engines decide the content is more relevant.

As long as your moderation rules are clear, a well moderated forum where irrelevant stuff is regularly pruned is a good idea. It’s unlikely your readers want to read irrelevant content anyhow.

You might want to set up an off-topic forum for general banter, so your main forums can stay clean. Moderators may choose to move these topics into such a forum rather than remove them.

Consider pruning

phpBB has a rarely used pruning feature. It lets administrators throw out old content. This is rarely used for obvious reasons: old content is not necessarily irrelevant and it’s unlikely that you will hit some sort of quota for the size of your database. It’s possible that search engines will rank you higher if the old stuff is regularly pruned. Global pruning is an administrator responsibility. Topics can be pruned on various common sense criteria: days since there was a posting and days since someone last viewed the topic. You can prune announcements, stickies and old polls as part of pruning or not. To prune: ACP > Forums > Manage forums > Prune forums.

There is likely more to this topic that may generate future posts.

 

Professionalizing your forum

For many forum owners, their forum becomes a bit more than important. It may be a big feature of their website. It may be their website. It may contain crucial information to a very specific community. It may generate income. Or maybe its purpose is pure vanity but for whatever reason it means a lot to them. If you are one of these forum owners, you want it to gleam, seem always new and shiny, serve lots of users robustly and be reliable 24/7/365. How do you take your forum to the next level? How do you professionalize your forum?

This is not a discussion of how to better market your forum. I leave that for SEO experts with more expertise in the topic than I have. In truth most phpBB forums serve very specialized markets so they probably won’t grow beyond a certain size. Most of the forums I work on have under 100,000 posts, even if they have been around for a decade or more. I get plenty of forums in the 200,000-300,000 posts range, but it’s rare to see a forum with 500,000 or more posts.

You may already be doing some of these practices. If you have the time, energy and money you might want to implement all of these suggestions.

Styling

Your style presents a first impression. The default style for phpBB is prosilver. It looks nice, if you like a blue style with a hint of grey. There are plenty of free styles to choose from, but also paid styles as well. The paid styles may be worth investing some money in. Some are extra slick, using advanced CSS practices so that styles not only look good, but are applied quickly and intelligently. For more information, see my styling post. Going the extra mile here might be to pay one of these style vendors to custom fit a style so that it integrates slickly into your larger website or to give your forum a unique look. It may be worth the extra cost.

Collect metrics

If you are not collecting metrics on the usage of your website, you probably should be. Yes, you can see the number of new topics and posts by visiting the forum but it doesn’t tell you (at least not easily) which topics are most popular or answer other questions. Google Analytics is the 800-pound gorilla in the web analytics area. There is an extension you can add to phpBB that will report your forum’s usage to Google Analytics. But there are plenty of alternatives. Some like to keep it simple, using a service like Statcounter. Quantcast offers a more Google-Analytics experience. There are plenty of other analytic services you can use too. However, to add the code needed to capture this information usually requires editing your forum’s overall_header.html template, overall_footer.html template or both.

Understanding these reports can be too much information, but all handle the basics such as showing popular posts, visitors and common search engine terms. A careful analysis may reveal trends that you may want to exploit. For example, popular search term might suggest creating additional topics in this area to help build site traffic.

Extend your forum

phpBB Extensions allow you to offer additional functionality beyond what comes “out of the box” with phpBB. Installing extensions isn’t hard and official extensions are free and rigorously tested by the phpBB group, so you know they are unlikely to have vulnerabilities. You might want to read my post on extensions. While you should not install extensions willy nilly as they comes with some cost and risks, there are many top-notch extensions such as the recently released Advertisement Management extension that makes it easy to place ads on your forum.

Change your hosting

If you are happy with your hosting and neither users nor you are noticing any issues with performance or page speed, by all means keep your current host. Rehosting a forum is not simple as it involved moving both files and the database, plus changing your DNS to point to the new hosting. There are also costs to acquire a new hosting contract. The phpBB group has a rehosting knowledge base article if you want to try it yourself.

I have some hosting recommendations on my services page. The phpBB group has some more, but bear in mind they get some revenue if you get hosting by following their links. New hosts will often move a forum for free to get your business, at least if you ask them nicely. I also offer a rehosting service with prices starting at $50.

Monitor your forum

You obviously can’t be on your forum all the time to see if it is up and working correctly. You might want to know if there is a problem accessing the forum. Site monitoring services can do this for you. Some are free, some not, and the features vary a bit.

I like Uptime Robot because it is free and has proved reliable, but it checks at a maximum of every five minutes. It sends me emails when my site is down and another email when it is up. Most of these services provide basic tests, with the most basic test being does the index page come up. It’s possible that there problems might affect a particular part of the website, like posting or the Administration Control Panel. These services can’t usually be configured to do these kinds of tests, but they do provide some basic service to let you know if the site is up or down.

I have found many of the times my site is “down” it comes “up” minutes later. These are usually problems related to brief patches being applied by the web host and they are hoping no one will notice. If there is a major incident underway, these services will at least let you know. Your web host may not know there is a problem.

Hint: make sure you choose a HTTP test if offered. You want to know if a web page can be returned, like the index.php page. Simply having a service ping your domain is a poor test.

Update the forum regularly

Just like it’s a good idea to get your car’s oil changed regularly, it’s a good idea to update your forum when new micro versions are released. Bugs get fixed but more importantly there are occasional security issues that get fixed too. The phpBB group keeps trying to simplify the update process but it seems to be an uphill climb. There are little landmines that can trip you up. You can read the official update instructions. An upgrade is moving from one minor version of phpBB to another (like 3.1 to 3.2). Here you don’t need to be one of the first to upgrade. Upgrades sometimes have issues with the first version, so lagging a bit behind may be a virtue. You might want to wait for the 3.x.1 release.

Most of my business is upgrades, so I am happy to do these for you if you want. Or you can try the official upgrade instructions.

When you go into the Administration Control Panel, it will tell you if there is a new update or upgrade to phpBB. If you don’t often go into the ACP, you may prefer to get official notifications instead. You can subscribe to the phpBB blog with your favorite newsreader where new releases are announced. phpBB also has a Twitter feed and is on Facebook.

Keep your web server properly maintained

Typically you do not own and manage the web server on which your forum resides. If you have shared hosting, it’s the responsibility of the web host to update the software on which phpBB depends. You can monitor the key software needed to run the forum and complain or rehost if the web host gets too far behind. A lot of this information is available in the Administration Control Panel under PHP Information. Check your version of MySQL (if you are using it as your database) with the current generally available community edition available from Oracle and complain if you are a few versions behind. If using MariaDB, you can see community editions here.

If you have a virtual server or a dedicated server, you may need a hosting contract to provide these updates as a service. This can get pricey. A good system administrator will keep your operating system, database, control panel and PHP up to date and regularly patched.

One easy way to increase performance if you have phpBB 3.2 or above is to use PHP 7. It should add about a 50% increase in performance compared with PHP 5.x. You can usually change this in the web host control panel, but it may require a support ticket with your web host. Be careful though to ensure that other software you use on your site can handle PHP 7.

Backup your files and database

Most web host control panels provide built-in solutions for backing up your site, including your database. Sometimes this can only be done manually. Ideally you would like an automated backup, storing multiple versions. At a minimum, back up your site monthly and ideally keep two other previous versions.

phpBB does let you backup your database manually: ACP > Maintenance > Database > Backup. You can store the backup on your server or download it. This won’t backup your forum’s file too. There is a useful extension to backup your database using phpBB’s cron process. As of this writing though it works on phpBB 3.1 only.

The key items to backup are the /files, /images and /store folders and the config.php file. The rest of the files and folders are software and can be recreated from a reference if needed.