Improve PHP configuration persistence by using multiple directories in PHP_INI_SCAN_DIR

This commit is contained in:
Richard Kuhnt 2017-03-30 20:00:00 +02:00
parent f796d12511
commit 06b9ce1b84
2 changed files with 21 additions and 11 deletions

View File

@ -29,18 +29,23 @@
"php-cgi.exe"
],
"persist": [
"conf",
"cli",
[
"php.ini-production",
"conf\\php.ini"
"cli\\php.ini"
]
],
"env_set": {
"PHP_INI_SCAN_DIR": "$dir\\conf"
"PHP_INI_SCAN_DIR": "$dir\\cli;$dir\\cli\\conf.d;"
},
"post_install": "
# Create directory for custom PHP configuration
if(!(Test-Path \"$dir\\cli\\conf.d\")) {
(New-Item -Type directory \"$dir\\cli\\conf.d\") | Out-Null
}
# Enable extensions to be found in installation-relative folder (the default is to search C:/php)
(gc \"$dir\\conf\\php.ini\") | % { $_ -replace '; extension_dir = \"ext\"', 'extension_dir = \"ext\"' } | sc \"$dir\\conf\\php.ini\"
(gc \"$dir\\cli\\php.ini\") | % { $_ -replace '; extension_dir = \"ext\"', 'extension_dir = \"ext\"' } | sc \"$dir\\cli\\php.ini\"
",
"checkver": {
"url": "http://windows.php.net/download/",

View File

@ -29,24 +29,29 @@
"php-cgi.exe"
],
"persist": [
"conf",
"cli",
[
"php.ini-production",
"conf\\php.ini"
"cli\\php.ini"
]
],
"env_set": {
"PHP_INI_SCAN_DIR": "$dir\\conf"
"PHP_INI_SCAN_DIR": "$dir\\cli;$dir\\cli\\conf.d;"
},
"post_install": "
# Create directory for custom PHP configuration
if(!(Test-Path \"$dir\\cli\\conf.d\")) {
(New-Item -Type directory \"$dir\\cli\\conf.d\") | Out-Null
}
# Copy ini scan dir from old location before persistent update
if ((Test-Path \"$dir\\..\\conf\") -and !(Test-Path \"$dir\\conf\")) {
Write-Host -ForegroundColor Cyan 'We are moving your php configuration to $dir\\conf'
Move-Item \"$dir\\..\\conf\" \"$dir\\conf\"
if ((Test-Path \"$dir\\..\\conf\") -and !(Test-Path \"$dir\\cli\\conf.d\")) {
Write-Host -ForegroundColor Cyan 'We are moving your php configuration to $dir\\cli\\conf.d'
Move-Item \"$dir\\..\\conf\" \"$dir\\cli\\conf.d\"
}
# Enable extensions to be found in installation-relative folder (the default is to search C:/php)
(gc \"$dir\\conf\\php.ini\") | % { $_ -replace '; extension_dir = \"ext\"', 'extension_dir = \"ext\"' } | sc \"$dir\\conf\\php.ini\"
(gc \"$dir\\cli\\php.ini\") | % { $_ -replace '; extension_dir = \"ext\"', 'extension_dir = \"ext\"' } | sc \"$dir\\cli\\php.ini\"
",
"checkver": {
"url": "http://windows.php.net/download/",