diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1a6f847d65e58e1e172a969d8871524a7932c46c 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -0,0 +1 @@ +ALTER TABLE `server_php` ADD `php_cli_binary` varchar(255) DEFAULT NULL AFTER `php_fpm_socket_dir`; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 75529ab82b50735e6bd00e22f31d791d430514d4..e9aa9aaeed3200b2371d4edc735af11bab2d816a 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1460,6 +1460,7 @@ CREATE TABLE `server_php` ( `php_fpm_ini_dir` varchar(255) DEFAULT NULL, `php_fpm_pool_dir` varchar(255) DEFAULT NULL, `php_fpm_socket_dir` varchar(255) DEFAULT NULL, + `php_cli_binary` varchar(255) DEFAULT NULL, `active` enum('n','y') NOT NULL DEFAULT 'y', `sortprio` int(20) NOT NULL DEFAULT 100, PRIMARY KEY (`server_php_id`) diff --git a/interface/web/admin/form/server_php.tform.php b/interface/web/admin/form/server_php.tform.php index 67f22cbeb43277931f7451d89a135319b13de5c7..a77a719f20bed41e77cf360549b6445980084d2e 100644 --- a/interface/web/admin/form/server_php.tform.php +++ b/interface/web/admin/form/server_php.tform.php @@ -248,6 +248,30 @@ $form["tabs"]['php_fpm'] = array( //################################# ) ); +$form["tabs"]['php_cli'] = array ( +'title' => "PHP-CLI settings", +'width' => 80, +'template' => "templates/server_php_cli_edit.htm", +'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'php_cli_binary' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), +) +); $form["tabs"]['php_sort'] = array ( 'title' => "PHP Sort Priority", 'width' => 80, diff --git a/interface/web/admin/lib/lang/ar_server_php.lng b/interface/web/admin/lib/lang/ar_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/ar_server_php.lng +++ b/interface/web/admin/lib/lang/ar_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_php.lng b/interface/web/admin/lib/lang/bg_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/bg_server_php.lng +++ b/interface/web/admin/lib/lang/bg_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/br_server_php.lng b/interface/web/admin/lib/lang/br_server_php.lng index 791db7e3ec70cde55a0ac003fb7738f64942020e..cb1b93acc32442a1830e0e03a79b741f5953b9c4 100644 --- a/interface/web/admin/lib/lang/br_server_php.lng +++ b/interface/web/admin/lib/lang/br_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'O nome não pode ser modificado.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_php.lng b/interface/web/admin/lib/lang/ca_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/ca_server_php.lng +++ b/interface/web/admin/lib/lang/ca_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/cn_server_php.lng b/interface/web/admin/lib/lang/cn_server_php.lng index 80571fb1947cfbb38329f6f693f7553391197ca5..102bcc1fbf94070a94e14f2c7731845f4ec25be4 100644 --- a/interface/web/admin/lib/lang/cn_server_php.lng +++ b/interface/web/admin/lib/lang/cn_server_php.lng @@ -17,4 +17,9 @@ $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM套接å—目录'; $wb['active_txt'] = '激活'; $wb['php_in_use_error'] = 'æ¤PHP版本æ£åœ¨ä½¿ç”¨ä¸ã€‚'; $wb['php_name_in_use_error'] = 'åç§°æ— æ³•æ›´æ”¹ã€‚'; +$wb['PHP Sort Priority'] = 'Priority'; +$wb['sortprio_txt'] = 'Priority'; +$wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng index 64909284298ba7f655b2c7a33e68e299a7620b6c..eb16414a31dafcf8a7132808ea484700c6800261 100644 --- a/interface/web/admin/lib/lang/cz_server_php.lng +++ b/interface/web/admin/lib/lang/cz_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/de_server_php.lng b/interface/web/admin/lib/lang/de_server_php.lng index 4100957b9d336884d26b935487bc1f8a79c48344..a63e90d80c6d650f500088c40224f48666c3ec87 100644 --- a/interface/web/admin/lib/lang/de_server_php.lng +++ b/interface/web/admin/lib/lang/de_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'Der Name kann nicht geändert werden.'; $wb['PHP Sort Priority'] = 'Priorität'; $wb['sortprio_txt'] = 'Sorting Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP Version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI-Einstellungen'; +$wb['php_cli_binary_txt'] = 'Pfad zur PHP-CLI Binary'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_php.lng b/interface/web/admin/lib/lang/dk_server_php.lng index e9b42a51334a4f9868e6d9eee0099ea398194d9c..b43202ae41abdd0ec6b4b2e6773a3b6d309dc514 100644 --- a/interface/web/admin/lib/lang/dk_server_php.lng +++ b/interface/web/admin/lib/lang/dk_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/el_server_php.lng b/interface/web/admin/lib/lang/el_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/el_server_php.lng +++ b/interface/web/admin/lib/lang/el_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/en_server_php.lng b/interface/web/admin/lib/lang/en_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/en_server_php.lng +++ b/interface/web/admin/lib/lang/en_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/es_server_php.lng b/interface/web/admin/lib/lang/es_server_php.lng index e75aa0e4e472095332f3994c901787fd4ae6f120..ff81b3ae90fa99c6327f1ffd3a3fc651807c1789 100644 --- a/interface/web/admin/lib/lang/es_server_php.lng +++ b/interface/web/admin/lib/lang/es_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_php.lng b/interface/web/admin/lib/lang/fi_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/fi_server_php.lng +++ b/interface/web/admin/lib/lang/fi_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_php.lng b/interface/web/admin/lib/lang/fr_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/fr_server_php.lng +++ b/interface/web/admin/lib/lang/fr_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_php.lng b/interface/web/admin/lib/lang/hr_server_php.lng index 9db79d4f9b727891c49319105f3ba293d3b452d3..57c44ae53cba58fc7f3df36dfc8e09e534103c33 100644 --- a/interface/web/admin/lib/lang/hr_server_php.lng +++ b/interface/web/admin/lib/lang/hr_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_php.lng b/interface/web/admin/lib/lang/hu_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/hu_server_php.lng +++ b/interface/web/admin/lib/lang/hu_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/id_server_php.lng b/interface/web/admin/lib/lang/id_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/id_server_php.lng +++ b/interface/web/admin/lib/lang/id_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/it_server_php.lng b/interface/web/admin/lib/lang/it_server_php.lng index d4feb7cb0c3232c8aec6c8048c5a437dd5abd3e5..76c97e8adc09a1c471f5461077ff70e4161f0d0b 100644 --- a/interface/web/admin/lib/lang/it_server_php.lng +++ b/interface/web/admin/lib/lang/it_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'Il nome non può essere cambiato.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_php.lng b/interface/web/admin/lib/lang/ja_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/ja_server_php.lng +++ b/interface/web/admin/lib/lang/ja_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_php.lng b/interface/web/admin/lib/lang/nl_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/nl_server_php.lng +++ b/interface/web/admin/lib/lang/nl_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_php.lng b/interface/web/admin/lib/lang/pl_server_php.lng index d86e2cf01ff0d53b779b690c8f072c6adf927ed4..c43dd727cb651640e342baac74dcac028baee45e 100644 --- a/interface/web/admin/lib/lang/pl_server_php.lng +++ b/interface/web/admin/lib/lang/pl_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_php.lng b/interface/web/admin/lib/lang/pt_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/pt_server_php.lng +++ b/interface/web/admin/lib/lang/pt_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_php.lng b/interface/web/admin/lib/lang/ro_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/ro_server_php.lng +++ b/interface/web/admin/lib/lang/ro_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_php.lng b/interface/web/admin/lib/lang/ru_server_php.lng index ca1a8147a3e1739267f95d5db2577fa8e64a50b4..6644018b3a531addcce8b23b470bc058f57d1f8a 100644 --- a/interface/web/admin/lib/lang/ru_server_php.lng +++ b/interface/web/admin/lib/lang/ru_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/se_server_php.lng b/interface/web/admin/lib/lang/se_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/se_server_php.lng +++ b/interface/web/admin/lib/lang/se_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_php.lng b/interface/web/admin/lib/lang/sk_server_php.lng index 4d71bb50b7269cea5394e2df229b5d94d42bcb5c..89b357cdbccd594701c970bed0d520904e972ba1 100644 --- a/interface/web/admin/lib/lang/sk_server_php.lng +++ b/interface/web/admin/lib/lang/sk_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_php.lng b/interface/web/admin/lib/lang/tr_server_php.lng index 914d28f167314f3fc6b10ec070f44cd4fa4f1a03..447b3ab20bd4f558d77bd10f5343e179f451f2a2 100644 --- a/interface/web/admin/lib/lang/tr_server_php.lng +++ b/interface/web/admin/lib/lang/tr_server_php.lng @@ -20,4 +20,6 @@ $wb['php_name_in_use_error'] = 'The name can not be changed.'; $wb['PHP Sort Priority'] = 'Priority'; $wb['sortprio_txt'] = 'Priority'; $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority'; +$wb['PHP-CLI settings'] = 'PHP-CLI settings'; +$wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary'; ?> diff --git a/interface/web/admin/templates/server_php_cli_edit.htm b/interface/web/admin/templates/server_php_cli_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..72e26bd4b8bf7cd2d56e64001cf03b9bb3b638f0 --- /dev/null +++ b/interface/web/admin/templates/server_php_cli_edit.htm @@ -0,0 +1,10 @@ + <div class="form-group"> + <label for="php_cli_binary" class="col-sm-3 control-label">{tmpl_var name='php_cli_binary_txt'}</label> + <div class="col-sm-9"><input type="text" name="php_cli_binary" id="php_cli_binary" value="{tmpl_var name='php_cli_binary'}" class="form-control" /></div></div> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="clear"><div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button> + </div></div> diff --git a/interface/web/sites/lib/lang/de_cron.lng b/interface/web/sites/lib/lang/de_cron.lng index 535f7e7dca8a9b3fae443da5c63c81b2dab49225..260744116aa6d1a9150f3db082fc6509ba612ac6 100644 --- a/interface/web/sites/lib/lang/de_cron.lng +++ b/interface/web/sites/lib/lang/de_cron.lng @@ -23,4 +23,5 @@ $wb['command_hint_txt'] = 'z. B. /var/www/clients/clientX/webY/myscript.sh oder $wb['log_output_txt'] = 'Ausgabe loggen'; $wb['limit_cron_url_txt'] = 'Es sind nur URL cronjobs möglich. Der Cron-Befehl muss mit https:// beginnen.'; $wb['command_error_empty'] = 'Befehl ist leer.'; +$wb['variables_txt'] = 'Variablen'; ?> diff --git a/interface/web/sites/lib/lang/en_cron.lng b/interface/web/sites/lib/lang/en_cron.lng index 871d4a292e767fc4356678bc3552bdb4d65a777c..e912da82a5121f00106a4b9667cc3853495df668 100644 --- a/interface/web/sites/lib/lang/en_cron.lng +++ b/interface/web/sites/lib/lang/en_cron.lng @@ -23,4 +23,5 @@ $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or htt $wb['log_output_txt'] = 'Log output'; $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with https:// as cron command.'; $wb['command_error_empty'] = 'Command is empty.'; -?> \ No newline at end of file +$wb['variables_txt'] = 'Variables'; +?> diff --git a/interface/web/sites/templates/cron_edit.htm b/interface/web/sites/templates/cron_edit.htm index 2c0f22ddb92728b2ef061a0eea1923cfe5ad0c77..ffb025468156561e9eea032b0ce5c5c5c1d96c7c 100644 --- a/interface/web/sites/templates/cron_edit.htm +++ b/interface/web/sites/templates/cron_edit.htm @@ -51,7 +51,8 @@ <label for="command" class="col-sm-3 control-label">{tmpl_var name='command_txt'}</label> <div class="col-sm-9"> <input type="text" name="command" id="command" value="{tmpl_var name='command'}" class="form-control" /> - <p class="formHint">{tmpl_var name='command_hint_txt'}</p> + <b>{tmpl_var name='variables_txt'}:</b> <a href="javascript:void(0);" class="addPlaceholder">{SITE_PHP}</a>, <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT_CLIENT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{DOMAIN}</a> + <br><br><p class="formHint">{tmpl_var name='command_hint_txt'}</p> </div> </div> <div class="form-group"> @@ -66,7 +67,7 @@ {tmpl_var name='active'} </div> </div> - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index be9f0911c73ab6228f0f94c069d3b2a5a7068826..14b3965d890effd7e3cbfbf72b54d6e2073ecbf2 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -1443,6 +1443,25 @@ class page_action extends tform_actions { global $app, $conf; if(isset($this->dataRecord['folder_directive_snippets'])) $app->db->query("UPDATE web_domain SET folder_directive_snippets = ? WHERE domain_id = ?", $this->dataRecord['folder_directive_snippets'], $this->id); + + // Trigger an update of the website's cronjobs when the PHP version is changed + if(isset($this->dataRecord['server_php_id']) && $this->oldDataRecord['server_php_id'] != $this->dataRecord['server_php_id']) { + $cronjob_list = $app->db->queryAllRecords("SELECT * FROM cron WHERE parent_domain_id = ? and active = 'y'", $this->dataRecord['id']); + if(!empty($cronjob_list)) { + foreach ($cronjob_list as $cronjob) { + // Only update cronjobs with placeholders + if(preg_match("/([\{][a-zA-Z_\-0-9]+[\}]|[\[][a-zA-Z_\-0-9]+[\]])/", $cronjob['command'])) { + $app->db->datalogUpdate('cron', $cronjob, 'id', $cronjob['id'], true); + } + } + } + $shelluser_list = $app->db->queryAllRecords("SELECT * FROM shell_user WHERE parent_domain_id = ? and active = 'y'", $this->dataRecord['id']); + if(!empty($shelluser_list)) { + foreach ($shelluser_list as $shelluser) { + $app->db->datalogUpdate('shell_user', $shelluser, 'shell_user_id', $shelluser['shell_user_id'], true); + } + } + } } function validateDefaultFastcgiPhpVersion() { diff --git a/server/conf/bash.bashrc.master b/server/conf/bash.bashrc.master index edcaf7dc586023ae17faba1aa0f594690c27cf1c..4c5090ec5587be9c8925f88b8351af94a1211173 100644 --- a/server/conf/bash.bashrc.master +++ b/server/conf/bash.bashrc.master @@ -62,4 +62,12 @@ fi #alias la='ls -A' #alias l='ls -CF' +<tmpl_if name='use_site_php'> +# Overwrite the PHP cli binaries by using $PATH: +export PATH=<tmpl_var name='php_bin_dir'>:$PATH +</tmpl_if> + +<tmpl_if name='use_php_alias'> +alias php="<tmpl_var name='php_alias'>" +</tmpl_if> diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index f8b16b96cbdf3032bef3971bb16317684320fda2..e6aa8c2e01f951d61758988ba43b1f5cdbf3774f 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -93,7 +93,7 @@ class cron_plugin { } //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); + $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `domain`, `document_root`, `hd_quota`, `php_cli_binary` FROM `web_domain` LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; @@ -220,7 +220,7 @@ class cron_plugin { $chr_cmd_count = 0; //* read all active cron jobs from database and write them to file - $cron_jobs = $app->db->queryAllRecords("SELECT c.`run_min`, c.`run_hour`, c.`run_mday`, c.`run_month`, c.`run_wday`, c.`command`, c.`type`, c.`log`, `web_domain`.`domain` as `domain` FROM `cron` as c INNER JOIN `web_domain` ON `web_domain`.`domain_id` = c.`parent_domain_id` WHERE c.`parent_domain_id` = ? AND c.`active` = 'y'", $this->parent_domain["domain_id"]); + $cron_jobs = $app->db->queryAllRecords("SELECT c.`id`, c.`run_min`, c.`run_hour`, c.`run_mday`, c.`run_month`, c.`run_wday`, c.`command`, c.`type`, c.`log`, `web_domain`.`domain` as `domain` FROM `cron` as c INNER JOIN `web_domain` ON `web_domain`.`domain_id` = c.`parent_domain_id` WHERE c.`parent_domain_id` = ? AND c.`active` = 'y'", $this->parent_domain["domain_id"]); if($cron_jobs && count($cron_jobs) > 0) { foreach($cron_jobs as $job) { if($job['run_month'] == '@reboot') { @@ -259,8 +259,25 @@ class cron_plugin { $web_root = $this->parent_domain['document_root']; } + $web_domain = $this->parent_domain['domain']; + if($this->parent_domain['php_cli_binary'] == '') { + // PHP cli binary not set or default was selected, fallback to just "php" + $web_php_cli = 'php'; + $app->log("PHP CLI binary not set for the website\'s selected PHP version or Default was selected. Falling back to \"php\" for cronjob id " . $job['id'], LOGLEVEL_DEBUG); + } else { + $web_php_cli = $this->parent_domain['php_cli_binary']; + } + $web_root .= '/web'; - $job['command'] = str_replace('[web_root]', $web_root, $job['command']); + + $trans = array( + '[web_root]' => $web_root, + '{DOCROOT_CLIENT}' => $web_root, + '{DOMAIN}' => $web_domain, + '{SITE_PHP}' => $web_php_cli + ); + + $job['command'] = strtr($job['command'], $trans); $cron_line .= "\t"; //if($job['type'] != 'chrooted' && substr($job['command'], 0, 1) != "/") $cron_line .= $this->parent_domain['document_root'].'/'; diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 5bbda0e13dc36eed4db5045d868393a3f1f777cf..eaf7871fb1818801d6200ec141c8f4f942fe4e32 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -80,7 +80,8 @@ class shelluser_base_plugin { } //* Check if the resulting path is inside the docroot - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + $web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); + //$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); if(substr($data['new']['dir'],0,strlen($web['document_root'])) != $web['document_root']) { $app->log('Directory of the shell user is outside of website docroot.',LOGLEVEL_WARN); return false; @@ -168,6 +169,36 @@ class shelluser_base_plugin { $app->system->chown($homedir.'/.profile', $data['new']['username']); $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate("bash.bashrc.master"); + + $tpl->setVar('jailkit_chroot', false); + $tpl->setVar('domain', $web['domain']); + //$tpl->setVar('home_dir', $this->_get_home_dir("")); + + if($web['server_php_id'] > 0) { + $tpl->setVar('use_site_php', true); + $tpl->setVar('php_bin_dir', $php_bin_dir); + } else { + $tpl->setVar('use_site_php', false); + } + + $bashrc = $this->data['new']['dir'].'/etc/bash.bashrc'; + if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); + + //file_put_contents($bashrc, $tpl->grab()); + $app->system->file_put_contents($bashrc, $tpl->grab()); + unset($tpl); + + $app->log("Added bashrc script: ".$bashrc, LOGLEVEL_DEBUG); + + + + + + // Create symlinks for conveniance, SFTP user should not land in an empty dir. symlink('../../web', $homedir.'/web'); symlink('../../log', $homedir.'/log'); @@ -202,7 +233,8 @@ class shelluser_base_plugin { } //* Check if the resulting path is inside the docroot - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + $web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); + //$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); if(substr($data['new']['dir'],0,strlen($web['document_root'])) != $web['document_root']) { $app->log('Directory of the shell user is outside of website docroot.',LOGLEVEL_WARN); return false; @@ -300,6 +332,36 @@ class shelluser_base_plugin { $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); } + + + // Create .bashrc file + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate("bash.bashrc.master"); + + $tpl->setVar('jailkit_chroot', false); + //$tpl->setVar('domain', $web['domain']); + $php_bin_dir = dirname($web['php_cli_binary']); + //$tpl->setVar('home_dir', $this->_get_home_dir("")); + + if($web['server_php_id'] > 0) { + $tpl->setVar('use_site_php', false); + $tpl->setVar('php_bin_dir', $php_bin_dir); + $tpl->setVar('use_php_alias', true); + $tpl->setVar('php_alias', $web['php_cli_binary']); + } else { + $tpl->setVar('use_site_php', false); + } + + $bashrc = $homedir .'/.bashrc'; + if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); + + $app->system->file_put_contents($bashrc, $tpl->grab()); + unset($tpl); + + $app->log("Added bashrc script: ".$bashrc, LOGLEVEL_DEBUG); + //* Add webfolder protection again $app->system->web_folder_protection($web['document_root'], true); } else { diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index fc37727ad770423348deefd2602b7304beaa500e..6ff6ee1568aade35980e592d21eb119693eeeb03 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -82,7 +82,8 @@ class shelluser_jailkit_plugin { } - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + //$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + $web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); if(!$app->system->is_allowed_user($data['new']['username'], false, false) || !$app->system->is_allowed_user($data['new']['puser'], true, true) @@ -190,7 +191,8 @@ class shelluser_jailkit_plugin { } if($app->system->is_user($data['new']['puser'])) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + //$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); + $web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); @@ -327,7 +329,8 @@ class shelluser_jailkit_plugin { $options = array('allow_hardlink'); } - $web = $app->db->queryOneRecord("SELECT domain, last_jailkit_hash FROM web_domain WHERE domain_id = ?", $this->data['new']["parent_domain_id"]); + //$web = $app->db->queryOneRecord("SELECT domain, last_jailkit_hash FROM web_domain WHERE domain_id = ?", $this->data['new']["parent_domain_id"]); + $web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]); $last_updated = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections'] .' '.$this->jailkit_config['jailkit_chroot_app_programs'] @@ -354,11 +357,14 @@ class shelluser_jailkit_plugin { $tpl->setVar('jailkit_chroot', true); $tpl->setVar('domain', $web['domain']); $tpl->setVar('home_dir', $this->_get_home_dir("")); + $tpl->setVar('php_cli_binary', dirname($web['php_cli_binary'])); $bashrc = $this->data['new']['dir'].'/etc/bash.bashrc'; if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); - file_put_contents($bashrc, $tpl->grab()); + $app->system->file_put_contents($bashrc, $tpl->grab()); + + //file_put_contents($bashrc, $tpl->grab()); unset($tpl); $app->log("Added bashrc script: ".$bashrc, LOGLEVEL_DEBUG);