Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F113777683
PhabricatorSetupCheckPHPConfig.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, May 21, 05:48
Size
3 KB
Mime Type
text/x-php
Expires
Fri, May 23, 05:48 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
26299229
Attached To
rPH Phabricator
PhabricatorSetupCheckPHPConfig.php
View Options
<?php
final
class
PhabricatorSetupCheckPHPConfig
extends
PhabricatorSetupCheck
{
public
function
getExecutionOrder
()
{
return
0
;
}
protected
function
executeChecks
()
{
$safe_mode
=
ini_get
(
'safe_mode'
);
if
(
$safe_mode
)
{
$message
=
pht
(
"You have 'safe_mode' enabled in your PHP configuration, but "
.
"Phabricator will not run in safe mode. Safe mode has been deprecated "
.
"in PHP 5.3 and removed in PHP 5.4."
.
"
\n\n
"
.
"Disable safe mode to continue."
);
$this
->
newIssue
(
'php.safe_mode'
)
->
setIsFatal
(
true
)
->
setName
(
pht
(
'Disable PHP safe_mode'
))
->
setMessage
(
$message
)
->
addPHPConfig
(
'safe_mode'
);
return
;
}
$open_basedir
=
ini_get
(
'open_basedir'
);
if
(
$open_basedir
)
{
// 'open_basedir' restricts which files we're allowed to access with
// file operations. This might be okay -- we don't need to write to
// arbitrary places in the filesystem -- but we need to access certain
// resources. This setting is unlikely to be providing any real measure
// of security so warn even if things look OK.
$failures
=
array
();
try
{
$open_libphutil
=
class_exists
(
'Future'
);
}
catch
(
Exception
$ex
)
{
$failures
[]
=
$ex
->
getMessage
();
}
try
{
$open_arcanist
=
class_exists
(
'ArcanistDiffParser'
);
}
catch
(
Exception
$ex
)
{
$failures
[]
=
$ex
->
getMessage
();
}
$open_urandom
=
false
;
try
{
Filesystem
::
readRandomBytes
(
1
);
$open_urandom
=
true
;
}
catch
(
FilesystemException
$ex
)
{
$failures
[]
=
$ex
->
getMessage
();
}
try
{
$tmp
=
new
TempFile
();
file_put_contents
(
$tmp
,
'.'
);
$open_tmp
=
@
fopen
((
string
)
$tmp
,
'r'
);
if
(!
$open_tmp
)
{
$failures
[]
=
pht
(
"Unable to read temporary file '%s'."
,
(
string
)
$tmp
);
}
}
catch
(
Exception
$ex
)
{
$message
=
$ex
->
getMessage
();
$dir
=
sys_get_temp_dir
();
$failures
[]
=
pht
(
"Unable to open temp files from '%s': %s"
,
$dir
,
$message
);
}
$issue
=
$this
->
newIssue
(
'php.open_basedir'
)
->
setName
(
pht
(
'Disable PHP open_basedir'
))
->
addPHPConfig
(
'open_basedir'
);
if
(
$failures
)
{
$message
=
pht
(
"Your server is configured with 'open_basedir', which prevents "
.
"Phabricator from opening files it requires access to."
.
"
\n\n
"
.
"Disable this setting to continue."
.
"
\n\n
"
.
"Failures:
\n\n
%s"
,
implode
(
"
\n\n
"
,
$failures
));
$issue
->
setIsFatal
(
true
)
->
setMessage
(
$message
);
return
;
}
else
{
$summary
=
pht
(
"You have 'open_basedir' configured in your PHP settings, which "
.
"may cause some features to fail."
);
$message
=
pht
(
"You have 'open_basedir' configured in your PHP settings. Although "
.
"this setting appears permissive enough that Phabricator will "
.
"work properly, you may still run into problems because of it."
.
"
\n\n
"
.
"Consider disabling 'open_basedir'."
);
$issue
->
setSummary
(
$summary
)
->
setMessage
(
$message
);
}
}
}
}
Event Timeline
Log In to Comment