See this topic for more information.
Blog
August 2022 work summary
I kept plenty busy in August, but not in the way I expected. First, with my major commercial client having deployed our project we’d been working on for 2.5 years, I figured that work had dried up. That was wrong. Second, without the client’s work the other work I figured wouldn’t amount to much so I’d have significant downtime. It didn’t work out that way because there was a ton of work for my major client that now seems to be wrapping up, things not noticed in testing and likely wouldn’t have been in until lots of people were using it.
The good news is that my client did a great job of deployment and there were no critical issues whatsoever after deployment. The testing was good and he went through a number of test deployments and automated everything he could with an Ansible script. It turned out that I was out of town at a funeral during the deployment, but he was able to handle it without my help.
So the post deployment work was generally a lot of analysis and retrofitting customizations via the extensions I wrote for him. There’s a close coupling between phpBB and the rest of the web site with a tight eCommerce integration. It turned out to be 45.5 hours of work, most of it after August 14, all of it at my commercial rate, which amounted to a heap of unexpected money.
Work for other clients was relatively minor:
- Rehosting from Network Solutions to A2 Hosting and a major upgrade of their phpBB board from version 3.0.11 to 3.3.8. The only way I found to backup the database was inside of phpBB. I tried to run the Support Toolkit but it failed. It turned out that it didn’t matter. It took me a while to figure out where the files were supposed to go on A2’s hosting, but eventually put files in the right place and the upgrade ran without errors. I noted a missing avatar. I also disabled the contact form.and removed some modules for dead modifications from phpBB 3.0.
- Updated a board from phpBB 3.3.6 to 3.3.8, and the Advanced BBCode Box extension to version 3.3.4 and sitelogo responsive extension to version 0.6.3. Also updated German language pack to 3.3.8. Initially I could not login to board. Looking at PHP error log it was due to three notification types being enabled for the PayPal donation extension which was disabled. I fixed it in the database and I was able to login. I reapplied stylesheet.css changes to the show the custom logo.
- Updated a board from phpBB 3.3.7 to 3.3.8. Client was still concerned about missing emails. I saw no issues of emails not going out in cPanel’s Email Deliverability area. It may be that users aren’t subscribing to forums? http links in emails should redirect to https based on a redirection rule I set up some days earlier. It turned out redirection needed to be configured to use a wildcard. I provided more guidance on emailing issues and using cPanel. The next day I did more fine tuning: I added the missing favicon.ico and made some edits to a new style he installed to show a custom logo. I somehow missed adding the American English language pack.
- Client got a HTTP 500 error. After investigation, I determined that files were missing in the /phpbb/cache folder. Once I got Dreamhost access, I determined the board’s version of phpBB was 3.3.4. So I uploaded the few missing files and that solved the problem.
- Updated a board from phpBB 3.3.0 to 3.3.8. I also updated the Google Analytics extension to version 1.0.6 and reapplied the logo. There was an issue with multiview not working in the .htaccess file. I removed that code and that HTTP 500 error went away. I think the hosting is configured strangely and that was the cause of that problem.
July 2022 work summary
July was busier than most recent months and had a frantic end to it. As a result, I’ve developed a backlog I’ll try to work through today and tomorrow. My work though for a major commercial client though is about to end. There may well be future work, but the plan is to deploy the upgrade to their phpBB 3.0 board on Saturday. I won’t do it because it’s mostly being done by an Ansible script my client created, but will be on standby as needed. I imagine they’ll want more changes at some point and will ask me to do them. It’s been a two and a half year endeavor, but not so much this year as the work was largely completed last year. This year has been about testing and bug fixing. Other work in July:
- A client was unable to get into the private messages inbox or do anything in the Administration Control Panel beyond the default page. The client had a WordPress plugin integrated with phpBB too. I did a lot of analysis and trial and error and did not quite fix the problem, but communicated the general issue was due to caching. Turning off CloudFlare and ModSecurity didn’t solve the issue and manually purging phpBB’s cache wouldn’t necessarily uncache changes I made to programs to test their functionality. At length, the client determined the issue was due to an adware tracking system the customer uses. It has some sort of cache that the customer was able to disable that allowed ACP access. So my role was to principally determine what the problem was not, which allowed him to eventually figure out where the problem lay.
- Updated a client from phpBB version 3.3.7 to 3.3.8. I also updated the Italian language pack to version 3.3.8 and Advertisement management extension to 2.0.6.
- Upgraded board from phpBB 3.2.3 to 3.3.8. The web host first changed PHP from 7.2 to 7.4. phpBB has a setting that allows user’s IPs to be checked against two large blacklists. Checking it against spamhaus.org was causing issues. So I disabled that setting in the ACP. I also removed a number of dead modules still in the ACP from an earlier phpBB 3.0 upgrade. I changed the spambot countermeasure to reCaptcha V3 and enabled it. I hid the phpBB logo on plain prosilver style. There was also an issue with very short ACP session times. I changed the cookie name but didn’t seem to help. I installed the American English language pack and latest version of the Cleantalk extension. I also removed the unused Digi style.
- Rehosed a board from Hostgator to a virtual private server on another host. The board had about 90,000 posts. It was mostly straightforward, but I had to load the database twice as some sort of error importing the database kept happening. Uploading the database without a zip archive worked. phpBB 3.3.3 was installed but the client did not want to upgrade to 3.3.8 at this time. There were also some Cloudflare DNS issue to sort through. The customer’s actions on Cloudflare seemed to make the changes that stuck. No SSL certificate was present but Cloudflare seemed to provide one.
- Rehosted a board from GoDaddy to a VPS on jetrails.com. Moving the database and files was at first straightforward using SSH and SFTP, but solving a SSL certificate and emailing issues took days of back and forth with the web host. Eventually I determined that I first had to create virtual name servers for the domain. Then there was a confusing process of how to configure the registrar to use them. I had to go through a confusing GoDaddy process to use custom nameservers and then needed the host’s help to figure out the remaining DNS issues, which meant two DNS records for the nameservers had to be added on their host. This then allowed me to create a SSL certificate. Setting up an email address on the VPS and getting the SMTP settings was also confusing. The domain was on one blacklist. The host removed it from the blacklist when I called their attention to it. But it didn’t immediately solve the email integration issue. Eventually I realized there was no admin email address created for the domain which I needed to get the SMTP email integration to work with phpBB. Created an email address called outgoing and that worked, although it initially directed emails to a spam folder.
- Updated a board from phpBB 3.3.4 to 3.3.8. I charged for two hours of troubleshooting for various emailing issues he was having.
- Client had a complaint of bounced digest emails for users whose subscription type was set to None. Couldn’t verify any recent occurrences. I changed the email package size from 0 to 20 after noticing one emailing error two days earlier on posting. Also updated my digests extension from version 3.3.11 to 3.3.15.
- Client reported that emails sent by phpBB weren’t going out. I eventually figured out SMTP was not being used so changed it to that, changed the port to 587 and changed the mail password. It then worked. Client used Bluehost hosting. When I called, I found their phone support was useless but online chat helped troubleshooting the emailing issue. Later updated phpBB from version 3.3.4 to 3.3.8 and the following extensions to latest versions: Media Embed, Lightbox and Advanced BBCode Box.
- At the very end of the month, I concluded a four day, time consuming, 25-hour project to integrate custom sidebar and other changes in a board upgraded from phpBB 3.0 to 3.3.8 by the client. I had to upload phpBB 3.3.8 source files again and run install program to show a phpBB 3.3.0 to 3.3.8 successful upgrade. Client chose the Prosilver Dark style. I made a custom style that inherited from it to which changes were applied. The work, conducted online via Skype for the most part, was frequently frustrating due to the client’s need to bring up the highly trafficked board with all its features as soon as possible. The whole process was quite inefficient. There was lots of back and forth, shifting requirements and technical approaches. I was originally going to use an extension to inject code into sidebars because PHP cannot be used in templates anymore with phpBB 3.3.8. But it turned out it was static HTML created with PHP so this could be copy and pasted. I then tried using an <iframe> tag for sidebars but there were scrolling issues with sidebar and main content being separate scroll areas. To be expeditious, a right sidebar project that served an ad was abandoned. The left sidebar needed the integration of menu, shout box and other customizations that were tightly coupled with other systems. Toward the end the client got another developer to fix a few issues with the chat box and scrolling that I couldn’t fix. There were lots of style tweaking and some template changes.
Digests 3.3.16 released
Details are here. You can download it from the extension’s page or from the GitHub branch. If downloaded from GitHub, the files are placed in the /ext/phpbbservices/digests folder.
June 2022 work summary
June turned out to be a slow month for paid work. I released two new versions of my two extensions, SCSS compiler and Notify admins on new error log entry. Other work:
- For my major commercial client, we are still in a testing phase. The good news is that the first user test was completed and required a few minor changes including a strange one where the cursor in the posting body field did not appear when the cursor was in the top left corner. Adding padding to the text area showed the cursor. A second user test is now beginning.
- GoDaddy removed a client’s phpBB config.php file. I had to re-create it for it to work correctly. This included changing the default table prefix and database user password. It also inspired this post. I also updated phpBB from version 3.3.2 to 3.3.7 and the American English language pack to 4.7.0.
- I had started to make some changes to a custom PHP script attached to a form to affect some changes wanted but the client later decided what he wanted was not possible and paid me for an hour of my time.
- Upgraded phpBB from version 3.2.8 to 3.3.7. I also changed PHP from version 7.1 to 8.0. I also had to install the American English language pack. The existing logo extension for phpBB 3.2 (RC) worked fine and no newer version was available. I changed the spambot countermeasure from GD to reCaptcha V3. User had a complaint that emails had http in the URLs. I set up a redirect to use https and that solved the problem.
- A GoDaddy SSL certificate expire. They don’t offer free self-renewing Let’s Encrypt certificates, probably because they prefer to gouge customers for overpriced $69 basic SSL certificates. It is technically possible to install Let’s Encrypt certificates manually on GoDaddy but it requires manually renewing certificates every 60 days, which was beyond the skill level of my client. So I bought her a 5-year certificate for $19.40 from ssls.com that will need to be renewed annually. I installed it successfully. I also forced http traffic to use https. I sent the client the certificate files I received and provided instructions for logging in to ssls.com and suggested she change the login and profile information. But she wants me to install the new certificates annual for her for a fee instead.
- Updated phpBB from version 3.3.3 to 3.3.7. Updated my digests extension from version 3.3.4 to 3.3.15 and the advertisement management extension from version 2.0.3 to 2.0.6.
My extensions popularity statistics
The phpBB Group keeps track of how many times an approved extension gets downloaded. I was surprised by how often some of my extensions have been downloaded as well as surprised that some, like my Digests extension which I’ve had the longest hasn’t been downloaded more often as it should be very useful. Filter by Country and Spam remover, both fairly recently extensions, have been big hits.
Here are my current download statistics:
- Spam remover: 167,434 downloads
- Filter by Country: 109,644 downloads
- Selective mass emails: 26,899 downloads
- Smartfeed: 3558 downloads
- Digests: 2122 downloads
Notify admins on new error log entries version 1.0.1 beta available
It can be downloaded from its page.
SCSS Compiler version 1.0.5 is released
The changes are discussed in this post. You can see screenshots and get more information and download the extension on the extension’s page.
Smartfeed 3.0.17 is approved
This version of my RSS/Atom customized feed extension has been approved by the phpBB Group’s extension review team and can be downloaded from its official web page on phpbb.com here.
How to re-create your config.php file
Occasionally I have a client whose config.php file gets deleted. This happened most recently to a client using GoDaddy for their hosting.
It’s hard to say why GoDaddy deleted it, but it wasn’t recoverable. If I had to guess, it’s because like most web hosts GoDaddy assumes everyone is running WordPress, which means phpBB gets short shrift.
Anyhow, it was gone and needed to be re-created but she had no idea how to do it. She did figure out its purpose. The config.php file sits in your phpBB root folder and its primary purpose is to connect your phpBB board with the correct database. So it’s absolutely essential and phpBB won’t work without it.
Start with an example file
Unfortunately, the config.php file is empty when setting up phpBB and gets created when you run the installation wizard. But here’s an example of a properly configured config.php file:
<?php // phpBB 3.3.x auto-generated configuration file // Do not change anything in this file! $dbms = 'phpbb\\db\\driver\\mysqli'; $dbhost = 'localhost'; $dbport = ''; $dbname = 'phpbb'; $dbuser = 'forum'; $dbpasswd = 'password123'; $table_prefix = 'phpbb_'; $phpbb_adm_relative_path = 'adm/'; $acm_type = 'phpbb\\cache\\driver\\file'; @define('PHPBB_INSTALLED', true); @define('PHPBB_ENVIRONMENT', 'production'); // @define('DEBUG_CONTAINER', true);
You can use your web host’s file manager to copy and paste this text. Obviously it will need some editing. You can also create it on your computer and upload it when done.
Check your database management system
Most phpBB boards are installed on a mySQL or MariaDB database management system. If so, leave the $dbms line unchanged. MariaDB is virtually identical to mySQL so it will use mySQL drivers. Otherwise you need to change this line to use your database management system. Use the following values:
$dbms = 'phpbb\\db\\driver\\mysqli'; // Use for mySQL or MariaDB $dbms = 'phpbb\\db\\driver\\postgres'; // Use for Postgres $dbms = 'phpbb\\db\\driver\\oracle'; // Use for Oracle $dbms = 'phpbb\\db\\driver\\sqlite3'; // Use for SQLite $dbms = 'phpbb\\db\\driver\\mssqlnative'; // Use for Microsoft SQL Server Native Driver $dbms = 'phpbb\\db\\driver\\mssql_odbc'; // Use for Microsoft SQL Server ODBC Driver $dbms = 'phpbb\\db\\driver\\mssql_base'; // Use for Microsoft SQL Server Base Driver
Check your host name
Generally, you don’t need to change your $dbhost line from localhost. If your database exists on a machine separate from the webserver, you’ll have to change it. You can often get this information in your web host control panel.
If all the other information is correct and you cannot connect, you will know this line has to be changed. Ask your web host the exact machine name if necessary. On my DreamHost hosting, it’s on a different machine, mysql.phpbbservices.com in my case. Simply edit the line if needed placing the machine name between the single quotes. You should not preface the machine name with http:// or https://.
Check your database port
You generally leave the $dbport line unchanged. The default database port for the database management system is used. For example, with mySQL it’s 3306. If the null string is set, the default port will be used. You can ask your web host if necessary if a different port should be used, but this is extremely unusual.
Find your database name
Generally you can use a web host control panel program like phpMyAdmin to browse your databases and determine the database name. Be careful. You may have old phpBB databases and you want to choose the right one. You can look at the number of rows in the posts table using a utility like phpMyAdmin to help you decide. Generally the database with the most rows in this table is the correct database to use. Replace the $dbname line with the correct database name, placing it between the single quotes.
Find your database user
The database user is not (usually) the same username you use to login to your board. This is the user that has privileges to access the database name found in the last step. Usually you can get this from your web host control panel.
In the most typical case, there is a MySQL databases icon you can click on. Find your database and see the username associated with the database. Replace the $dbuser line with the correct database user name, placing it between the single quotes.
This database user must have all privileges granted to your board’s database. You can check this in the same web interface.
If you have only command line access to your database, a short SQL query will show this information. For the configuration above and a mySQL database, for example, once logged into the database this command would work:
show grants for 'phpbb'@'localhost';
Set the database user’s password
If you don’t know the database user’s password, your web host control panel usually has an interface to change the database user’s existing password. Change it in this interface and replace $dbpasswd with the correct password, placing it between the single quotes.
Check the table prefix
If you used a utility like phpMyAdmin to browse your board’s tables, the $table_prefix line is easily discerned. All phpBB tables must have the same prefix. The default is phpbb_. If yours is different, replace it with the correct prefix, placing it between the single quotes.
Save the file and test
Generally at this point you save the file. To test, simply run index.php on your board and it should come up. Any errors that come up will hopefully point to where the problem is.
Occasionally, you may need to manually purge the cache to bring up your board. Delete all files in the /cache/production folder using a tool like FTP or your web host’s file manager. If queue.php exists, deleting this will remove any emails scheduled to go out, so you may not want to delete this file. Then refresh the index.php page in your browser.
You may notice other lines at the bottom of the config.php line. Generally these are left alone. But if you moved certain folders from their default location you might have to change these lines.
Check the config.php files permissions
This file must not be publicly writeable, so minimally its permissions should be set to 644 on Linux-based systems. You can use FTP or your web host control panel file manager to change its permissions.