Installing and Upgrading Web2project
Installing Web2project is the same as installing any other PHP project and has minimal requirements. The definitive version of this Installation Guide is available online but this section should be the same.
Requirements:
These requirements have been tested and validated. Web2project may work with other versions or systems but they are not formally supported. These requirements apply regardless of whether you’re installing, upgrading, or converting.
- PHP 8.0+ (v5.0 is tested on PHP 8.3) with the
mysqliandmbstringextensions;gdis needed for Gantt charts - MySQL 8.x+ or MariaDB 10.x+
- Apache 2.4+ or nginx, or IIS 7.x+
- Composer
More detail on each of these is in Server and Database Configuration.
Install Instructions
- Download the latest release from GitHub and uncompress it.
- Upload the resulting folder to a web-accessible directory on your web server. Note the resulting URL as this will be your new web2project installation.
- Create a MySQL database and a user with full access to the database. Save these database name and credentials as you will need them later.
- From the command line within the web2project folder, run
composer install --no-devor the equivalent for your system. - Point your browser to the URL noted above.
- The Installer should detect that you are creating a fresh installation.
- Confirm that your web server meets the minimum requirements. If it does not, resolve those issues. If it does, continue.
- Use the database name and credentials from above to configure the database connection.
- Select “Install Db & Write Cfg.” The system should create all database tables and configure the base system.
- If the Installer could not create the
config.phpfile, copy and paste it to create your own. - Log into your system with the provided username and password.
- Change your username and password.
- Block direct web access to the
filesfolder, as described in Server and Database Configuration. - Proceed to Getting Started or the Frequently Asked Questions as you need.
- Add a cron job to run system maintenance tasks such as sending email notices and task reminders. The easiest approach is to request the URL below via a cron job:
wget -O - -q http://{web2project-install}/queuescanner.php
Uploaded files are stored in the files folder inside the web root, protected only by an Apache 2.2-style .htaccess file. On Apache 2.4 or nginx, add the rule from Server and Database Configuration or anyone can download them without logging in. See Security Notes.
If you run into any problems, we recommend that you resolve the issue and then delete config.php and drop the database tables to try again.
Upgrade Instructions
- Back up your database and
filesfolder. You can never have too many backups. - Download the latest release from GitHub and uncompress it.
- Upload the resulting folder to your web server.
- Copy your
filesfolder from your previous folder to the new one. - Copy your
includes/config.phpfile from your previous folder to the new one. - From the command line within the new folder, run
composer install --no-dev. - Rename the old folder.
- Rename the new folder to the old folder’s previous name.
- Point your web browser to your Web2project folder.
- Log in with an Administrator account.
- Select the System Admin module and choose “Apply System Updates”
- The Installer will handle applying all updates. It lists any errors it hits; a clean upgrade reports none.
- Use your system as normal.
Upgrading to v5.0
v5.0 is a major release. Read this before you upgrade an existing system.
- Back up first. v5.0 adds database migrations 063–068, which change permissions, contacts, custom fields, the access log and the Resources tables. Apply System Updates runs them all.
- One theme. The interface is now Bootstrap 5.3 only. The w2p-snowball and wps-redmond themes, theme selection and the per-user “User Interface Style” preference are gone, so a custom theme folder will no longer load. Template overrides go in
style/bootstrap/. - Removed features. PDF output (reports, Gantt charts and forums; use your browser’s Print → Save as PDF), file check-in/check-out, file versions and file e-mail notifications.
- Add On modules. v5.0 removes long-deprecated functions and class names. Modules that still use them will stop with errors. Check each module against Updating Add On Modules for v5.0 before upgrading, and disable any that aren’t updated.
- Resources module. Migration 068 fixes the Resources tables on systems where adding a resource failed. If you use it, turn it on under System Admin → View Modules.
- Database server. MySQL 8’s default
sql_modenow works without changes. - Translations. Translation (
.inc) files are now read as data, not run as PHP. Custom translation files that contain anything other than quoted strings will lose those entries; see Translation Management.
The v5.0 release notes list every change.
Convert from dotProject
- Back up your database, the
filesfolder, andincludes/config.php. You can never have too many backups. - Download the latest release from GitHub and uncompress it.
- Upload the resulting folder to your web server. Note the resulting URL as this will be your new web2project installation.
- From the command line within the web2project folder, run
composer install --no-dev. - Copy your
filesfolder from your dotProject folder to your Web2project folder. - Copy your
includes/config.phpfile from your dotProject folder to your Web2project folder. - Point your browser to your web2project folder.
- The Installer will detect the dotProject configuration and apply database updates, data transformations, and update the
config.php. This may take a while depending on how big your database is. - Log into your system with your existing username and password.
- Add a cron job to run system maintenance tasks such as sending email notices, etc. The easiest approach is to request the URL below via a cron job:
wget -O - -q http://{web2project-install}/queuescanner.php
If you run into any problems, we recommend that you overwrite your new config.php with the dotProject version and restore the dotProject database. Then resolve the issue and try again.