Extension:Cargo/Download and installation
Download
editYou can download the Cargo code, in .zip format: https://github.com/wikimedia/mediawiki-extensions-Cargo/archive/3.7.zip
You can also download the code directly via Git from the MediaWiki source code repository (see available tags). From a command line in the extensions directory, run the following:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cargo
To view the code online, including version history for each file, go here: view Cargo code
Installation
editTo install the extension, place the entire 'Cargo' directory within your MediaWiki 'extensions' directory, then add the following line to your 'LocalSettings.php' file:
wfLoadExtension( 'Cargo' );
Once you have the code set up, Cargo has two database tables in the main database that it requires. You will need to set these up by going to MediaWiki's /maintenance directory and calling the following:
php update.php
Finally, you need to make sure that the database account with which the code accesses the database has the ability to both create and drop tables. This may or may not be the standard MediaWiki database account; see below.
Setting the Cargo database
editBy default, Cargo uses the standard MediaWiki database to hold its data. (If you have multiple databases set up, using the $wgDBservers setting, the first of those databases will be used.) Cargo differentiates its DB tables from all the rest by starting all their names with a prefix, which by default is "cargo__".
You can change this to have Cargo use any other database. (Though Cargo's two "helper" tables, cargo_tables and cargo_pages, will remain in the main MW database.) There are two main reasons why using a separate database may be a good idea:
- There is the possibility that Cargo has a security leak, i.e. that Cargo queries allow for the inclusion of malicious SQL that would let users access information that they're not supposed to, or even modify the database. There are no known security leaks - and Cargo uses a lot of safeguards to try to prevent any such leaks - but that does not mean that no leak exists. If there is any such vulnerability, having a separate database using a separate database user with restricted permissions is the safer option.
- If slow, intensive queries are run, either unknowingly or maliciously, having a separate database on a separate database server would prevent such queries from interfering with the regular operation of the wiki.
Cargo offers the following global settings to let you set a separate database:
Variable | Required? | Default | Description |
---|---|---|---|
$wgCargoDBserver |
Required | required to set up the custom database | |
$wgCargoDBname |
Required | required to set up the custom database | |
$wgCargoDBuser |
Required | required to set up the custom database | |
$wgCargoDBpassword |
Required | required to set up the custom database | |
$wgCargoDBtype |
Optional | the value of $wgDBtype |
|
$wgCargoDBprefix |
Optional | "" |
|
$wgCargoDBfilePath |
Optional | only needed for SQLite databases; see SQLite specific options |
These are set in the same way as their non-Cargo equivalents, which can be found in LocalSettings.php. To set this custom database, add lines for at least the first four variables to LocalSettings.php.
Permissions
editThe runcargoqueries
permission governs access to Special:CargoQuery and Special:Drilldown and by default is true for everyone.
This can be changed by following the instructions in Manual:User rights .
Other requirements
edit- If you plan to export data to an Excel spreadsheet, you need to install the PhpSpreadsheet library on your server. This can be done by adding
phpoffice/phpspreadsheet
to your composer.local.json and runningcomposer update --no-dev -o
.
Upgrading
editIf you used 'git clone' to install Cargo, you can update to the very latest code for it with a simple command. It may not be a stable release.
From a command line in the Cargo directory, run the following:
git pull