mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-03 20:22:46 +01:00
3099601463
Summary: Ref T11589. This runs: - preflight checks (critical checks: PHP version stuff, extensions); - configuration; - normal checks. The PHP checks are split into critical ("bad version") and noncritical ("sub-optimal config"). I tidied up the extension checks slightly, we realistically depend on `cURL` nowadays. Test Plan: - Faked a preflight failure. - Hit preflight check. - Got expected error screen. - Loaded normal pages. - Hit a normal setup check. - Used DarkConsole "Startup" tab to verify that preflight checks take <1ms to run (we run them on every page without caching, at least for now, but they only do trivial checks like PHP versions). Reviewers: chad Reviewed By: chad Maniphest Tasks: T11589 Differential Revision: https://secure.phabricator.com/D16500
66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Noncritical PHP configuration checks.
|
|
*
|
|
* For critical checks, see @{class:PhabricatorPHPPreflightSetupCheck}.
|
|
*/
|
|
final class PhabricatorPHPConfigSetupCheck extends PhabricatorSetupCheck {
|
|
|
|
public function getDefaultGroup() {
|
|
return self::GROUP_PHP;
|
|
}
|
|
|
|
protected function executeChecks() {
|
|
|
|
if (empty($_SERVER['REMOTE_ADDR'])) {
|
|
$doc_href = PhabricatorEnv::getDocLink('Configuring a Preamble Script');
|
|
|
|
$summary = pht(
|
|
'You likely need to fix your preamble script so '.
|
|
'REMOTE_ADDR is no longer empty.');
|
|
|
|
$message = pht(
|
|
'No REMOTE_ADDR is available, so Phabricator cannot determine the '.
|
|
'origin address for requests. This will prevent Phabricator from '.
|
|
'performing important security checks. This most often means you '.
|
|
'have a mistake in your preamble script. Consult the documentation '.
|
|
'(%s) and double-check that the script is written correctly.',
|
|
phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => $doc_href,
|
|
'target' => '_blank',
|
|
),
|
|
pht('Configuring a Preamble Script')));
|
|
|
|
$this->newIssue('php.remote_addr')
|
|
->setName(pht('No REMOTE_ADDR available'))
|
|
->setSummary($summary)
|
|
->setMessage($message);
|
|
}
|
|
|
|
$raw_post_data = (int)ini_get('always_populate_raw_post_data');
|
|
if ($raw_post_data != -1) {
|
|
$summary = pht(
|
|
'PHP setting "%s" should be set to "-1" to avoid deprecation '.
|
|
'warnings.',
|
|
'always_populate_raw_post_data');
|
|
|
|
$message = pht(
|
|
'The "%s" key is set to some value other than "-1" in your PHP '.
|
|
'configuration. This can cause PHP to raise deprecation warnings '.
|
|
'during process startup. Set this option to "-1" to prevent these '.
|
|
'warnings from appearing.',
|
|
'always_populate_raw_post_data');
|
|
|
|
$this->newIssue('php.always_populate_raw_post_data')
|
|
->setName(pht('Disable PHP %s', 'always_populate_raw_post_data'))
|
|
->setSummary($summary)
|
|
->setMessage($message)
|
|
->addPHPConfig('always_populate_raw_post_data');
|
|
}
|
|
|
|
}
|
|
|
|
}
|