Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


phpBB 3 Development: phpBB is a popular open-source bulletin board written in PHP. This repository also contains the history of version 2.

Subscribe to updates I use phpbb

Statistics on phpbb

Number of watchers on Github 1086
Number of open issues 63
Main language PHP
Average time to merge a PR 5 days
Open pull requests 311+
Closed pull requests 109+
Last commit over 1 year ago
Repo Created over 9 years ago
Repo Last Updated over 1 year ago
Size 61.5 MB
Organization / Authorphpbb
Page Updated
Do you use phpbb? Leave a review!
View open issues (63)
View phpbb activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating phpbb for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)



phpBB is a free open-source bulletin board written in PHP.


Get your copy of phpBB, find support and lots more on! Discuss the development on area51.


To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.

cd phpBB
php ../composer.phar install


  1. Create an account on
  2. Create a ticket (unless there already is one)
  3. Read our Coding guidelines and Git Contribution Guidelines
  4. Send us a pull request


Read our Vagrant documentation to find out how to use Vagrant to develop and contribute to phpBB.


We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration here or check our travis builds below:

  • Build StatusBuild status master - Latest development version
  • Build StatusBuild status 3.2.x - Development of version 3.2.x
  • Build Status 3.1.x - Development of version 3.1.x


GNU General Public License v2

phpbb open pull requests (View All Pulls)
  • [ticket/14471] Add $filedata to core.avatar_driver_upload_move_file_before event
  • [ticket/14466] Add an event to cron.php
  • [ticket/14462] Try to prevent timeouts in the installer
  • Update acp_attachments.php
  • [ticket/14315] Correctly set permission roles for multiple groups
  • [ticket/14457] Uses a random placeholder to inject css and js
  • [ticket/14447] Remove trailing white spaces in Prosilver
  • [ticket/14443] Introduce additional parameter to messenger
  • [TEST] Scripts to run the tests with docker
  • [ticket/14129] Cache custom extensions autoloaders
  • [ticket/14435] Wrap all fron controllers by HttpKernel
  • cmd+enter to submit message
  • [ticket/10824] Use composer.json in styles/languages
  • [ticket/14416] footer nav links have incorrect tooltip styling applied
  • Remove span corners
  • [ticket/14395] Add event core.viewtopic_add_quickmod_option_after
  • [ticket/14286] Move create_thumbnail() into classes and split resize into own class
  • [ticket/14372] Include functions_content.php into phpBB/bin/phpbbcli.php
  • [ticket/14366] Add core events to the function decode_message()
  • [ticket/14365] Add core event to the function topic_review()
  • [ticket/14361] Prevent PM count from going negative
  • [ticket/14316] Add events before/after the custom/zebra fields in pfile view
  • [ticket/14272] Use html5 valid input elements
  • [ticket/14268] SVG version of icons
  • fix invalid redirect from http://... to https://...:80 when host is u…
  • [Ticket/14203]Modularize and fix paging styling
  • [ticket/14204]Fix form buttons to use consistent button codebase
  • [ticket/14189] Add core.gen_sort_selects_after event
  • [ticket/11150] Install extensions through composer
  • [ticket/13716] Check phpBB version constant against config version
  • [ticket/14483] Do not send headers by default on access via controller
  • [ticket/14514] Don't skip users when converting passwords
  • [ticket/13972] Change hard coded time check to use flood interval
  • [ticket/12684] Add console command user:add
  • [ticket/14459] Check language inpunt for group
  • [ticket/14497] Support second app.php script in install folder
  • [ticket/14496] Cache last update of update list instead of using filemtime
  • [ticket/14437] Correctly assume index from attachment display order
  • [ticket/14492] Improve send stats page and include VigLink
  • [ticket/13842] Prevent internal server errors without rewrite module on IIS
  • [ticket/14486] Add an event and fix an event in login_box()
  • [ticket/14481] Respect HTTP_X_FORWARDED headers for implying https
  • [ticket/14149] Serve concatenated/minified/compressed css
  • [ticket/12911] Add SVG Icons
  • [ticket/13716] Check phpBB version against config version
  • [ticket/14198] Use the build option to calculate the container cache filename
  • [ticket/14408] Remove span tags from file
  • [ticket/14581] Add core events to content_visibility.
  • [ticket/10809] Remove MSSQL support
  • [ticket/10436] Move get_database_size() into phpbb\db\tools\tools
  • [ticket/13683]Β Respects force_server_vars settings when generating URLs
  • [ticket/13683]Β Respects force_server_vars settings when generating URLs
  • [ticket/13616] Uses symfony/proxy-manager-bridge to lazy load twig lexer
  • [ticket/9674] Use poster auth instead of current user auth
  • [ticket/14547] Add Vagrant support to phpBB
  • [ticket/14542] Move cron to controller
  • [ticket/10432] Don't require username when user forgets password
  • [Ticket/14131] Completely overhaul all colors in Colours.css
  • [ticket/12610] Add command to check if the board is up to date.
  • [ticket/14628] Supports translatable error messages in the CLI installer
  • [ticket/14624] Add event to ucp_profile in signature section
  • [ticket/14626] Event core.make_jumpbox_modify_tpl_ary
  • [ticket/14625] Event core.viewtopic_modify_tpl_ary
  • [ticket/14620] Change docs/ and files to 3.2.x
  • [ticket/14415] Adds data-ajax="mark_topics_read" to link "mark_all_read"
  • invalid redirect login or logout from HTTPS page
  • [3.1.x] Fixed auto-prune failing on large forums.
  • [ticket/14612] Fix incorrect class for fieldset in mcp_approve.html
  • [ticket/14596] Deny installation of Ascraeus under PHP 7
  • [ticket/14548] Move deprecated globals and functions
  • [ticket/14638] New UCP hooks for subscriptions
  • [ticket/14630] Add event to modify pm message
  • [ticket/14291] Do not update filesize if displaying thumbnail
  • [ticket/14586] Add OAuth1 support
  • [ticket/14643] Offer latest backup to restore by default
  • [ticket/14654] Change Imagemagick to ImageMagick
  • [ticket/14655] Change CTRL to Ctrl
  • [ticket/10961] Send HTTP 403 when applicable
  • Use HTTP GET instead of POST in topics sort
  • Add viewforum_body_topicrow_before template event
  • Add mcp_move_before template event
  • Fix typos in core.index_modify_birthdays_list vars descriptions
  • [ticket/13978] Add core.ucp_profile_modify_signature_sql_ary
  • [ticket/14429] Add core.obtain_users_online_string_before_modify
  • [ticket/13865] Add id_ary, show_results to core.search_modify_param_before
  • [ticket/14640] Changes docu-link in language/en/install.php from 3.3 to 3.2
  • [ticket/14516] Add memberlist_email_before event
  • [ticket/14615] Fix HTML5 validation errors on avatar deletion
  • Update board.php
  • [ticket/14672] Add template event after topic title
  • [ticket/14670] Use symfony 3.x in master brancher
  • [ticket/14665] Remove invalid syntax in report_id_auto_increment migration
  • [ticket/14631] Load truncate_string() if needed
  • [ticket/14616] Fixed auto-prune failing on large forums
  • [ticket/14695] Add posting_editor_subject_prepend/append template events
  • [ticket/14694] User DateTimeZone warnings.
  • Duplicate subexpression in questionnaire.php
  • [ticket/14689] Build API docs for 3.2.x
  • [ticket/14688] Add core events to the feeds
  • [ticket/14687] Modify viewforum_modify_topicrow event
  • [ticket/14685] Add viewforum_get_announcement_topic_ids_data event
  • [ticket/14678] Forum title hidden on viewforum without f_list permission
  • [ticket/14184] Add a _EXPLAIN translation entry for the SMTP server option
  • [ticket/14715] Add template events in posting_topic_review & mcp_topic
  • [ticket/14700] Prevent an exception on duplicate smilies in text_formatter
  • [ticket/14703] Fix parent module selection for custom extension modules
  • Ticket/14638 3.1.x New UCP hooks for subscriptions
  • [ticket/14727] Event core.search_modify_submit_parameters
  • [ticket/14484] Add possibility to use extensions in UI tests
  • Update log.php
  • [ticket/14592] [PHP] core.search_backend_search_after
  • Support pre-submit Spam checking
  • [ticket/14573] Extend breadcrumb to support more pages
  • [ticket/14581] Add core events to content_visibility
  • [ticket/14733] Support increasing hashing cost factor
  • [ticket/14738] Add core events to improve modifying forum lists
  • [ticket/14774] Support partial downloads of attachments
  • [RFC] Add support for playing audio files directly in phpBB
  • [ticket/12133] fix download file names for WebKit-derived browsers
  • [ticket/14747] Add post_data to core.modify_posting_auth
  • [ticket/14762] Add core event to session.php
  • [ticket/14755] Fix max length in mcp topic html file
  • [ticket/14748] Make sure config values are casted to int
  • optimize generate_board_url function
  • [ticket/14814] Fix reparser cron
  • [ticket/14808] Add template event overall_header_searchbox_after
  • [ticket/14804] Add core event to MCP after merging topics
  • [ticket/11063] Use HTTPS for phpBB's version check
  • [ticket/14780] Correction to let group setting overwrite global PM setting
  • [ticket/14108] MySQL search backend add post_text index
  • [ticket/9687] Refactoring banning
  • [ticket/12291] Allow extensions to use custom topic icons and smilies
  • [ticket/13853] Flexible schema for profilefields step 1 configuration
  • [ticket/13944] Fix the test framework compatibility with Oracle
  • [ticket/14831] Make sure migrations always start with backslash
  • [ticket/14830] Fix FORM_INVALID error during some ACP setting operations
  • Add core.auth_oauth_login_after and core.auth_oauth_link_after
  • [ticket/11483] Generate user act key if database entry is empty
  • [ticket/14795] Use maximum topic views instead of adding up views in merge
  • [ticket/14823] Move check_form_key() inside actual save data step
  • [ticket/14750] Remove html5 invalid attributes from attachment file input
  • [ticket/14819] Hide soft-deleted posts in topic review
  • [ticket/14860] Broken link on subscriptions page on mobile devices
  • [ticket/14859] Send notifications for PM reports to all users with correct permissions
  • [ticket/14855] Update notification and PM alert bubbles
  • [ticket/14853] Add core event to allow modifying PM attachments download auth
  • [ticket/14852] Add core event to modify email headers
  • [ticket/14716] Update dependencies to latest versions
  • [ticket/14851] Add core.avatar_upload
  • [ticket/14850] Add events to override root_path for smilies
  • Ticket/14845 Add setting to turn off last-post check when normal user deletes own post
  • [ticket/14849] Add core.acp_extensions_run_action
  • [ticket/14848] Add acp_ext_list_disabled/enabled_title_after
  • [ticket/14847] Add core.acp_attachments_config_edit_add
  • [ticket/14844] Replace <strong> and <em> tag with <span> and CSS in b…
  • [ticket/14557] Simplify updating overloaded events for extensions
  • [ticket/14520] Add ucp_pm_viewmessage_options_before
  • [ticket/14468] Add forum_id to core.viewforum_modify_topics_data
  • [ticket/14390] Add ucp_main_front_user_activity_append/prepend
  • [ticket/14239] Add core.ucp_remind_modify_select_sql
  • [ticket/14119] Add core.user_unban
  • [ticket/13479] Add core.viewtopic_highlight_modify
  • [ticket/13429] Replace @changed with @change in event docblocks
  • [ticket/13149] Add core.phpbb_log_get_topic_auth_sql_before
  • [ticket/14868] Add mcp_forum_actions_options template event
  • [ticket/14870] Add events to ucp_pm_viewfolder:get_pm_from
  • [ticket/14869] Allows DEBUG and DEBUG_ERROR_LEVEL to be used
  • [ticket/14867] Revert back to twig 1.26.* and update dependencies
  • [ticket/14759] Add core.mcp_main_modify_shadow_sql event
  • [ticket/14760] Add core.mcp_main_modify_fork_sql event
  • [ticket/14863] Properly treat plural rules in confirmation box title
  • [ticket/14865] Use Stylelint for managing CSS
  • [ticket/9211] Use different icon for link subforum in forum legend
  • [ticket/13757] Prevents the count of unread PMs from being negative
  • [ticket/14883] Do not display empty forum rules (after they've been re-parsed)
  • [ticket/6641] Remove iso-8859-8-i conversion in utf8_recode()
  • [ticket/14882] Add core event to MCP after move post sync
  • [ticket/9590] Submit permissions form in chunks -- Rhea version
  • [ticket/14873] Added width/height attributes to smilies
  • [ticket/9590] Submit permissions form in chunks
  • [ticket/14875] Add method for untrimmed input to ajax iohandler
  • [ticket/14874] Increase size of emotion
  • Add ability for template events to be sortable
  • [ticket/13845] Add core.ucp_profile_avatar_sql
  • [ticket/14331] Add core.get_user_rank_after
  • [ticket/14522] Add ucp_register_buttons_before
  • [ticket/14524] Add core.ucp_register_requests_after
  • [ticket/14662] Add memberlist_team_username_prepend/append
  • [ticket/14817] Add core.send_file_to_browser_before
  • [ticket/15012] Use valid constructor in ftp_file_updater
  • [ticket/15011] Error not checked on metadata load failure
  • [ticket/15009] Inconsistency all_configured all_available
  • [ticket/15002] Show topic icons in search results
  • Update admin.css
  • [ticket/14999] Correct Next PM Iconography
  • [ticket/14996] Add Event for search_results_topictitle_after
  • [ticket/14995] Add ACP template events acp_ext_list_*_name_after
  • [ticket/14997] Fixing Event Position
  • [ticket/14994] Refactor template->assign_block_var
  • [ticket/14990] Add core events to the Twig environment
  • [ticket/14989] Allow more admin-configurable schemes in post links
  • [ticket/14985] Decode HTML special chars in plain text columns
  • [ticket/14984] Correct wrong arrow direction in PM inbox
  • [ticket/14975] Correct RTL style css
  • [ticket/14981] Update nomalize.css to v5.0
  • [Ticket/14976] Convert all ems to px
  • [ticket/14972] PHP 7.2 compatibility
  • [ticket/14970] Use in travis CI builds
  • [ticket/14950] Add possibility to delete a template block
  • [ticket/14943] Fix template loop access by index
  • [ticket/13344] Add core event to acp/info/acp_logs.php
  • [ticket/13867] Enable/disable mechanism for new profile field types
  • [ticket/14935] Correct get_valid_name to avoid system hang when migration dependency hasn't sarted with backslash
  • [ticket/14944] Add search for template loop indexes by key
  • [ticket/14938] Inconsistency in ext_mgr all_available vs is_available
  • [ticket/14929] Add error to core.posting_modify_message_text
  • [ticket/14924] changes core.user_add_modify_data
  • [ticket/14919] Do not directly use globals in acp_extensions
  • [ticket/14849] Add core.acp_extensions_run_action
  • [ticket/15217] Add core.user_format_date_override event
  • [ticket/15216] Fix bbcode render problems and add more flexibility
  • [ticket/15212] Fix code box double horizontal scrollbars
  • [ticket/15213] Fix stylelint failures
  • [ticket/15205] Add template events prepending/appending subforum link
  • [ticket/15009] Inconsistency all_configured all_available
  • [ticket/15201] Set user style to default style when it is disabled or uninstalled
  • [ticket/15200] Allow extensions using custom templates for help/faq controllers
  • [ticket/15200] Allow extensions using custom templates for help/faq controllers
  • [ticket/15199] Add core event to the messenger send() function
  • [ticket/15190] Consolidate validation methods in metadata manager
  • [ticket/15186] Fully implement the force_delete_allowed feature
  • [ticket/15179] Update dependencies and fix compatibility with newer twig
  • [ticket/15178] Update dependencies for 3.1.x
  • [ticket/15176] Add setting for user activity display limit.
  • [ticket/15167] Make style management available through cli
  • Ticket 15109
  • [ticket/15150] Add Jabber SSL context configuration options
  • [ticket/14498] Don't display 'Who is online' members when permission is No
  • [ticket/14987] Board closed error message can contain valid HTML
  • [ticket/15155] Correctly bold the buttons
  • [PHPBB3-15133] filespec.php getimagesize returns 0
  • [ticket/10424] Added Date-filter to viewtopic_body.html
  • [ticket/15148] Covert contact menu to svg (Retina)
  • [ticket/15132] Add variable to the 'core.mcp_main_modify_shadow_sql' event
  • [ticket/15131] Add variable to the 'core.mcp_main_modify_fork_sql' event
  • [ticket/11515] Extra check after acquiring locks.
  • [ticket/15007] Add Restart link to installer
  • [ticket/15069] Refactor template class
  • [ticket/15110] Added Meta Tags Generator
  • [ticket/15238] Add console command to fix forums/modules left/right IDs
  • [ticket/15238] Add console command to fix forums/modules left/right IDs
  • [ticket/15237] Fix unguarded includes to functions_user
  • [ticket/15234] quickfix notification avatar sizes
  • [ticket/15227] Check PHP version and remove old unused code
  • [ticket/15223] Safe extension class loader
  • [ticket/15219] Update hashes to bcrypt with cron -- Rhea
  • [ticket/15219] Update hashes to bcrypt with cron
  • [ticket/15507] Fix PHP 7.2 warning in functions_messenger.php
  • [ticket/15534] Update extensions database link in ACP for phpBB 3.2
  • [ticket/15519] Add `Terms Of Use` to ACP configs
  • [ticket/15522] Allow multiple color palettes on one page
  • [ticket/15398] Add core.oauth_login_after_check_if_provider_id_has_match
  • [ticket/15518] Add a setting to toggle permission checks for pms in viewtopic
  • [ticket/15393] PR2 Fix wrong direction for text boxs contain code in rtl
  • [ticket/15393] PR1 Fix wrong direction for text boxs contain code in rtl
  • Add S_FIRST_POST to the Core
  • [ticket/15508] Support Twig 2.x
  • [ticket/15516] Add instructions for running UI tests
  • [ticket/15515] Overhaul JS linting/testing with xo/eslint
  • [ticket/15492] Fix permission role combobox in RTL
  • [ticket/15467] Fix JS for permissions setting
  • [ticket/15392] Changed dirname(__FILE__) to __DIR__
  • [ticket/15462] add bidi.css to stylesheet.css
  • [ticket/15437] Update jQuery to latest version
  • [ticket/15405] Create minified version of css
  • [ticket/15436] remove folder icons code from index
  • [ticket/15393] Fix wrong direction for text boxs contain code in RTL
  • [ticket/15429] Add function general_select() to functions.php
  • [ticket/15413] Login redirect to previous page
  • [ticket/15410] Remove obsolete code from BBCodes ACP
  • [ticket/15397] Check that table exist before modifying its columns/indexes/keys
  • [ticket/15388] List boxes internal corners rounded
  • [ticket/15375] Make it possible to use migration tools in conditionals
  • [ticket/15371] Split uploaded files into subdirectories
  • [ticket/15369] Update composer
  • [ticket/15358] Remove resetting the board's start date
  • [ticket/15191] Purge cache directory even on dummy driver
  • [ticket/15548] Fix dead link in ACP_COOKIE_SETTINGS_EXPLAIN language entry
  • [ticket/15545] Fix no vertical space between format buttons
  • [ticket/15520] sql_build_query build subquery
  • [ticket/15542] Call Javascript files with assets version
  • [ticket/15537] Add core.search_(native|mysql|postgres|sphinx)_index_before
  • [ticket/15505] Change approve icon to circle-o and color orange
  • [ticket/15536] Catalog: adds to repositories
  • [ticket/15569] Suggest using file replacing instead of automatic updater
  • [ticket/15570] Allow file downloader to use TLS greater than 1.0
  • [ticket/13162] Add truncate table functionality to DBAL
  • [ticket/15413] Login redirect to previous page
  • [ticket/15522] Improve color palette syntax
  • [ticket/15564] Switch to Invisible reCAPTCHA
  • [ticket/15553] Add method to get direct link
  • [ticket/15554] Simple footer after load js
  • [ticket/15556] Alternative Fix to translate AM/PM in time Format
  • [ticket/15556] Translate AM/PM in time format
  • [ticket/15586] Fixed adding module the automatic way without specifying modes
  • [ticket/15583] Update session time in AJAX request only once a minute
  • [ticket/15580] Remove redundant code from ACP
  • [ticket/15579] Add ucp_front events
  • Event to send message via external transport
  • [ticket/14815] fix facebook link display in memberlist.php
  • Ticket/14602
phpbb questions on Stackoverflow (View All Questions)
  • Resize buttons in phpBB
  • Embedding an attached .mp4 file (phpbb 3.x)
  • phpBB google reCAPTCHA SSL error
  • Phpbb. Getting a second row in a loop
  • How to get monthly postcount of phpBB users with SQL query?
  • adding a file/styles/extention in phpBB from azure gallery
  • What are ways to PHPBB forum login from my website?
  • PHPBB 3 error while disapprove a post
  • setting up phpbb with django/nginx/gunicorn
  • PHPBB checking input is number
  • phpbb preg_replace deprecated error
  • realtime chat, using username from PHPBB 3.1
  • How do I create same username and password at phpBB forum as the username and password already saved
  • phpbb forum files deleted but database safe. how to configure new files with the existing database?
  • phpBB "Delete all board cookies" programmatically
  • Can't post topic to phpbb-forum by code
  • how to integrate phpbb and magento login and registration
  • phpBB display attachment image with image extension
  • PHPBB 3.1.x Auto Resize Avatar
  • Google recaptcha not working in phpbb
  • phpBB Error - PHP Warning
  • PHPBB show subcatagoris/foums wotput drpdown
  • phpbb 3.1.6 generates corrupt avatars if some directory permissions are not correct
  • Serve phpBB static resources from a different server?
  • How to edit style in phpBB 3.1.5?
  • Using scrapy recursivelly for scrape a phpBB forum
  • Need advice for onclick BBCode Spoiler-Tag in phpBB
  • Create post in phpBB by script
  • CodeIgniter and PhPBB 3.1.3 integration
  • How can I automatically create a phpBB session when someone logs onto my website? (Single sign-on)
phpbb list of languages used
More projects by phpbb View all
Other projects in PHP