mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-07-04 06:03:17 +07:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
6dba529f13 | |||
e9a7adef28 | |||
bceb2ef3d8 | |||
86e7315da6 | |||
0741f2b23a | |||
0c4c4d5441 | |||
abfbe6a46b | |||
62aa8428dd | |||
e6a3eb1258 | |||
0ce7328fd7 | |||
6e76d3f012 | |||
ac40fdb561 | |||
890ea4bca9 |
@ -876,7 +876,6 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
|
|||||||
|
|
||||||
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
||||||
- [aaronparker/VcRedist](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package")
|
- [aaronparker/VcRedist](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package")
|
||||||
- [gplessis/dotdeb-php](https://github.com/gplessis/dotdeb-php "Packaging for end of life PHP versions")
|
|
||||||
- [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows")
|
- [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows")
|
||||||
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages")
|
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages")
|
||||||
- [shivammathur/cache-extensions](https://github.com/shivammathur/cache-extensions "GitHub action to help with caching PHP extensions")
|
- [shivammathur/cache-extensions](https://github.com/shivammathur/cache-extensions "GitHub action to help with caching PHP extensions")
|
||||||
|
@ -107,16 +107,16 @@ describe('Utils tests', () => {
|
|||||||
await cleanup(script_path);
|
await cleanup(script_path);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('checking packageArray', async () => {
|
it('checking extensionArray', async () => {
|
||||||
expect(await utils.packageArray('a, b, php_c, php-d')).toEqual([
|
expect(await utils.extensionArray('a, b, php_c, php-d')).toEqual([
|
||||||
'a',
|
'a',
|
||||||
'b',
|
'b',
|
||||||
'c',
|
'c',
|
||||||
'd'
|
'd'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
expect(await utils.packageArray('')).toEqual([]);
|
expect(await utils.extensionArray('')).toEqual([]);
|
||||||
expect(await utils.packageArray(' ')).toEqual([]);
|
expect(await utils.extensionArray(' ')).toEqual([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('checking INIArray', async () => {
|
it('checking INIArray', async () => {
|
||||||
|
@ -18,9 +18,6 @@ inputs:
|
|||||||
coverage:
|
coverage:
|
||||||
description: 'Setup code coverage driver.'
|
description: 'Setup code coverage driver.'
|
||||||
required: false
|
required: false
|
||||||
sapi:
|
|
||||||
description: 'Setup PHP Server API.'
|
|
||||||
required: false
|
|
||||||
tools:
|
tools:
|
||||||
description: 'Setup popular tools globally.'
|
description: 'Setup popular tools globally.'
|
||||||
required: false
|
required: false
|
||||||
|
154
dist/index.js
vendored
154
dist/index.js
vendored
@ -1677,10 +1677,14 @@ const config = __importStar(__nccwpck_require__(373));
|
|||||||
* @param pipe
|
* @param pipe
|
||||||
*/
|
*/
|
||||||
async function addCoverageXdebug(extension, version, os_version, pipe) {
|
async function addCoverageXdebug(extension, version, os_version, pipe) {
|
||||||
const xdebug = (await extensions.addExtension(extension, version, os_version, true)) +
|
let script = '\n';
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(extension, version, os_version, true)) +
|
||||||
pipe;
|
pipe;
|
||||||
const log = await utils.addLog('$tick', extension, 'Xdebug enabled as coverage driver', os_version);
|
script += await utils.addLog('$tick', extension, 'Xdebug enabled as coverage driver', os_version);
|
||||||
return xdebug + '\n' + log;
|
return script;
|
||||||
}
|
}
|
||||||
exports.addCoverageXdebug = addCoverageXdebug;
|
exports.addCoverageXdebug = addCoverageXdebug;
|
||||||
/**
|
/**
|
||||||
@ -1694,22 +1698,14 @@ async function addCoveragePCOV(version, os_version, pipe) {
|
|||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
default:
|
default:
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
|
pipe;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os_version, true)) +
|
(await extensions.addExtension('pcov', version, os_version, true)) +
|
||||||
pipe +
|
pipe;
|
||||||
'\n';
|
|
||||||
script +=
|
script +=
|
||||||
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
||||||
// add command to disable xdebug and enable pcov
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// success
|
// success
|
||||||
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os_version);
|
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os_version);
|
||||||
// version is not supported
|
// version is not supported
|
||||||
@ -1730,17 +1726,11 @@ exports.addCoveragePCOV = addCoveragePCOV;
|
|||||||
*/
|
*/
|
||||||
async function disableCoverage(version, os_version, pipe) {
|
async function disableCoverage(version, os_version, pipe) {
|
||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (os_version) {
|
script +=
|
||||||
case 'linux':
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
case 'darwin':
|
script +=
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
script += 'remove_extension pcov' + pipe + '\n';
|
pipe;
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
script += 'Remove-Extension pcov' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
script += await utils.addLog('$tick', 'none', 'Disabled Xdebug and PCOV', os_version);
|
script += await utils.addLog('$tick', 'none', 'Disabled Xdebug and PCOV', os_version);
|
||||||
return script;
|
return script;
|
||||||
}
|
}
|
||||||
@ -1755,7 +1745,7 @@ exports.disableCoverage = disableCoverage;
|
|||||||
async function addCoverage(coverage_driver, version, os_version) {
|
async function addCoverage(coverage_driver, version, os_version) {
|
||||||
coverage_driver = coverage_driver.toLowerCase();
|
coverage_driver = coverage_driver.toLowerCase();
|
||||||
const script = '\n' + (await utils.stepLog('Setup Coverage', os_version));
|
const script = '\n' + (await utils.stepLog('Setup Coverage', os_version));
|
||||||
const pipe = await utils.suppressOutput(os_version);
|
const pipe = (await utils.suppressOutput(os_version)) + '\n';
|
||||||
switch (coverage_driver) {
|
switch (coverage_driver) {
|
||||||
case 'pcov':
|
case 'pcov':
|
||||||
return script + (await addCoveragePCOV(version, os_version, pipe));
|
return script + (await addCoveragePCOV(version, os_version, pipe));
|
||||||
@ -1808,7 +1798,7 @@ const utils = __importStar(__nccwpck_require__(314));
|
|||||||
* @param version
|
* @param version
|
||||||
*/
|
*/
|
||||||
async function addExtensionDarwin(extension_csv, version) {
|
async function addExtensionDarwin(extension_csv, version) {
|
||||||
const extensions = await utils.packageArray(extension_csv);
|
const extensions = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension) {
|
await utils.asyncForEach(extensions, async function (extension) {
|
||||||
@ -1877,7 +1867,7 @@ exports.addExtensionDarwin = addExtensionDarwin;
|
|||||||
* @param version
|
* @param version
|
||||||
*/
|
*/
|
||||||
async function addExtensionWindows(extension_csv, version) {
|
async function addExtensionWindows(extension_csv, version) {
|
||||||
const extensions = await utils.packageArray(extension_csv);
|
const extensions = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension) {
|
await utils.asyncForEach(extensions, async function (extension) {
|
||||||
@ -1961,7 +1951,7 @@ exports.addExtensionWindows = addExtensionWindows;
|
|||||||
* @param version
|
* @param version
|
||||||
*/
|
*/
|
||||||
async function addExtensionLinux(extension_csv, version) {
|
async function addExtensionLinux(extension_csv, version) {
|
||||||
const extensions = await utils.packageArray(extension_csv);
|
const extensions = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension) {
|
await utils.asyncForEach(extensions, async function (extension) {
|
||||||
@ -1980,14 +1970,14 @@ async function addExtensionLinux(extension_csv, version) {
|
|||||||
// match couchbase, pdo_oci, oci8, http, pecl_http
|
// match couchbase, pdo_oci, oci8, http, pecl_http
|
||||||
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
||||||
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
||||||
// match 5.6gearman...8.1gearman
|
// match 5.6gearman...7.4gearman
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||||
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
||||||
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension):
|
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension):
|
||||||
case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-9])gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
add_script += await utils.customPackage(ext_name, 'ext', extension, 'linux');
|
add_script += await utils.customPackage(ext_name, 'ext', extension, 'linux');
|
||||||
return;
|
return;
|
||||||
// match pre-release versions. For example - xdebug-beta
|
// match pre-release versions. For example - xdebug-beta
|
||||||
@ -2095,7 +2085,6 @@ const core = __importStar(__nccwpck_require__(186));
|
|||||||
const config = __importStar(__nccwpck_require__(373));
|
const config = __importStar(__nccwpck_require__(373));
|
||||||
const coverage = __importStar(__nccwpck_require__(84));
|
const coverage = __importStar(__nccwpck_require__(84));
|
||||||
const extensions = __importStar(__nccwpck_require__(587));
|
const extensions = __importStar(__nccwpck_require__(587));
|
||||||
const sapi = __importStar(__nccwpck_require__(489));
|
|
||||||
const tools = __importStar(__nccwpck_require__(905));
|
const tools = __importStar(__nccwpck_require__(905));
|
||||||
const utils = __importStar(__nccwpck_require__(314));
|
const utils = __importStar(__nccwpck_require__(314));
|
||||||
/**
|
/**
|
||||||
@ -2114,11 +2103,7 @@ async function getScript(filename, version, os_version) {
|
|||||||
const ini_values_csv = await utils.getInput('ini-values', false);
|
const ini_values_csv = await utils.getInput('ini-values', false);
|
||||||
const coverage_driver = await utils.getInput('coverage', false);
|
const coverage_driver = await utils.getInput('coverage', false);
|
||||||
const tools_csv = await utils.getInput('tools', false);
|
const tools_csv = await utils.getInput('tools', false);
|
||||||
const sapi_csv = await utils.getInput('sapi', false);
|
|
||||||
let script = await utils.readScript(filename);
|
let script = await utils.readScript(filename);
|
||||||
if (sapi_csv) {
|
|
||||||
script += await sapi.addSAPI(sapi_csv, os_version);
|
|
||||||
}
|
|
||||||
script += await tools.addTools(tools_csv, version, os_version);
|
script += await tools.addTools(tools_csv, version, os_version);
|
||||||
if (extension_csv) {
|
if (extension_csv) {
|
||||||
script += await extensions.addExtension(extension_csv, version, os_version);
|
script += await extensions.addExtension(extension_csv, version, os_version);
|
||||||
@ -2157,82 +2142,7 @@ async function run() {
|
|||||||
}
|
}
|
||||||
exports.run = run;
|
exports.run = run;
|
||||||
// call the run function
|
// call the run function
|
||||||
(async () => {
|
run();
|
||||||
await run();
|
|
||||||
})().catch(error => {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 489:
|
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.addSAPI = exports.getSapiList = void 0;
|
|
||||||
const utils = __importStar(__nccwpck_require__(314));
|
|
||||||
async function getSapiList(sapi_csv) {
|
|
||||||
const sapi_list = await utils.packageArray(sapi_csv);
|
|
||||||
const servers = sapi_list.filter(sapi => /.*:.*/.test(sapi));
|
|
||||||
return [servers[servers.length - 1]].concat(sapi_list.filter(sapi => /.*[^:].*/.test(sapi)));
|
|
||||||
}
|
|
||||||
exports.getSapiList = getSapiList;
|
|
||||||
/**
|
|
||||||
* Function to set sapi
|
|
||||||
*
|
|
||||||
* @param sapi_csv
|
|
||||||
* @param os_version
|
|
||||||
*/
|
|
||||||
async function addSAPI(sapi_csv, os_version) {
|
|
||||||
let script = '\n' + (await utils.stepLog('Setup SAPI', os_version));
|
|
||||||
let sapi_list;
|
|
||||||
switch (true) {
|
|
||||||
case sapi_csv.split(':').length - 1 > 1:
|
|
||||||
sapi_list = await getSapiList(sapi_csv);
|
|
||||||
script +=
|
|
||||||
'\n' +
|
|
||||||
utils.log('Multiple SAPI with web servers specified, choosing the last one ' +
|
|
||||||
sapi_list[0], os_version, 'warning');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sapi_list = await utils.packageArray(sapi_csv);
|
|
||||||
}
|
|
||||||
await utils.asyncForEach(sapi_list, async function (sapi) {
|
|
||||||
sapi = sapi.toLowerCase();
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += '\nadd_sapi ' + sapi;
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += '\nAdd-Sapi ' + sapi;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return script;
|
|
||||||
}
|
|
||||||
exports.addSAPI = addSAPI;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@ -2730,7 +2640,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.customPackage = exports.scriptTool = exports.scriptExtension = exports.joins = exports.getCommand = exports.getUnsupportedLog = exports.suppressOutput = exports.getExtensionPrefix = exports.CSVArray = exports.packageArray = exports.writeScript = exports.readScript = exports.addLog = exports.stepLog = exports.log = exports.color = exports.asyncForEach = exports.parseVersion = exports.fetch = exports.getInput = exports.readEnv = void 0;
|
exports.customPackage = exports.scriptTool = exports.scriptExtension = exports.joins = exports.getCommand = exports.getUnsupportedLog = exports.suppressOutput = exports.getExtensionPrefix = exports.CSVArray = exports.extensionArray = exports.writeScript = exports.readScript = exports.addLog = exports.stepLog = exports.log = exports.color = exports.asyncForEach = exports.parseVersion = exports.fetch = exports.getInput = exports.readEnv = void 0;
|
||||||
const fs = __importStar(__nccwpck_require__(747));
|
const fs = __importStar(__nccwpck_require__(747));
|
||||||
const https = __importStar(__nccwpck_require__(211));
|
const https = __importStar(__nccwpck_require__(211));
|
||||||
const path = __importStar(__nccwpck_require__(622));
|
const path = __importStar(__nccwpck_require__(622));
|
||||||
@ -2923,18 +2833,18 @@ exports.writeScript = writeScript;
|
|||||||
/**
|
/**
|
||||||
* Function to break extension csv into an array
|
* Function to break extension csv into an array
|
||||||
*
|
*
|
||||||
* @param package_csv
|
* @param extension_csv
|
||||||
*/
|
*/
|
||||||
async function packageArray(package_csv) {
|
async function extensionArray(extension_csv) {
|
||||||
switch (package_csv) {
|
switch (extension_csv) {
|
||||||
case '':
|
case '':
|
||||||
case ' ':
|
case ' ':
|
||||||
return [];
|
return [];
|
||||||
default:
|
default:
|
||||||
return package_csv
|
return extension_csv
|
||||||
.split(',')
|
.split(',')
|
||||||
.map(function (package_name) {
|
.map(function (extension) {
|
||||||
return package_name
|
return extension
|
||||||
.trim()
|
.trim()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replace(/^php[-_]/, '');
|
.replace(/^php[-_]/, '');
|
||||||
@ -2942,7 +2852,7 @@ async function packageArray(package_csv) {
|
|||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.packageArray = packageArray;
|
exports.extensionArray = extensionArray;
|
||||||
/**
|
/**
|
||||||
* Function to break csv into an array
|
* Function to break csv into an array
|
||||||
*
|
*
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
LoadModule phpPHP_MAJOR_module PHP_DIR\PHP_APACHE_DLL
|
|
||||||
AddHandler application/x-httpd-php .php
|
|
||||||
PHPIniDir PHP_DIR
|
|
@ -1,8 +0,0 @@
|
|||||||
LoadModule proxy_module modules/mod_proxy.so
|
|
||||||
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
|
|
||||||
LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
|
|
||||||
<FilesMatch "\.php$">
|
|
||||||
<If "-f %{REQUEST_FILENAME}">
|
|
||||||
SetHandler "proxy:fcgi://127.0.0.1:9000/"
|
|
||||||
</If>
|
|
||||||
</FilesMatch>
|
|
@ -1,36 +0,0 @@
|
|||||||
worker_processes 1;
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
http {
|
|
||||||
include mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
|
|
||||||
keepalive_timeout 65;
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name localhost;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
root html;
|
|
||||||
index index.php index.html index.htm;
|
|
||||||
}
|
|
||||||
|
|
||||||
error_page 500 502 503 504 /50x.html;
|
|
||||||
location = /50x.html {
|
|
||||||
root html;
|
|
||||||
}
|
|
||||||
location ~ \.php$ {
|
|
||||||
root html;
|
|
||||||
fastcgi_pass 127.0.0.1:9000;
|
|
||||||
fastcgi_index index.php;
|
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
||||||
include fastcgi_params;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
<VirtualHost *:80>
|
|
||||||
ServerAdmin webmaster@localhost
|
|
||||||
DocumentRoot "/var/www/html"
|
|
||||||
ServerName localhost
|
|
||||||
</VirtualHost>
|
|
@ -1,7 +0,0 @@
|
|||||||
<VirtualHost *:80>
|
|
||||||
ServerName localhost
|
|
||||||
ServerAdmin webmaster@localhost
|
|
||||||
DocumentRoot /var/www/html
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
||||||
</VirtualHost>
|
|
@ -1,22 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
listen [::]:80 default_server;
|
|
||||||
|
|
||||||
root /var/www/html;
|
|
||||||
index index.html index.htm index.php;
|
|
||||||
|
|
||||||
server_name localhost;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
try_files $uri $uri/ =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ \.php$ {
|
|
||||||
include snippets/fastcgi-php.conf;
|
|
||||||
fastcgi_pass unix:/run/php/phpPHP_VERSION-fpm.sock;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ /\.ht {
|
|
||||||
deny all;
|
|
||||||
}
|
|
||||||
}
|
|
@ -16,16 +16,19 @@ export async function addCoverageXdebug(
|
|||||||
os_version: string,
|
os_version: string,
|
||||||
pipe: string
|
pipe: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const xdebug =
|
let script = '\n';
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
|
script +=
|
||||||
(await extensions.addExtension(extension, version, os_version, true)) +
|
(await extensions.addExtension(extension, version, os_version, true)) +
|
||||||
pipe;
|
pipe;
|
||||||
const log = await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
extension,
|
extension,
|
||||||
'Xdebug enabled as coverage driver',
|
'Xdebug enabled as coverage driver',
|
||||||
os_version
|
os_version
|
||||||
);
|
);
|
||||||
return xdebug + '\n' + log;
|
return script;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,24 +46,15 @@ export async function addCoveragePCOV(
|
|||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
default:
|
default:
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
|
pipe;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os_version, true)) +
|
(await extensions.addExtension('pcov', version, os_version, true)) +
|
||||||
pipe +
|
pipe;
|
||||||
'\n';
|
|
||||||
script +=
|
script +=
|
||||||
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
||||||
|
|
||||||
// add command to disable xdebug and enable pcov
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// success
|
// success
|
||||||
script += await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
@ -97,17 +91,11 @@ export async function disableCoverage(
|
|||||||
pipe: string
|
pipe: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (os_version) {
|
script +=
|
||||||
case 'linux':
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
case 'darwin':
|
script +=
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
script += 'remove_extension pcov' + pipe + '\n';
|
pipe;
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
script += 'Remove-Extension pcov' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
script += await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
'none',
|
'none',
|
||||||
@ -133,7 +121,7 @@ export async function addCoverage(
|
|||||||
coverage_driver = coverage_driver.toLowerCase();
|
coverage_driver = coverage_driver.toLowerCase();
|
||||||
const script: string =
|
const script: string =
|
||||||
'\n' + (await utils.stepLog('Setup Coverage', os_version));
|
'\n' + (await utils.stepLog('Setup Coverage', os_version));
|
||||||
const pipe: string = await utils.suppressOutput(os_version);
|
const pipe: string = (await utils.suppressOutput(os_version)) + '\n';
|
||||||
switch (coverage_driver) {
|
switch (coverage_driver) {
|
||||||
case 'pcov':
|
case 'pcov':
|
||||||
return script + (await addCoveragePCOV(version, os_version, pipe));
|
return script + (await addCoveragePCOV(version, os_version, pipe));
|
||||||
|
@ -10,7 +10,7 @@ export async function addExtensionDarwin(
|
|||||||
extension_csv: string,
|
extension_csv: string,
|
||||||
version: string
|
version: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const extensions: Array<string> = await utils.packageArray(extension_csv);
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension: string) {
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
||||||
@ -115,7 +115,7 @@ export async function addExtensionWindows(
|
|||||||
extension_csv: string,
|
extension_csv: string,
|
||||||
version: string
|
version: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const extensions: Array<string> = await utils.packageArray(extension_csv);
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension: string) {
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
||||||
@ -229,7 +229,7 @@ export async function addExtensionLinux(
|
|||||||
extension_csv: string,
|
extension_csv: string,
|
||||||
version: string
|
version: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const extensions: Array<string> = await utils.packageArray(extension_csv);
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||||
let add_script = '\n';
|
let add_script = '\n';
|
||||||
let remove_script = '';
|
let remove_script = '';
|
||||||
await utils.asyncForEach(extensions, async function (extension: string) {
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
||||||
@ -249,7 +249,7 @@ export async function addExtensionLinux(
|
|||||||
// match couchbase, pdo_oci, oci8, http, pecl_http
|
// match couchbase, pdo_oci, oci8, http, pecl_http
|
||||||
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
||||||
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
||||||
// match 5.6gearman...8.1gearman
|
// match 5.6gearman...7.4gearman
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(
|
||||||
version_extension
|
version_extension
|
||||||
):
|
):
|
||||||
@ -259,10 +259,10 @@ export async function addExtensionLinux(
|
|||||||
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(
|
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(
|
||||||
extension
|
extension
|
||||||
):
|
):
|
||||||
case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-9])gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
add_script += await utils.customPackage(
|
add_script += await utils.customPackage(
|
||||||
ext_name,
|
ext_name,
|
||||||
'ext',
|
'ext',
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
import {exec} from '@actions/exec';
|
import {exec} from '@actions/exec/lib/exec';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import * as config from './config';
|
import * as config from './config';
|
||||||
import * as coverage from './coverage';
|
import * as coverage from './coverage';
|
||||||
import * as extensions from './extensions';
|
import * as extensions from './extensions';
|
||||||
import * as sapi from './sapi';
|
|
||||||
import * as tools from './tools';
|
import * as tools from './tools';
|
||||||
import * as utils from './utils';
|
import * as utils from './utils';
|
||||||
|
|
||||||
@ -27,13 +26,10 @@ export async function getScript(
|
|||||||
const ini_values_csv: string = await utils.getInput('ini-values', false);
|
const ini_values_csv: string = await utils.getInput('ini-values', false);
|
||||||
const coverage_driver: string = await utils.getInput('coverage', false);
|
const coverage_driver: string = await utils.getInput('coverage', false);
|
||||||
const tools_csv: string = await utils.getInput('tools', false);
|
const tools_csv: string = await utils.getInput('tools', false);
|
||||||
const sapi_csv: string = await utils.getInput('sapi', false);
|
|
||||||
|
|
||||||
let script: string = await utils.readScript(filename);
|
let script: string = await utils.readScript(filename);
|
||||||
if (sapi_csv) {
|
|
||||||
script += await sapi.addSAPI(sapi_csv, os_version);
|
|
||||||
}
|
|
||||||
script += await tools.addTools(tools_csv, version, os_version);
|
script += await tools.addTools(tools_csv, version, os_version);
|
||||||
|
|
||||||
if (extension_csv) {
|
if (extension_csv) {
|
||||||
script += await extensions.addExtension(extension_csv, version, os_version);
|
script += await extensions.addExtension(extension_csv, version, os_version);
|
||||||
}
|
}
|
||||||
@ -73,8 +69,4 @@ export async function run(): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// call the run function
|
// call the run function
|
||||||
(async () => {
|
run();
|
||||||
await run();
|
|
||||||
})().catch(error => {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
});
|
|
||||||
|
51
src/sapi.ts
51
src/sapi.ts
@ -1,51 +0,0 @@
|
|||||||
import * as utils from './utils';
|
|
||||||
|
|
||||||
export async function getSapiList(sapi_csv: string): Promise<Array<string>> {
|
|
||||||
const sapi_list: Array<string> = await utils.packageArray(sapi_csv);
|
|
||||||
const servers: Array<string> = sapi_list.filter(sapi => /.*:.*/.test(sapi));
|
|
||||||
return [servers[servers.length - 1]].concat(
|
|
||||||
sapi_list.filter(sapi => /.*[^:].*/.test(sapi))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to set sapi
|
|
||||||
*
|
|
||||||
* @param sapi_csv
|
|
||||||
* @param os_version
|
|
||||||
*/
|
|
||||||
export async function addSAPI(
|
|
||||||
sapi_csv: string,
|
|
||||||
os_version: string
|
|
||||||
): Promise<string> {
|
|
||||||
let script: string = '\n' + (await utils.stepLog('Setup SAPI', os_version));
|
|
||||||
let sapi_list: Array<string>;
|
|
||||||
switch (true) {
|
|
||||||
case sapi_csv.split(':').length - 1 > 1:
|
|
||||||
sapi_list = await getSapiList(sapi_csv);
|
|
||||||
script +=
|
|
||||||
'\n' +
|
|
||||||
utils.log(
|
|
||||||
'Multiple SAPI with web servers specified, choosing the last one ' +
|
|
||||||
sapi_list[0],
|
|
||||||
os_version,
|
|
||||||
'warning'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sapi_list = await utils.packageArray(sapi_csv);
|
|
||||||
}
|
|
||||||
await utils.asyncForEach(sapi_list, async function (sapi: string) {
|
|
||||||
sapi = sapi.toLowerCase();
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += '\nadd_sapi ' + sapi;
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += '\nAdd-Sapi ' + sapi;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return script;
|
|
||||||
}
|
|
@ -12,7 +12,7 @@ export composer_json="$HOME/.composer/composer.json"
|
|||||||
export composer_lock="$HOME/.composer/composer.lock"
|
export composer_lock="$HOME/.composer/composer.lock"
|
||||||
export latest="releases/latest/download"
|
export latest="releases/latest/download"
|
||||||
export github="https://github.com/shivammathur"
|
export github="https://github.com/shivammathur"
|
||||||
export bintray="https://dl.bintray/shivammathur"
|
export jsdeliver="https://cdn.jsdelivr.net/gh/shivammathur"
|
||||||
|
|
||||||
# Function to log start of a operation.
|
# Function to log start of a operation.
|
||||||
step_log() {
|
step_log() {
|
||||||
@ -73,12 +73,12 @@ get() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to download and run scripts from GitHub releases with bintray fallback.
|
# Function to download and run scripts from GitHub releases with jsdeliver fallback.
|
||||||
run_script() {
|
run_script() {
|
||||||
repo=$1
|
repo=$1
|
||||||
shift
|
shift
|
||||||
args=("$@")
|
args=("$@")
|
||||||
get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$bintray/php/$repo.sh"
|
get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$jsdeliver/$1@main/scripts/install.sh"
|
||||||
bash /tmp/install.sh "${args[@]}"
|
bash /tmp/install.sh "${args[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,12 +104,33 @@ check_extension() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to enable cached extensions.
|
||||||
|
enable_cache_extension() {
|
||||||
|
deps=()
|
||||||
|
for ext in /tmp/extcache/"$1"/*; do
|
||||||
|
deps+=("$(basename "$ext")")
|
||||||
|
done
|
||||||
|
if [ "x${deps[*]}" = "x" ]; then
|
||||||
|
sudo rm -rf /tmp/extcache/"$1"
|
||||||
|
enable_extension "$1" "$2"
|
||||||
|
else
|
||||||
|
deps+=("$1")
|
||||||
|
if php "${deps[@]/#/-d ${2}=}" -m 2>/dev/null | grep -i -q "$1"; then
|
||||||
|
for ext in "${deps[@]}"; do
|
||||||
|
sudo rm -rf /tmp/extcache/"$ext"
|
||||||
|
enable_extension "$ext" "$2"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Function to enable existing extensions.
|
# Function to enable existing extensions.
|
||||||
enable_extension() {
|
enable_extension() {
|
||||||
if [ -e /tmp/setup_php_dismod ] && grep -q "$1" /tmp/setup_php_dismod; then
|
modules_dir="/var/lib/php/modules/$version"
|
||||||
sudo phpenmod -v "$version" "$1" >/dev/null 2>&1
|
[ -d "$modules_dir" ] && sudo find "$modules_dir" -path "*disabled*$1" -delete
|
||||||
fi
|
if [ -d /tmp/extcache/"$1" ]; then
|
||||||
if ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
|
enable_cache_extension "$1" "$2"
|
||||||
|
elif ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
|
||||||
echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
|
echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -193,7 +214,8 @@ configure_composer() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! [ -e "$composer_json" ]; then
|
if ! [ -e "$composer_json" ]; then
|
||||||
echo '{}' | tee "$composer_json" >/dev/null 2>&1
|
sudo mkdir -p "$(dirname "$composer_json")"
|
||||||
|
echo '{}' | tee "$composer_json" >/dev/null
|
||||||
sudo chmod 644 "$composer_json"
|
sudo chmod 644 "$composer_json"
|
||||||
fi
|
fi
|
||||||
composer -q config -g process-timeout 0
|
composer -q config -g process-timeout 0
|
||||||
@ -257,11 +279,9 @@ add_composertool() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to get versions of PHP binaries in semver format.
|
# Function to get PHP version in semver format.
|
||||||
php_semver() {
|
php_semver() {
|
||||||
binary=${1:-"php$version"}
|
php"$version" -v | grep -Eo -m 1 "[0-9]+\.[0-9]+\.[0-9]+" | head -n 1
|
||||||
arg=${2:-'-v'}
|
|
||||||
"$binary" "$arg" | grep -Eo -m 1 "[0-9]+\.[0-9]+\.[0-9]+" | head -n 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to get the tag for a php version.
|
# Function to get the tag for a php version.
|
||||||
|
@ -78,7 +78,7 @@ add_brew_extension() {
|
|||||||
add_brew_tap shivammathur/homebrew-php
|
add_brew_tap shivammathur/homebrew-php
|
||||||
add_brew_tap shivammathur/homebrew-extensions
|
add_brew_tap shivammathur/homebrew-extensions
|
||||||
sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$formula"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true
|
sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$formula"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true
|
||||||
brew install "$formula@$version" >/dev/null 2>&1
|
brew install -f "$formula@$version" >/dev/null 2>&1
|
||||||
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
||||||
add_extension_log "$extension" "Installed and enabled"
|
add_extension_log "$extension" "Installed and enabled"
|
||||||
fi
|
fi
|
||||||
@ -92,7 +92,7 @@ add_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
add_log "${tick:?}" "$extension" "Enabled"
|
add_log "${tick:?}" "$extension" "Enabled"
|
||||||
else
|
else
|
||||||
[[ "$version" =~ 5.[4-5] ]] && [ "$extension" = "imagick" ] && brew install pkg-config imagemagick >/dev/null 2>&1
|
[[ "$version" =~ 5.[4-5] ]] && [ "$extension" = "imagick" ] && brew install -f pkg-config imagemagick >/dev/null 2>&1
|
||||||
pecl_install "$extension" >/dev/null 2>&1 &&
|
pecl_install "$extension" >/dev/null 2>&1 &&
|
||||||
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
||||||
add_extension_log "$extension" "Installed and enabled"
|
add_extension_log "$extension" "Installed and enabled"
|
||||||
@ -116,7 +116,11 @@ link_libraries() {
|
|||||||
formula=$1
|
formula=$1
|
||||||
formula_prefix="$(brew --prefix "$formula")"
|
formula_prefix="$(brew --prefix "$formula")"
|
||||||
sudo mkdir -p "$formula_prefix"/lib
|
sudo mkdir -p "$formula_prefix"/lib
|
||||||
sudo cp -a "$formula_prefix"/lib/*.dylib "$brew_prefix/lib" 2>/dev/null || true
|
for lib in "$formula_prefix"/lib/*.dylib; do
|
||||||
|
lib_name=$(basename "$lib")
|
||||||
|
sudo cp -a "$lib" "$brew_prefix/lib/old_$lib_name" 2>/dev/null || true
|
||||||
|
sudo ln -sf "$brew_prefix"/lib/old_$lib_name "$brew_prefix/lib/$lib_name"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
update_dependencies_helper() {
|
update_dependencies_helper() {
|
||||||
@ -144,7 +148,7 @@ add_php() {
|
|||||||
if ! [[ "$(find "$(brew --cellar)"/php/ -maxdepth 1 -name "$version*" | wc -l 2>/dev/null)" -eq 0 ]] && [ "$action" != "upgrade" ]; then
|
if ! [[ "$(find "$(brew --cellar)"/php/ -maxdepth 1 -name "$version*" | wc -l 2>/dev/null)" -eq 0 ]] && [ "$action" != "upgrade" ]; then
|
||||||
brew unlink shivammathur/php/php@"$version"
|
brew unlink shivammathur/php/php@"$version"
|
||||||
else
|
else
|
||||||
brew upgrade "shivammathur/php/php@$version" 2>/dev/null || brew install "shivammathur/php/php@$version"
|
brew upgrade -f "shivammathur/php/php@$version" 2>/dev/null || brew install -f "shivammathur/php/php@$version"
|
||||||
fi
|
fi
|
||||||
brew link --force --overwrite shivammathur/php/php@"$version"
|
brew link --force --overwrite shivammathur/php/php@"$version"
|
||||||
}
|
}
|
||||||
|
@ -2,20 +2,16 @@
|
|||||||
add_couchbase_libs() {
|
add_couchbase_libs() {
|
||||||
if [ "$(uname -s)" = "Linux" ]; then
|
if [ "$(uname -s)" = "Linux" ]; then
|
||||||
if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then
|
if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then
|
||||||
release="2.10.9"
|
trunk="http://packages.couchbase.com/ubuntu"
|
||||||
trunk="https://github.com/couchbase/libcouchbase/releases/download"
|
list="deb $trunk ${DISTRIB_CODENAME:?} ${DISTRIB_CODENAME:?}/main"
|
||||||
package="libcouchbase-${release}_ubuntu${DISTRIB_RELEASE/./}_${DISTRIB_CODENAME}_amd64.tar"
|
|
||||||
get -q -n /tmp/libcouchbase.tar "$trunk/$release/$package"
|
|
||||||
sudo tar -xf /tmp/libcouchbase.tar -C /tmp
|
|
||||||
install_packages libev4
|
|
||||||
sudo dpkg -i /tmp/libcouchbase-*/*.deb
|
|
||||||
else
|
else
|
||||||
trunk="http://packages.couchbase.com/clients/c/repos/deb"
|
trunk="http://packages.couchbase.com/clients/c/repos/deb"
|
||||||
list="deb $trunk/ubuntu${DISTRIB_RELEASE/./} ${DISTRIB_CODENAME:?} ${DISTRIB_CODENAME:?}/main"
|
list="deb $trunk/ubuntu${DISTRIB_RELEASE/./} ${DISTRIB_CODENAME:?} ${DISTRIB_CODENAME:?}/main"
|
||||||
|
fi
|
||||||
|
add_pecl
|
||||||
get -s -n "" "$trunk/couchbase.key" | sudo apt-key add
|
get -s -n "" "$trunk/couchbase.key" | sudo apt-key add
|
||||||
echo "$list" | sudo tee /etc/apt/sources.list.d/couchbase.list
|
echo "$list" | sudo tee /etc/apt/sources.list.d/couchbase.list
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
fi
|
|
||||||
${apt_install:?} libcouchbase-dev
|
${apt_install:?} libcouchbase-dev
|
||||||
else
|
else
|
||||||
if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then
|
if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then
|
||||||
|
@ -7,15 +7,6 @@ add_license_log() {
|
|||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to setup gcc-7 and g++-7
|
|
||||||
setup_compiler() {
|
|
||||||
if ! command -v gcc-7 >/dev/null || ! command -v g++-7 >/dev/null; then
|
|
||||||
add_ppa ubuntu-toolchain-r/test
|
|
||||||
add_packages gcc-7 g++-7 -y
|
|
||||||
fi
|
|
||||||
printf "gcc g++" | xargs -d ' ' -I {} sudo update-alternatives --install /usr/bin/{} {} /usr/bin/{}-7 7
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to set cubrid repo for the extension.
|
# Function to set cubrid repo for the extension.
|
||||||
set_cubrid_repo() {
|
set_cubrid_repo() {
|
||||||
case "${ext:?}" in
|
case "${ext:?}" in
|
||||||
@ -39,13 +30,11 @@ add_cubrid_helper() {
|
|||||||
status='Installed and enabled'
|
status='Installed and enabled'
|
||||||
set_cubrid_repo
|
set_cubrid_repo
|
||||||
set_cubrid_branch
|
set_cubrid_branch
|
||||||
[ "$DISTRIB_RELEASE" = "16.04" ] && setup_compiler
|
|
||||||
(
|
(
|
||||||
git clone -b "$cubrid_branch" --recursive "https://github.com/CUBRID/$cubrid_repo" "/tmp/$cubrid_repo"
|
git clone -b "$cubrid_branch" --recursive "https://github.com/CUBRID/$cubrid_repo" "/tmp/$cubrid_repo"
|
||||||
cd "/tmp/$cubrid_repo" || exit
|
cd "/tmp/$cubrid_repo" || exit
|
||||||
! [[ "$version" =~ ${old_versions:?} ]] && add_devtools
|
! [[ "$version" =~ ${old_versions:?} ]] && add_devtools
|
||||||
phpize
|
phpize && ./configure --with-php-config="$(command -v php-config)" --with-"${ext/_/-}"=shared
|
||||||
sudo ./configure --with-php-config="$(command -v php-config)" --with-"${ext/_/-}"=shared
|
|
||||||
make -j"$(nproc)"
|
make -j"$(nproc)"
|
||||||
sudo make install
|
sudo make install
|
||||||
)
|
)
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
# Helper function to add gearman extension.
|
# Helper function to add gearman extension.
|
||||||
add_gearman_helper() {
|
add_gearman_helper() {
|
||||||
add_ppa ondrej/pkg-gearman
|
sudo "${debconf_fix:?}" add-apt-repository ppa:ondrej/pkg-gearman -y
|
||||||
install_packages libgearman-dev
|
if [ -e "${ext_dir:?}/gearman.so" ] && [ "$DISTRIB_RELEASE" != "16.04" ]; then
|
||||||
enable_extension gearman extension
|
${apt_install:?} libgearman-dev
|
||||||
if ! check_extension gearman; then
|
echo "extension=gearman.so" | sudo tee -a "${scan_dir:?}/20-gearman.ini" >/dev/null 2>&1
|
||||||
status="Installed and enabled"
|
|
||||||
if [[ "${version:?}" =~ 5.[3-5] ]]; then
|
|
||||||
pecl_install gearman-1.1.2
|
|
||||||
else
|
else
|
||||||
install_packages php"${version:?}"-gearman || pecl_install gearman
|
status="Installed and enabled"
|
||||||
|
if [ "$DISTRIB_RELEASE" = "16.04" ]; then
|
||||||
|
sudo "${debconf_fix:?}" apt-get update -y
|
||||||
|
${apt_install:?} php"${version:?}"-gearman
|
||||||
|
else
|
||||||
|
${apt_install:?} libgearman-dev php"${version:?}"-gearman
|
||||||
fi
|
fi
|
||||||
enable_extension gearman extension
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
install_icu() {
|
install_icu() {
|
||||||
icu=$1
|
icu=$1
|
||||||
if [ "$(php -i | grep "ICU version =>" | sed -e "s|.*=> s*||")" != "$icu" ]; then
|
if [ "$(php -i | grep "ICU version =>" | sed -e "s|.*=> s*||")" != "$icu" ]; then
|
||||||
get -q -n /tmp/icu.tar.zst "https://dl.bintray.com/shivammathur/icu4c/icu4c-$icu.tar.zst"
|
get -q -n /tmp/icu.tar.zst "https://github.com/shivammathur/icu-intl/releases/download/icu4c/icu4c-$icu.tar.zst"
|
||||||
sudo tar -I zstd -xf /tmp/icu.tar.zst -C /usr/local
|
sudo tar -I zstd -xf /tmp/icu.tar.zst -C /usr/local
|
||||||
sudo cp -r /usr/local/icu/lib/* /usr/lib/x86_64-linux-gnu/
|
sudo cp -r /usr/local/icu/lib/* /usr/lib/x86_64-linux-gnu/
|
||||||
fi
|
fi
|
||||||
@ -11,12 +11,12 @@ install_icu() {
|
|||||||
# Function to add ext-intl with the given version of ICU
|
# Function to add ext-intl with the given version of ICU
|
||||||
add_intl() {
|
add_intl() {
|
||||||
icu=$(echo "$1" | cut -d'-' -f 2)
|
icu=$(echo "$1" | cut -d'-' -f 2)
|
||||||
supported_version=$(get -s -n "" https://api.bintray.com/packages/shivammathur/icu4c/icu4c | grep -Po "$icu" | head -n 1)
|
supported_version=$(get -s -n "" https://api.github.com/repos/shivammathur/icu-intl/releases | grep -Po "${icu//./\\.}" | head -n 1)
|
||||||
if [ "$icu" != "$supported_version" ]; then
|
if [ "$icu" != "$supported_version" ]; then
|
||||||
add_log "${cross:?}" "intl" "ICU $icu is not supported"
|
add_log "${cross:?}" "intl" "ICU $icu is not supported"
|
||||||
else
|
else
|
||||||
install_icu "$icu" >/dev/null 2>&1
|
install_icu "$icu" >/dev/null 2>&1
|
||||||
get -q -n "${ext_dir:?}/intl.so" "https://dl.bintray.com/shivammathur/icu4c/php${version:?}-intl-$icu.so"
|
get -q -n "${ext_dir:?}/intl.so" "https://github.com/shivammathur/icu-intl/releases/download/intl/php${version:?}-intl-$icu.so"
|
||||||
enable_extension intl extension
|
enable_extension intl extension
|
||||||
add_extension_log intl "Installed and enabled with ICU $icu"
|
add_extension_log intl "Installed and enabled with ICU $icu"
|
||||||
fi
|
fi
|
||||||
|
@ -6,7 +6,8 @@ add_phalcon_helper() {
|
|||||||
if [ "$extension" = "phalcon4" ]; then
|
if [ "$extension" = "phalcon4" ]; then
|
||||||
${apt_install:?} "php${version:?}-psr" "php${version:?}-$extension"
|
${apt_install:?} "php${version:?}-psr" "php${version:?}-$extension"
|
||||||
else
|
else
|
||||||
${apt_install:?} "php${version:?}-$extension"
|
get -q -e /tmp/phalcon.deb "https://packagecloud.io/phalcon/stable/packages/ubuntu/bionic/php${version:?}-phalcon_3.4.5-1+php${version:?}_amd64.deb/download.deb"
|
||||||
|
sudo dpkg -i /tmp/phalcon.deb
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
sed -i '' '/extension.*psr/d' "${ini_file:?}"
|
sed -i '' '/extension.*psr/d' "${ini_file:?}"
|
||||||
|
@ -4,50 +4,30 @@ self_hosted_helper() {
|
|||||||
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
|
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
|
||||||
fi
|
fi
|
||||||
install_packages curl make software-properties-common unzip autoconf automake gcc g++
|
install_packages curl make software-properties-common unzip autoconf automake gcc g++
|
||||||
add_ppa ondrej/ppa
|
add_ppa
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to backup and cleanup package lists.
|
# Function to backup and cleanup package lists.
|
||||||
cleanup_lists() {
|
cleanup_lists() {
|
||||||
ppa_prefix=${1-ondrej}
|
|
||||||
if [ ! -e /etc/apt/sources.list.d.save ]; then
|
if [ ! -e /etc/apt/sources.list.d.save ]; then
|
||||||
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save
|
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save
|
||||||
sudo mkdir /etc/apt/sources.list.d
|
sudo mkdir /etc/apt/sources.list.d
|
||||||
sudo mv /etc/apt/sources.list.d.save/*"${ppa_prefix}"*.list /etc/apt/sources.list.d/
|
sudo mv /etc/apt/sources.list.d.save/*ondrej*.list /etc/apt/sources.list.d/
|
||||||
sudo mv /etc/apt/sources.list.d.save/*dotdeb*.list /etc/apt/sources.list.d/ 2>/dev/null || true
|
|
||||||
trap "sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
|
trap "sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to add ppa:ondrej/php.
|
# Function to add ppa:ondrej/php.
|
||||||
add_ppa() {
|
add_ppa() {
|
||||||
ppa=${1:-ondrej/php}
|
if ! apt-cache policy | grep -q ondrej/php; then
|
||||||
if ! apt-cache policy | grep -q "$ppa"; then
|
cleanup_lists
|
||||||
cleanup_lists "$(dirname "$ppa")"
|
LC_ALL=C.UTF-8 sudo apt-add-repository ppa:ondrej/php -y
|
||||||
LC_ALL=C.UTF-8 sudo apt-add-repository ppa:"$ppa" -y
|
|
||||||
if [ "$DISTRIB_RELEASE" = "16.04" ]; then
|
if [ "$DISTRIB_RELEASE" = "16.04" ]; then
|
||||||
sudo "$debconf_fix" apt-get update
|
sudo "$debconf_fix" apt-get update
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to add SAPI
|
|
||||||
add_sapi() {
|
|
||||||
sapi=$1
|
|
||||||
status='true'
|
|
||||||
if [ "$sapi" != "cli" ]; then
|
|
||||||
# shellcheck source=.
|
|
||||||
. "${dist}"/../src/scripts/sapi.sh
|
|
||||||
setup_sapi "$sapi" >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
check_sapi "$sapi"
|
|
||||||
if check_sapi "$sapi"; then
|
|
||||||
add_log "${tick:?}" "$sapi" "Added $sapi"
|
|
||||||
else
|
|
||||||
add_log "${cross:?}" "$sapi" "Could not setup $sapi"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to update the package lists.
|
# Function to update the package lists.
|
||||||
update_lists() {
|
update_lists() {
|
||||||
if [ ! -e /tmp/setup_php ]; then
|
if [ ! -e /tmp/setup_php ]; then
|
||||||
@ -77,9 +57,7 @@ delete_extension() {
|
|||||||
extension=$1
|
extension=$1
|
||||||
disable_extension "$extension"
|
disable_extension "$extension"
|
||||||
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
||||||
if [ "${runner:?}" = "self-hosted" ]; then
|
sudo sed -i "/Package: php$version-$extension/,/^$/d" /var/lib/dpkg/status
|
||||||
$apt_remove "php-$extension" "php$version-$extension" >/dev/null 2>&1 || true
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to disable and delete extensions.
|
# Function to disable and delete extensions.
|
||||||
@ -88,7 +66,6 @@ remove_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
if [[ ! "$version" =~ ${old_versions:?} ]] && [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
if [[ ! "$version" =~ ${old_versions:?} ]] && [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
||||||
sudo phpdismod -v "$version" "$extension" >/dev/null 2>&1
|
sudo phpdismod -v "$version" "$extension" >/dev/null 2>&1
|
||||||
echo "$extension" | sudo tee -a /tmp/setup_php_dismod >/dev/null 2>&1
|
|
||||||
fi
|
fi
|
||||||
delete_extension "$extension"
|
delete_extension "$extension"
|
||||||
(! check_extension "$extension" && add_log "${tick:?}" ":$extension" "Removed") ||
|
(! check_extension "$extension" && add_log "${tick:?}" ":$extension" "Removed") ||
|
||||||
@ -136,9 +113,7 @@ add_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
add_log "${tick:?}" "$extension" "Enabled"
|
add_log "${tick:?}" "$extension" "Enabled"
|
||||||
else
|
else
|
||||||
if [[ "$version" =~ 5.[4-5] ]]; then
|
if [[ "$version" =~ ${nightly_versions:?} ]]; then
|
||||||
install_packages "php5-$extension=$release_version"
|
|
||||||
elif [[ "$version" =~ ${nightly_versions:?} ]]; then
|
|
||||||
pecl_install "$extension"
|
pecl_install "$extension"
|
||||||
else
|
else
|
||||||
install_packages "php$version-$extension" || pecl_install "$extension"
|
install_packages "php$version-$extension" || pecl_install "$extension"
|
||||||
@ -182,12 +157,12 @@ add_devtools() {
|
|||||||
# Function to setup the nightly build from shivammathur/php-builder
|
# Function to setup the nightly build from shivammathur/php-builder
|
||||||
setup_nightly() {
|
setup_nightly() {
|
||||||
run_script "php-builder" "$runner" "$version"
|
run_script "php-builder" "$runner" "$version"
|
||||||
|
extra_version="($(cat "/etc/php/$version/COMMIT"))"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to setup PHP 5.3, PHP 5.4 and PHP 5.5.
|
# Function to setup PHP 5.3, PHP 5.4 and PHP 5.5.
|
||||||
setup_old_versions() {
|
setup_old_versions() {
|
||||||
run_script "php5-ubuntu" "$version"
|
run_script "php5-ubuntu" "$version"
|
||||||
release_version=$(php -v | head -n 1 | cut -d' ' -f 2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to add PECL.
|
# Function to add PECL.
|
||||||
@ -219,14 +194,14 @@ add_packaged_php() {
|
|||||||
IFS=' ' read -r -a packages <<<"$(echo "cli curl mbstring xml intl" | sed "s/[^ ]*/php$version-&/g")"
|
IFS=' ' read -r -a packages <<<"$(echo "cli curl mbstring xml intl" | sed "s/[^ ]*/php$version-&/g")"
|
||||||
$apt_install "${packages[@]}"
|
$apt_install "${packages[@]}"
|
||||||
else
|
else
|
||||||
run_script "test-setup-php" "$version"
|
run_script "php-ubuntu" "$version"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to update PHP.
|
# Function to update PHP.
|
||||||
update_php() {
|
update_php() {
|
||||||
initial_version=$(php_semver)
|
initial_version=$(php_semver)
|
||||||
add_packaged_php
|
use_package_cache="false" add_packaged_php
|
||||||
updated_version=$(php_semver)
|
updated_version=$(php_semver)
|
||||||
if [ "$updated_version" != "$initial_version" ]; then
|
if [ "$updated_version" != "$initial_version" ]; then
|
||||||
status="Updated to"
|
status="Updated to"
|
||||||
@ -295,7 +270,7 @@ setup_php() {
|
|||||||
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
|
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
|
||||||
sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
|
sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
|
||||||
sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/"
|
sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/"
|
||||||
add_log "${tick:?}" "PHP" "$status PHP $semver"
|
add_log "${tick:?}" "PHP" "$status PHP $semver $extra_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
|
@ -1,116 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
install_httpd() {
|
|
||||||
sudo mkdir -p /var/www/html
|
|
||||||
sudo chown -R _www:_www /var/www
|
|
||||||
brew services stop nginx 2>/dev/null || true
|
|
||||||
if ! command -v httpd >/dev/null; then
|
|
||||||
brew install httpd
|
|
||||||
fi
|
|
||||||
sudo sed -Ei '' 's/Listen.*/Listen 80/' "$httpd_conf"
|
|
||||||
sudo sed -Ei '' 's/DirectoryIndex.*/DirectoryIndex index.php index.html/' "$httpd_conf"
|
|
||||||
}
|
|
||||||
|
|
||||||
install_nginx() {
|
|
||||||
sudo mkdir -p /var/www/html
|
|
||||||
sudo chown -R "$(id -un)":"$(id -gn)" /var/www
|
|
||||||
brew services stop httpd 2>/dev/null || true
|
|
||||||
if ! command -v nginx >/dev/null; then
|
|
||||||
brew install nginx
|
|
||||||
fi
|
|
||||||
sudo sed -Ei '' 's/listen.*/listen 80;/' "$nginx_conf"
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_sapi() {
|
|
||||||
sapi=$1
|
|
||||||
conf_dir="${dist:?}"/../src/configs
|
|
||||||
|
|
||||||
case $sapi in
|
|
||||||
apache*:apache*)
|
|
||||||
install_httpd
|
|
||||||
(
|
|
||||||
echo "LoadModule proxy_module lib/httpd/modules/mod_proxy.so"
|
|
||||||
echo "LoadModule proxy_module lib/httpd/modules/mod_proxy_fcgi.so"
|
|
||||||
) | sudo tee -a "$httpd_conf"
|
|
||||||
echo "Include $httpd_extra/httpd-php.conf" | sudo tee -a "$httpd_conf"
|
|
||||||
|
|
||||||
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
sudo a2dismod mpm_event 2>/dev/null || true
|
|
||||||
sudo a2enmod mpm_prefork php"${version:?}"
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
fpm:apache*)
|
|
||||||
install_httpd
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
sudo a2dismod php"${version:?}" 2>/dev/null || true
|
|
||||||
sudo a2enmod proxy_fcgi
|
|
||||||
sudo a2enconf php"${version:?}"-fpm
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
cgi:apache*)
|
|
||||||
install_httpd
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
echo "Action application/x-httpd-php /cgi-bin/php${version:?}" | sudo tee -a /etc/apache2/conf-available/php"${version:?}"-cgi.conf
|
|
||||||
sudo a2dismod php"${version:?}" mpm_event 2>/dev/null || true
|
|
||||||
sudo a2enmod mpm_prefork actions cgi
|
|
||||||
sudo a2disconf php"${version:?}"-fpm 2>/dev/null || true
|
|
||||||
sudo a2enconf php"${version:?}"-cgi
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
fpm:nginx)
|
|
||||||
install_nginx
|
|
||||||
sudo cp "$conf_dir"/default_nginx /etc/nginx/sites-available/default
|
|
||||||
sudo sed -i "s/PHP_VERSION/${version:?}/" /etc/nginx/sites-available/default
|
|
||||||
sudo service nginx restart
|
|
||||||
;;
|
|
||||||
apache* | fpm | cgi | phpdbg) ;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
check_service() {
|
|
||||||
service=$1
|
|
||||||
if ! pidof "$service"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
(
|
|
||||||
printf "::group::\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "$service" "Click to check $service status"
|
|
||||||
sudo service "$service" status
|
|
||||||
echo "::endgroup::"
|
|
||||||
) | sudo tee -a /tmp/sapi.log >/dev/null 2>&1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
check_version() {
|
|
||||||
sapi=$1
|
|
||||||
sapi_version=$(php_semver "$sapi")
|
|
||||||
if [ ${sapi_version%.*} != "${version:?}" ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
add_log "${tick:?}" "$sapi" "Added $sapi $sapi_version" | sudo tee -a /tmp/sapi.log >/dev/null 2>&1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
check_sapi() {
|
|
||||||
sapi=$1
|
|
||||||
sudo rm /tmp/sapi.log
|
|
||||||
if [[ "$sapi" =~ fpm|cgi ]]; then status=$(check_version php-"$sapi"); fi
|
|
||||||
if [[ "$sapi" =~ ^phpdbg$ ]]; then status=$(check_version phpdbg); fi
|
|
||||||
if [[ "$sapi" =~ .*fpm.* ]]; then status=$(check_service php"${version:?}"-fpm); fi
|
|
||||||
if [[ "$sapi" =~ .*:apache.* ]]; then status=$(check_service apache2); fi
|
|
||||||
if [[ "$sapi" =~ .*:nginx.* ]]; then status=$(check_service nginx); fi
|
|
||||||
|
|
||||||
if [ "$status" = "0" ]; then
|
|
||||||
if [[ "$sapi" =~ .*:.* ]]; then
|
|
||||||
add_log "${tick:?}" "$sapi" "Added $sapi"
|
|
||||||
fi
|
|
||||||
cat /tmp/sapi.log && sudo rm /tmp/sapi.log
|
|
||||||
else
|
|
||||||
add_log "${cross:?}" "$sapi" "Could not setup $sapi"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
httpd_conf=${brew_prefix:?}/etc/httpd/httpd.conf
|
|
||||||
httpd_extra=${brew_prefix:?}/etc/httpd/extra
|
|
||||||
nginx_conf=${brew_prefix:?}/etc/nginx/nginx.conf
|
|
@ -1,117 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
install_apache2() {
|
|
||||||
sudo mkdir -p /var/www/html
|
|
||||||
sudo service nginx stop 2>/dev/null || true
|
|
||||||
if ! command -v apache2 >/dev/null; then
|
|
||||||
install_packages apache2-bin apache2 -y;
|
|
||||||
else
|
|
||||||
if ! [[ "$(apache2 -v 2>/dev/null | grep -Eo "([0-9]+\.[0-9]+)")" =~ 2.[4-9] ]]; then
|
|
||||||
sudo "${debconf_fix:?}" apt-get purge apache* apache-* >/dev/null
|
|
||||||
install_packages apache2-bin apache2 -y;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_nginx() {
|
|
||||||
sudo mkdir -p /var/www/html
|
|
||||||
sudo service apache2 stop 2>/dev/null || true
|
|
||||||
if ! command -v nginx >/dev/null; then
|
|
||||||
install_packages nginx -y
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_sapi() {
|
|
||||||
sapi=$1
|
|
||||||
conf_dir="${dist:?}"/../src/configs
|
|
||||||
|
|
||||||
if [[ "${version:?}" =~ ${old_versions:?}|${nightly_versions:?} ]]; then
|
|
||||||
switch_sapi "$sapi"
|
|
||||||
else
|
|
||||||
case $sapi in
|
|
||||||
apache*:apache*)
|
|
||||||
install_apache2
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
install_packages libapache2-mod-php"${version:?}" -y
|
|
||||||
sudo a2dismod mpm_event 2>/dev/null || true
|
|
||||||
sudo a2enmod mpm_prefork php"${version:?}"
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
fpm:apache*)
|
|
||||||
install_apache2
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
install_packages libapache2-mod-fcgid php"${version:?}"-fpm -y
|
|
||||||
sudo a2dismod php"${version:?}" 2>/dev/null || true
|
|
||||||
sudo a2enmod proxy_fcgi
|
|
||||||
sudo a2enconf php"${version:?}"-fpm
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
cgi:apache*)
|
|
||||||
install_apache2
|
|
||||||
install_packages php"${version:?}"-cgi -y
|
|
||||||
sudo cp "$conf_dir"/default_apache /etc/apache2/sites-available/000-default.conf
|
|
||||||
echo "Action application/x-httpd-php /cgi-bin/php${version:?}" | sudo tee -a /etc/apache2/conf-available/php"${version:?}"-cgi.conf
|
|
||||||
sudo a2dismod php"${version:?}" mpm_event 2>/dev/null || true
|
|
||||||
sudo a2enmod mpm_prefork actions cgi
|
|
||||||
sudo a2disconf php"${version:?}"-fpm 2>/dev/null || true
|
|
||||||
sudo a2enconf php"${version:?}"-cgi
|
|
||||||
sudo service apache2 restart
|
|
||||||
;;
|
|
||||||
fpm:nginx)
|
|
||||||
install_nginx
|
|
||||||
install_packages php"${version:?}"-fpm -y
|
|
||||||
sudo cp "$conf_dir"/default_nginx /etc/nginx/sites-available/default
|
|
||||||
sudo sed -i "s/PHP_VERSION/${version:?}/" /etc/nginx/sites-available/default
|
|
||||||
sudo service nginx restart
|
|
||||||
;;
|
|
||||||
apache*)
|
|
||||||
install_packages libapache2-mod-php"${version:?}" -y
|
|
||||||
;;
|
|
||||||
fpm|embed|cgi|phpdbg)
|
|
||||||
install_packages php"${version:?}"-"$sapi" -y
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check_service() {
|
|
||||||
service=$1
|
|
||||||
if ! pidof "$service"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
(
|
|
||||||
printf "::group::\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "$service" "Click to check $service status"
|
|
||||||
sudo service "$service" status
|
|
||||||
echo "::endgroup::"
|
|
||||||
) | sudo tee -a /tmp/sapi.log >/dev/null 2>&1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
check_version() {
|
|
||||||
sapi=$1
|
|
||||||
sapi_version=$(php_semver "$sapi")
|
|
||||||
if [ "${sapi_version%.*}" != "${version:?}" ]; then
|
|
||||||
return 1;
|
|
||||||
fi
|
|
||||||
add_log "${tick:?}" "$sapi" "Added $sapi $sapi_version" | sudo tee -a /tmp/sapi.log >/dev/null 2>&1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
check_sapi() {
|
|
||||||
sapi=$1
|
|
||||||
sudo rm /tmp/sapi.log
|
|
||||||
if [[ "$sapi" =~ fpm|cgi ]]; then status=$(check_version php-"$sapi"); fi
|
|
||||||
if [[ "$sapi" =~ ^phpdbg$ ]]; then status=$(check_version phpdbg); fi
|
|
||||||
if [[ "$sapi" =~ .*fpm.* ]]; then status=$(check_service php"${version:?}"-fpm); fi
|
|
||||||
if [[ "$sapi" =~ .*:apache.* ]]; then status=$(check_service apache2); fi
|
|
||||||
if [[ "$sapi" =~ .*:nginx.* ]]; then status=$(check_service nginx); fi
|
|
||||||
|
|
||||||
if [ "$status" = "0" ]; then
|
|
||||||
if [[ "$sapi" =~ .*:.* ]]; then
|
|
||||||
add_log "${tick:?}" "$sapi" "Added $sapi"
|
|
||||||
fi
|
|
||||||
cat /tmp/sapi.log && sudo rm /tmp/sapi.log
|
|
||||||
else
|
|
||||||
add_log "${cross:?}" "$sapi" "Could not setup $sapi"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -333,8 +333,8 @@ $cross = ([char]10007)
|
|||||||
$php_dir = 'C:\tools\php'
|
$php_dir = 'C:\tools\php'
|
||||||
$ext_dir = "$php_dir\ext"
|
$ext_dir = "$php_dir\ext"
|
||||||
$bin_dir = $php_dir
|
$bin_dir = $php_dir
|
||||||
$bintray = 'https://dl.bintray.com/shivammathur/php'
|
|
||||||
$github = 'https://github.com'
|
$github = 'https://github.com'
|
||||||
|
$php_builder = "$github/shivammathur/php-builder-windows"
|
||||||
$composer_bin = "$env:APPDATA\Composer\vendor\bin"
|
$composer_bin = "$env:APPDATA\Composer\vendor\bin"
|
||||||
$composer_json = "$env:APPDATA\Composer\composer.json"
|
$composer_json = "$env:APPDATA\Composer\composer.json"
|
||||||
$composer_lock = "$env:APPDATA\Composer\composer.lock"
|
$composer_lock = "$env:APPDATA\Composer\composer.lock"
|
||||||
@ -401,7 +401,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if ($version -match $nightly_versions) {
|
if ($version -match $nightly_versions) {
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri https://github.com/shivammathur/php-builder-windows/releases/latest/download/Get-PhpNightly.ps1 -OutFile $php_dir\Get-PhpNightly.ps1 > $null 2>&1
|
Invoke-WebRequest -UseBasicParsing -Uri $php_builder/releases/latest/download/Get-PhpNightly.ps1 -OutFile $php_dir\Get-PhpNightly.ps1 > $null 2>&1
|
||||||
& $php_dir\Get-PhpNightly.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir > $null 2>&1
|
& $php_dir\Get-PhpNightly.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir > $null 2>&1
|
||||||
} else {
|
} else {
|
||||||
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force > $null 2>&1
|
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force > $null 2>&1
|
||||||
@ -426,7 +426,7 @@ if($installed.MajorMinorVersion -ne $version) {
|
|||||||
}
|
}
|
||||||
('date.timezone=UTC', 'memory_limit=-1', 'xdebug.mode=coverage') | ForEach-Object { $p=$_.split('='); Set-PhpIniKey -Key $p[0] -Value $p[1] -Path $php_dir }
|
('date.timezone=UTC', 'memory_limit=-1', 'xdebug.mode=coverage') | ForEach-Object { $p=$_.split('='); Set-PhpIniKey -Key $p[0] -Value $p[1] -Path $php_dir }
|
||||||
if($version -lt "5.5") {
|
if($version -lt "5.5") {
|
||||||
('libeay32.dll', 'ssleay32.dll') | ForEach-Object { Invoke-WebRequest -Uri $bintray/$_ -OutFile $php_dir\$_ >$null 2>&1 }
|
('libeay32.dll', 'ssleay32.dll') | ForEach-Object { Invoke-WebRequest -Uri "$php_builder/releases/download/openssl-1.0.2u/$_" -OutFile $php_dir\$_ >$null 2>&1 }
|
||||||
} else {
|
} else {
|
||||||
$enable_extensions += ('opcache')
|
$enable_extensions += ('opcache')
|
||||||
}
|
}
|
||||||
|
14
src/utils.ts
14
src/utils.ts
@ -234,20 +234,20 @@ export async function writeScript(
|
|||||||
/**
|
/**
|
||||||
* Function to break extension csv into an array
|
* Function to break extension csv into an array
|
||||||
*
|
*
|
||||||
* @param package_csv
|
* @param extension_csv
|
||||||
*/
|
*/
|
||||||
export async function packageArray(
|
export async function extensionArray(
|
||||||
package_csv: string
|
extension_csv: string
|
||||||
): Promise<Array<string>> {
|
): Promise<Array<string>> {
|
||||||
switch (package_csv) {
|
switch (extension_csv) {
|
||||||
case '':
|
case '':
|
||||||
case ' ':
|
case ' ':
|
||||||
return [];
|
return [];
|
||||||
default:
|
default:
|
||||||
return package_csv
|
return extension_csv
|
||||||
.split(',')
|
.split(',')
|
||||||
.map(function (package_name: string) {
|
.map(function (extension: string) {
|
||||||
return package_name
|
return extension
|
||||||
.trim()
|
.trim()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replace(/^php[-_]/, '');
|
.replace(/^php[-_]/, '');
|
||||||
|
Reference in New Issue
Block a user