Compare commits

...
337 Commits
Author SHA1 Message Date
midoks 44c6a4ffe3 up 2021-05-02 10:23:02 +08:00
midoks 1ff071a59f Update files_api.py 2021-05-01 19:06:21 +08:00
midoks 6ae756d5ea Update plugins_api.py 2021-05-01 17:42:35 +08:00
midoks 744f1eb524 update 2021-05-01 17:42:19 +08:00
midoks c8494ddcb4 fix execShell 2021-05-01 17:16:47 +08:00
midoks 9633a54643 py3升级.1 2021-05-01 14:17:42 +08:00
midoks 7e64e37ca2 Update requirements.txt 2021-05-01 11:48:01 +08:00
midoks 14808a44e5 Update install_centos.sh 2021-05-01 11:47:44 +08:00
midoks 289c7765d4 up 2021-05-01 11:45:29 +08:00
midoks 37032d935f up 2021-05-01 11:31:51 +08:00
midoks 5378df1cf3 up 2021-05-01 11:29:24 +08:00
midoks 0c44305a01 Update requirements.txt 2021-05-01 11:11:22 +08:00
midoks 9c4d482471 Update requirements.txt 2021-05-01 11:07:11 +08:00
midoks 713f77c1ad up 2021-05-01 10:56:12 +08:00
midoks db2b71582b Update requirements.txt 2021-05-01 10:14:01 +08:00
midoks ccc750cce3 Update simdht_delta.conf 2021-04-30 21:59:14 +08:00
midoks 0dc26232b6 Update simdht_delta.conf 2021-04-30 21:58:36 +08:00
midoks fa0fc8eefe Update requirements.txt 2021-04-30 18:41:05 +08:00
midoks 1cadcde740 Update requirements.txt 2021-04-30 18:40:13 +08:00
midoks a602cad2db Update requirements.txt 2021-04-30 18:36:05 +08:00
midoks 0a400aeda9 Update requirements.txt 2021-04-30 18:35:13 +08:00
midoks aaca85bc7e Update requirements.txt 2021-04-30 18:27:06 +08:00
midoks fcba8a9269 Update requirements.txt 2021-04-30 18:19:47 +08:00
midoks 8931a28286 Update install_centos.sh 2021-04-30 18:02:09 +08:00
midoks 8d4d72e14d Update zimg.tpl 2021-04-26 17:21:46 +08:00
midoks fa40d1dc92 Update phplib.conf 2021-04-24 09:51:59 +08:00
midoks 4007d14517 Create openssl.sh 2021-04-24 09:51:09 +08:00
midoks 389db5404c up 2021-04-24 09:22:39 +08:00
midoks 763065e7ab Update install.sh 2021-04-24 09:19:30 +08:00
midoks c697f016aa 更新memcached版本 2021-04-24 09:19:12 +08:00
midoks 1df3b8efd0 更新版本 2021-04-24 09:08:53 +08:00
midoks bfce862180 up 2021-04-22 04:08:30 +08:00
midoks 3f0cc58bdc up 2021-04-22 04:00:01 +08:00
midoks 710482e9ed Update index.py 2021-04-13 15:21:10 +08:00
midoks 49dc230feb Update zimg.tpl 2021-04-13 15:15:03 +08:00
midoks bf6cca7b95 up 2021-04-13 13:15:20 +08:00
midoks 6281e7ae2d up 2021-04-13 12:57:58 +08:00
midoks 4f488ba75f Update zimg.tpl 2021-04-13 12:56:45 +08:00
midoks 1fa59d0a08 Update index.py 2021-04-13 12:55:28 +08:00
midoks ccc9bd26c5 up 2021-04-13 12:54:01 +08:00
midoks 1436a508a5 up 2021-04-13 12:51:56 +08:00
midoks a9aabdfa0c Update install.sh 2021-04-13 12:43:18 +08:00
midoks a6d2081d22 Update install.sh 2021-04-13 12:23:26 +08:00
midoks 88dba0e876 Update install.sh 2021-04-13 12:16:56 +08:00
midoks 88c9680682 Update install.sh 2021-04-13 12:10:49 +08:00
midoks 1e1157159a up 2021-04-13 12:00:48 +08:00
midoks b2fe48e1f2 up 2021-04-11 18:38:52 +08:00
midoks e1b5d6f8b1 Update phplib.conf 2021-04-11 18:34:22 +08:00
midoks 003a0bfacc Create openssl.sh 2021-04-11 18:32:26 +08:00
midoks 08b73394ee Update index.py 2021-04-11 12:19:26 +08:00
midoks ec9d4c050f Update index.py 2021-04-11 12:13:21 +08:00
midoks 6460a0d7db up 2021-04-11 12:12:36 +08:00
midoks f709a033a5 up 2021-04-11 12:05:31 +08:00
midoks 851d6829ee up 2021-04-11 11:51:30 +08:00
midoks 8b5f2aec6b Update index.py 2021-04-11 11:46:20 +08:00
midoks 32f911c3cf Update index.py 2021-04-11 11:37:09 +08:00
midoks ef74376c21 Update index.py 2021-04-11 11:36:26 +08:00
midoks 2752d758b5 up 2021-04-11 11:25:02 +08:00
midoks 296d4fb96d Update install.sh 2021-04-11 11:02:26 +08:00
midoks 69f8a492c8 Delete api_login.txt 2021-04-11 10:47:19 +08:00
midoks 21cf32852b aria2 2021-04-11 10:46:53 +08:00
midoks 5eff5e7b1a Create check-ssh.sh 2021-03-09 22:49:59 +08:00
midoks 9edd79e5f1 up 2021-02-21 15:56:10 +08:00
midoks 4c2a42fc48 Update init.lua 2021-02-21 12:51:46 +08:00
midoks 10446a1934 Update luawaf.conf 2021-02-21 12:51:39 +08:00
midoks 3aeb2b0959 up 2021-02-21 12:34:58 +08:00
midoks e9807280d5 Update init.lua 2021-02-21 12:05:38 +08:00
midoks 395f8b456a up 2021-02-21 11:28:46 +08:00
midoks ef7c9d4e47 Update info.json 2021-02-21 11:06:14 +08:00
midoks f8bea1c812 Update info.json 2021-02-19 21:52:02 +08:00
midoks 4a83cfba83 Update info.json 2021-02-19 21:51:37 +08:00
midoks 199aec01ca Update phplib.conf 2021-02-19 21:50:57 +08:00
midoks 65d6b5e360 Create seaslog.sh 2021-02-19 21:50:39 +08:00
midoks dac412ad4e up 2021-02-19 21:42:51 +08:00
midoks 0f3aaf015a up 2021-02-19 21:39:41 +08:00
midoks d48be332ca Update README.md 2021-02-19 21:31:05 +08:00
midoks c943034145 up 2021-02-19 21:28:24 +08:00
midoks e453a8fa79 Update phplib.conf 2021-02-19 21:21:41 +08:00
midoks b84b7ec0d0 Update redis.sh 2021-02-19 21:19:04 +08:00
midoks 22b3b1e90f up 2021-02-19 21:18:19 +08:00
midoks d1eb61bb84 Create mongodb.sh 2021-02-19 21:13:17 +08:00
midoks aba61490d4 Update yaf.sh 2021-02-19 21:09:23 +08:00
midoks 298023f283 Update phplib.conf 2021-02-19 21:03:52 +08:00
midoks e5e55431ed Create redis.sh 2021-02-19 21:03:33 +08:00
midoks 13c3a20e84 Update swoole.sh 2021-02-19 21:00:51 +08:00
midoks b5a15244b3 up 2021-02-17 11:39:08 +08:00
midoks cb446ae89c Update install.sh 2021-02-17 11:37:25 +08:00
midoks 83ccf6ff24 up 2021-02-16 15:05:53 +08:00
midoks 1eb20f7cb6 Update index.py 2021-02-16 14:46:09 +08:00
midoks 34574a36f1 up 2021-02-16 14:20:34 +08:00
midoks 91c8d1f47a up 2021-02-16 14:10:06 +08:00
midoks 0e5760eaa2 Update index.py 2021-02-16 13:45:36 +08:00
midoks 81a25eeedf Update my8.0.cnf 2021-02-16 12:57:22 +08:00
midoks 627c9efb44 Update my8.0.cnf 2021-02-16 12:55:39 +08:00
midoks e76db6c669 Update my.cnf 2021-02-16 12:55:05 +08:00
midoks c44e901992 Update install.sh 2021-02-16 11:56:59 +08:00
midoks b88d03f316 Update my.cnf 2021-02-15 22:41:40 +08:00
midoks ede3872627 Update my.cnf 2021-02-15 22:40:31 +08:00
midoks 29b50e057c Update index.py 2021-02-15 21:12:22 +08:00
midoks ff75e0440f up 2021-02-15 17:58:57 +08:00
midoks 4ab8d5854b Update mysql.js 2021-02-15 15:32:08 +08:00
midoks d555cdacb8 up 2021-02-15 15:27:32 +08:00
midoks c704184884 up 2021-02-15 15:08:45 +08:00
midoks 9e58352fad Update mysql.js 2021-02-15 12:42:22 +08:00
midoks 0c7a32f372 up 2021-02-15 12:36:26 +08:00
midoks 604c5bc8a0 Update index.py 2021-02-06 14:01:10 +08:00
midoks 87c97694f7 Update index.py 2021-02-06 13:49:01 +08:00
midoks aee7c53729 Update index.py 2021-02-05 22:05:55 +08:00
midoks 22e0ba7043 Update index.py 2021-02-05 21:44:26 +08:00
midoks 280de58a54 up 2021-02-05 21:43:07 +08:00
midoks b6774d8656 up 2021-02-05 21:05:32 +08:00
midoks 268eb0eb2d Update my.cnf 2021-02-05 18:30:39 +08:00
midoks fac0e1179b Update index.py 2021-02-05 17:49:31 +08:00
midoks 985c6f0a67 Update index.py 2021-02-05 16:57:54 +08:00
midoks db1d9320bd Update index.py 2021-02-05 16:52:05 +08:00
midoks 0a110c4afa Update index.py 2021-02-05 16:36:08 +08:00
midoks e436375090 Update index.py 2021-02-05 16:35:20 +08:00
midoks 8723ad9577 up 2021-02-05 16:09:41 +08:00
midoks f8693c8cc3 up 2021-02-05 15:22:45 +08:00
midoks 1a1b0a59ee Update index.py 2021-02-05 14:39:30 +08:00
midoks af22a68540 Update index.py 2021-02-05 14:37:21 +08:00
midoks 696df06794 up 2021-02-05 11:43:05 +08:00
midoks 9886e43335 up 2021-02-05 11:37:49 +08:00
midoks 3bd5886a6c up 2021-02-05 11:35:36 +08:00
midoks aa071bfb15 up 2021-02-05 11:26:47 +08:00
midoks 98d3001861 Update mysql.js 2021-02-05 10:59:11 +08:00
midoks 36b55cc73c Update mysql.js 2021-02-05 02:25:13 +08:00
midoks 80f64066a7 Update mysql.js 2021-02-05 02:06:25 +08:00
midoks a5ce95d831 Update config.inc.php 2021-02-04 20:31:28 +08:00
midoks b07409050a Update mysql.js 2021-02-04 19:26:05 +08:00
midoks a2ee7c9092 Update index.py 2021-02-04 19:18:29 +08:00
midoks f9c9c91490 Update index.py 2021-02-04 19:04:35 +08:00
midoks dca43f812d Update index.py 2021-02-04 18:59:50 +08:00
midoks d93329478d Update crontab_api.py 2021-02-04 17:49:36 +08:00
midoks 3d296e4099 up 2021-02-04 02:49:43 +08:00
midoks b7f9485ff6 up 2021-02-04 02:26:10 +08:00
midoks 65bd3fefa9 Update requirements.txt 2021-02-04 02:20:42 +08:00
midoks 5a4c831809 Update index.py 2021-02-04 02:09:47 +08:00
midoks 3c6ce19b3a Update index.py 2021-02-03 23:44:44 +08:00
midoks cdb6966455 up 2021-02-03 23:20:52 +08:00
midoks 27c8142602 Update index.py 2021-02-03 23:00:17 +08:00
midoks c04779efe2 mysql 主从可配置化end 2021-02-03 22:52:16 +08:00
midoks be5a9f7b4b Update index.py 2021-02-03 21:26:09 +08:00
midoks 1564047a26 up 2021-02-03 21:20:39 +08:00
midoks e561a909e7 up 2021-02-03 19:26:31 +08:00
midoks 3e06062784 Update install.sh 2021-02-03 14:19:09 +08:00
midoks 65a2af748b Update install.sh 2021-02-03 14:17:43 +08:00
midoks febd9de71b Update index.py 2021-02-03 14:15:11 +08:00
midoks 870808b31b Update install.sh 2021-02-03 14:13:07 +08:00
midoks debfdabde9 Update install.sh 2021-02-03 14:09:29 +08:00
midoks 6cf7152478 up 2021-02-03 14:02:12 +08:00
midoks f75d121a59 up 2021-02-03 14:00:55 +08:00
midoks 407b5a619a Update mysql.js 2021-02-03 02:17:11 +08:00
midoks b46bc89cb9 Update index.html 2021-02-03 02:17:06 +08:00
midoks cb587b18bd Update index.py 2021-02-03 00:49:17 +08:00
midoks 8b67421c0c Update index.py 2021-02-03 00:37:16 +08:00
midoks 64f882c6b8 Update index.py 2021-02-03 00:32:06 +08:00
midoks eb6590a275 Update mysql.js 2021-02-02 23:19:04 +08:00
midoks 595c238fb5 up 2021-02-02 22:26:50 +08:00
midoks 80d1e4efe7 Update index.py 2021-02-02 22:06:49 +08:00
midoks 8ee6f9d190 up 2021-02-02 21:30:48 +08:00
midoks 94a2f88633 Update index.py 2021-02-02 20:49:41 +08:00
midoks 605cf36e9c Update my.cnf 2021-02-02 17:42:08 +08:00
midoks 21194aa285 up 2021-02-02 17:31:39 +08:00
midoks e3876de3d2 Update my.cnf 2021-02-02 15:34:45 +08:00
midoks 1e054f9801 up 2021-02-02 15:33:07 +08:00
midoks df048c6bd6 up 2021-02-02 15:32:06 +08:00
midoks 3056fb9ceb up 2021-02-02 15:21:37 +08:00
midoks bb655b55e5 Update index.py 2021-02-02 03:59:06 +08:00
midoks 97ab18a771 Update index.html 2021-02-02 03:58:58 +08:00
midoks 26760502d0 mysql init.d 2021-02-02 03:50:30 +08:00
midoks 126c7e08e3 mysql conf 2021-02-02 03:49:06 +08:00
midoks 5e55cf753e Update install.sh 2021-02-02 01:37:06 +08:00
midoks da8b0ccbfc Update task.py 2021-02-02 01:33:42 +08:00
midoks c746e8e139 Update task.py 2021-02-02 01:31:37 +08:00
midoks 0e2df5620e up 2021-02-02 00:29:10 +08:00
midoks b1b43120ea Update info.json 2021-02-01 22:31:10 +08:00
midoks e854cc083f up 2021-02-01 22:26:55 +08:00
midoks 791f2b8ec9 up 2021-02-01 22:13:59 +08:00
midoks 0c6b293337 Update info.json 2021-02-01 21:16:55 +08:00
midoks da9b3bf435 update mysql version 2021-02-01 20:54:27 +08:00
midoks 301086faa1 up 2021-02-01 20:49:55 +08:00
midoks 3b6b54103b web ssh opt 2021-02-01 20:13:14 +08:00
midoks 6dda90b64f Update mw.py 2021-02-01 19:55:21 +08:00
midoks d28fcce8b6 Update info.json 2021-01-30 16:24:37 +08:00
midoks ba2da974c9 Update __init__.py 2021-01-30 15:05:44 +08:00
midoks 024f8bd62f Update __init__.py 2021-01-30 14:54:37 +08:00
midoks fe7853781b Update __init__.py 2021-01-30 13:56:08 +08:00
midoks d92010bfe0 Update __init__.py 2021-01-30 13:33:11 +08:00
midoks 2631f1771c Update __init__.py 2021-01-30 13:32:26 +08:00
midoks 4cf7a6b8fe Update __init__.py 2021-01-30 13:18:50 +08:00
midoks af460ffed6 Update index.py 2021-01-29 19:59:49 +08:00
midoks a7982c4df3 Update index.py 2021-01-29 19:54:32 +08:00
midoks 0850654da8 Update install.sh 2021-01-29 19:34:58 +08:00
midoks 086e050914 Update index.html 2021-01-29 19:32:44 +08:00
midoks 4c57b9a2e6 Update index.py 2021-01-29 19:26:09 +08:00
midoks ca7095c65a Update index.html 2021-01-29 19:22:45 +08:00
midoks 2c3f2e797d Update swap.tpl 2021-01-29 19:21:41 +08:00
midoks cccd3ff7fc Update index.py 2021-01-29 19:13:38 +08:00
midoks effc3ba296 yp 2021-01-29 19:13:11 +08:00
midoks e96fdea003 Update index.py 2021-01-29 18:51:38 +08:00
midoks 00a43549a2 Update index.py 2021-01-29 18:48:32 +08:00
midoks ebd09842a2 up 2021-01-29 18:42:39 +08:00
midoks 1eccc9cb7c Update index.py 2021-01-29 18:13:05 +08:00
midoks a44df8dd9a Update swap.tpl 2021-01-29 18:07:59 +08:00
midoks 58d78d5c5d swap 2021-01-29 18:05:43 +08:00
midoks 9babeb4373 Update socket5.js 2021-01-29 17:15:53 +08:00
midoks 8345bd8bb5 up 2021-01-29 17:06:53 +08:00
midoks 9106246891 up 2021-01-29 17:03:34 +08:00
midoks 21209a75d8 Update index.py 2021-01-29 16:52:54 +08:00
midoks 3b6d50661b up 2021-01-29 16:50:39 +08:00
midoks 295cc70e0a Update index.py 2021-01-29 16:46:59 +08:00
midoks c7fa266ae1 Update index.py 2021-01-29 16:46:38 +08:00
midoks 8788afc35f o 2021-01-29 16:26:56 +08:00
midoks 44c55ee923 up 2021-01-29 16:13:40 +08:00
midoks 2073fbd680 up 2021-01-29 15:46:36 +08:00
midoks 1b876d4cac Update install.sh 2021-01-29 15:35:31 +08:00
midoks 0961b233e0 socket5 2021-01-29 15:27:08 +08:00
midoks 184bcf88d7 Update install.sh 2021-01-12 13:13:30 +08:00
midoks 3f07a11b53 Update gunicorn.conf 2021-01-05 17:59:28 +08:00
midoks aa3a66cf01 Create gunicorn.conf 2021-01-05 17:39:58 +08:00
midoks 0bc8f670f5 Update index.py 2020-10-13 11:57:36 +08:00
midoks 63cb8f0e84 Update install.sh 2020-10-13 11:54:36 +08:00
midoks 5a17df7c5c Update install.sh 2020-10-13 11:51:43 +08:00
midoks 3ce9735ff8 Update install.sh 2020-10-13 11:47:55 +08:00
midoks 1819b814a3 Update install.sh 2020-10-13 11:45:30 +08:00
midoks f5c5bd03e6 Update eaccelerator.sh 2020-09-30 09:28:27 +08:00
midoks 04c6d4b3cc Update index.py 2020-09-30 03:11:10 +08:00
midoks 7e5116ba59 Update index.py 2020-09-30 03:10:48 +08:00
midoks 44d254415e Update index.py 2020-09-30 03:03:48 +08:00
midoks 0efba47c53 Update index.py 2020-09-30 02:53:59 +08:00
midoks c7be9b7230 Update index.py 2020-09-30 02:53:39 +08:00
midoks 311310e04c Update index.py 2020-09-30 02:52:21 +08:00
midoks 59ca997372 Update index.py 2020-09-30 02:50:47 +08:00
midoks 27a96495ae up 2020-09-30 02:48:16 +08:00
midoks cd1662761b Update php-fpm-52.conf 2020-09-30 02:41:35 +08:00
midoks 4995131e24 Update php-fpm-52.conf 2020-09-30 02:39:08 +08:00
midoks ae9989a13f 兼容php5.2 2020-09-30 02:22:31 +08:00
midoks db143ea39f xhporf 52 2020-09-30 02:06:04 +08:00
midoks 7582b0e6ba php mysql 2020-09-28 17:13:15 +08:00
midoks 1ce6cbef51 Update install.sh 2020-09-28 12:52:11 +08:00
midoks e136330e36 Update install.sh 2020-09-28 11:27:12 +08:00
midoks 346f09dabd Update install.sh 2020-09-28 10:57:29 +08:00
midoks 0d56f1ab5f Update redis.sh 2020-09-27 11:49:11 +08:00
midoks 2f771b1f05 Update redis.sh 2020-09-27 11:44:32 +08:00
midoks 1862e68c52 Update phplib.conf 2020-09-27 11:42:04 +08:00
midoks aaca9cc654 Create redis.sh 2020-09-27 11:40:17 +08:00
midoks bda83eb434 up 2020-09-27 00:15:39 +08:00
midoks 6f5838306d Update phplib.conf 2020-09-26 23:41:56 +08:00
midoks 615e1b60b7 up 2020-09-26 23:40:25 +08:00
midoks 4300a532ba Create memcache.sh 2020-09-26 22:45:41 +08:00
midoks 52c92183f5 Update install.sh 2020-09-26 22:27:13 +08:00
midoks feda58b8c4 Update install.sh 2020-09-26 20:48:43 +08:00
midoks a41d0b4553 Update install.sh 2020-09-26 20:46:39 +08:00
midoks 68e9fa157d Update install.sh 2020-09-26 20:44:07 +08:00
midoks 81f79582b5 Update zendguardloader.sh 2020-09-26 20:42:21 +08:00
midoks 552aa85eb6 Update install.sh 2020-09-26 20:29:32 +08:00
midoks 5119e522d4 Update zendoptimizer.sh 2020-09-26 20:16:19 +08:00
midoks 46f112fe7f up 2020-09-26 20:10:07 +08:00
midoks 2215c1bd38 Update zendguardloader.sh 2020-09-26 20:09:08 +08:00
midoks aa38037087 Update index.py 2020-09-26 20:01:27 +08:00
midoks b48efb4607 up 2020-09-26 19:59:16 +08:00
midoks 3c22dd6380 up 2020-09-26 19:54:17 +08:00
midoks 9127ed5220 Update index.py 2020-09-26 19:50:40 +08:00
midoks a04c6b46af Update index.py 2020-09-26 19:43:04 +08:00
midoks ed7bc1cdf3 up 2020-09-26 19:39:12 +08:00
midoks 6d191fc162 Update install.sh 2020-09-26 19:33:12 +08:00
midoks b14f22a0cf Update install.sh 2020-09-26 19:29:39 +08:00
midoks bb9fe44a0f up 2020-09-26 19:13:55 +08:00
midoks ee6adfa83c Update install.sh 2020-09-26 19:06:42 +08:00
midoks 8d990b3f96 Update install.sh 2020-09-26 19:04:52 +08:00
midoks 9b0b5d1504 Update install.sh 2020-09-26 19:01:27 +08:00
midoks aac1cc30a5 Update install.sh 2020-09-26 18:58:56 +08:00
midoks e8f1cb4e02 Update install.sh 2020-09-26 18:54:30 +08:00
midoks f973794e4a Update install.sh 2020-09-26 18:50:06 +08:00
midoks 062a8917cb Update install.sh 2020-09-26 18:48:21 +08:00
midoks 3c412c91f7 Update install.sh 2020-09-26 18:45:56 +08:00
midoks b3f338e4e0 Update install.sh 2020-09-26 18:37:50 +08:00
midoks 78f422c64a Update install.sh 2020-09-26 18:37:26 +08:00
midoks 6f76846497 up 2020-09-26 18:32:37 +08:00
midoks 638426b81b Update config_api.py
优化计划任务管理
2020-09-19 20:27:09 +08:00
midoks a982e8a0e2 up 2020-09-19 16:03:09 +08:00
midoks 79a2954486 up 2020-09-19 16:01:46 +08:00
midoks 3e73314cb1 up 2020-09-19 15:36:56 +08:00
midoks 92e94ab4e9 Update solr.js 2020-09-15 13:26:01 +08:00
midoks 1e0ec8e17e Update redis.conf 2020-09-14 01:04:44 +08:00
midoks a1e0e95925 Update index.py 2020-08-04 21:51:10 +08:00
midoks ceb1a7828a Update qbittorrent.tpl 2020-08-04 21:42:05 +08:00
midoks 02beb55896 Update qbittorrent.tpl 2020-08-04 19:24:01 +08:00
midoks f53377cc7d Update qbittorrent.tpl 2020-08-04 18:56:54 +08:00
midoks 02fbb7cdcf Update commit.tpl 2020-07-31 00:22:01 +08:00
midoks 58059111c1 Update qbittorrent_worker.py 2020-07-25 17:35:48 +08:00
midoks f51cc16500 Update qbittorrent_worker.py 2020-07-25 13:38:40 +08:00
midoks 1d6fa13a94 Update qbittorrent_worker.py 2020-07-25 13:25:23 +08:00
midoks 6924adbda3 Update qbittorrent_worker.py 2020-07-25 13:22:50 +08:00
midoks 983dde38d2 Update qbittorrent_worker.py 2020-07-25 12:21:08 +08:00
midoks bda0753b77 Update qb.sql 2020-07-25 11:08:14 +08:00
midoks 93d9dbfd20 Update qb.sql 2020-07-25 11:07:52 +08:00
midoks 0a277b7e52 Update qbittorrent_worker.py 2020-07-25 11:03:36 +08:00
midoks 4825a1ca09 Update qbittorrent_worker.py 2020-07-23 11:20:31 +08:00
midoks 21dd6f39a8 Update qbittorrent_worker.py 2020-07-23 00:17:27 +08:00
midoks 261b85dbda Update install.sh 2020-07-22 23:59:34 +08:00
midoks 4716cff256 Update qbittorrent_worker.py 2020-07-22 23:03:02 +08:00
midoks d86c6ad6ee Update qbittorrent_worker.py 2020-07-22 22:52:48 +08:00
midoks bd7906595a Update qb.conf 2020-07-22 22:16:45 +08:00
midoks f00478cf17 Update qbittorrent_worker.py 2020-07-22 20:59:24 +08:00
midoks 1a24d11137 Update install.sh 2020-07-22 20:10:02 +08:00
midoks b8185e042f Update install.sh 2020-07-22 20:07:50 +08:00
midoks 318cc79b8e Update install.sh 2020-07-22 19:53:02 +08:00
midoks 389abf794f Update install.sh 2020-07-22 19:50:28 +08:00
midoks 1d37ec38ee Update qbittorrent_worker.py 2020-07-22 19:46:34 +08:00
midoks fd2a9223ff Update qbittorrent_worker.py 2020-07-22 19:46:17 +08:00
midoks 84e7da76b5 Update install.sh 2020-07-22 17:49:06 +08:00
midoks 90d30df686 Update qbittorrent_worker.py 2020-07-22 17:32:52 +08:00
midoks 9fa9ed9f6e Update qb.conf 2020-07-22 17:32:09 +08:00
midoks c26867c80b Update index.py 2020-07-22 17:31:35 +08:00
midoks 221a005fc7 Update install.sh 2020-07-22 17:20:07 +08:00
midoks 7fb61a5121 Delete ss1.jpg 2020-07-21 16:08:26 +08:00
midoks 6eadbcd53e up 2020-07-16 16:30:00 +08:00
midoks b43da4eea8 Update yaf.sh 2020-07-15 18:24:03 +08:00
midoks 1590e1061c update 2020-07-15 17:39:07 +08:00
midoks 3ac32665b8 Update pcntl.sh 2020-07-15 17:36:36 +08:00
midoks 97f01aeb74 up 2020-07-15 17:34:57 +08:00
midoks 92e3bd82ef Update phplib.conf 2020-07-15 17:33:05 +08:00
midoks ad2ce68a49 up 2020-07-15 17:28:18 +08:00
midoks 75f212bec7 up 2020-07-15 17:00:53 +08:00
midoks 13f6ee18f9 Update system_api.py 2020-07-15 12:38:32 +08:00
midoks 571d2056fb Update system_api.py 2020-07-15 12:34:48 +08:00
midoks 08ef87c77e Update system_api.py 2020-07-15 12:29:45 +08:00
midoks 5d2e7acc95 Update system_api.py 2020-07-15 12:29:07 +08:00
midoks 58e18e3ebb Update system_api.py 2020-07-15 12:23:57 +08:00
midoks a4731e0053 Update system_api.py 2020-07-15 12:15:15 +08:00
midoks db22749219 Update system_api.py 2020-07-15 12:13:44 +08:00
midoks 942c0023fb Update system_api.py 2020-07-15 12:12:18 +08:00
midoks 0b4fa3ea5c Update system_api.py 2020-07-15 11:59:05 +08:00
midoks e23b15ccd1 Update system_api.py 2020-07-15 11:54:15 +08:00
midoks 0f515829fe up 2020-07-15 11:36:30 +08:00
162 changed files with 7583 additions and 774 deletions
+5 -7
View File
@@ -1,4 +1,4 @@
### mdserver-web 0.8.5
### mdserver-web 0.8.6
简单的Linux面板,感谢BT.CN写出如此好的web管理软件。我一看到,就知道这是我一直想要的页面化管理方式。
复制了后台管理界面,按照自己想要的方式写了一版。
@@ -13,7 +13,7 @@
### 主要插件介绍
* OpenResty - 轻量级,占有内存少,并发能力强。
* PHP[53-74] - PHP是世界上最好的编程语言。
* PHP[52-80] - PHP是世界上最好的编程语言。
* MySQL - MySQL是一种关系数据库管理系统。
* phpMyAdmin - 著名Web端MySQL管理工具。
* Memcached - 一个高性能的分布式内存对象缓存系统。
@@ -23,11 +23,9 @@
* Gogs - 一款极易搭建的自助Git服务。
* Rsyncd - 通用同步服务。
### 版本更新 0.8.5
* 添加PHP80版本-Alpha。
* 优化PHP及扩展安装脚本。
* 自动识别IP地址。
* 增加xhprof插件。
### 版本更新 0.8.6
* mysql主从配置。
* swap插件[虚拟内存]。
### 自动安装
```
+1 -1
View File
@@ -11,4 +11,4 @@ try:
HOST = '0.0.0.0'
socketio.run(app, host=HOST, port=PORT)
except Exception as ex:
print ex
print(ex)
+2 -2
View File
@@ -46,8 +46,8 @@ def initDB():
for index in range(len(csql_list)):
sql.execute(csql_list[index], ())
except Exception, ex:
print str(ex)
except Exception as ex:
print(str(ex))
def initInitD():
+3 -2
View File
@@ -17,7 +17,8 @@ class config_api:
# 本版解决自启动问题
# 文件管理重命名
__version = '0.8.5'
# 优化计划任务管理
__version = '0.8.6'
def __init__(self):
pass
@@ -277,7 +278,7 @@ class config_api:
if len(cert_ca) > 100 and len(private_key) > 100:
mw.writeFile('ssl/certificate.pem', cert_ca)
mw.writeFile('ssl/privateKey.pem', private_key)
print cert_ca, private_key
print(cert_ca, private_key)
return True
return False
+26 -16
View File
@@ -21,8 +21,14 @@ class crontab_api:
##### ----- start ----- ###
def listApi(self):
_list = mw.M('crontab').where('', ()).field(self.field).limit(
'0,30').order('id desc').select()
p = request.args.get('p', 1)
psize = 10
startPage = (int(p) - 1) * psize
pageInfo = str(startPage) + ',' + str(psize)
_list = mw.M('crontab').where('', ()).field(
self.field).limit(pageInfo).order('id desc').select()
data = []
for i in range(len(_list)):
@@ -68,9 +74,12 @@ class crontab_api:
count = mw.M('crontab').where('', ()).count()
_page = {}
_page['count'] = count
_page['tojs'] = 'remind'
_page['p'] = p
_page['row'] = psize
_page['tojs'] = "getCronData"
_ret['page'] = mw.getPage(_page)
_ret['list'] = mw.getPage(_page)
_ret['p'] = p
return mw.getJson(_ret)
# 设置计划任务状态
@@ -158,7 +167,7 @@ class crontab_api:
logFile = mw.getServerDir() + '/cron/' + echo['echo'] + '.log'
if not os.path.exists(logFile):
return mw.returnJson(False, '当前日志为空!')
log = mw.getNumLines(logFile, 2000)
log = mw.getNumLines(logFile, 500)
return mw.returnJson(True, log)
def addApi(self):
@@ -194,25 +203,26 @@ class crontab_api:
}
# print params
cuonConfig, get, name = self.getCrondCycle(params)
cronConfig, get, name = self.getCrondCycle(params)
cronPath = mw.getServerDir() + '/cron'
cronName = self.getShell(params)
# print cuonConfig, _params, name
# print cronPath, cronName
# print stype
# print cronConfig, _params, name
# print 'vv', cronPath, cronName
# print 'stype', stype
if type(cronName) == dict:
return cronName
cuonConfig += ' ' + cronPath + '/' + cronName + \
cronConfig += ' ' + cronPath + '/' + cronName + \
' >> ' + cronPath + '/' + cronName + '.log 2>&1'
wRes = self.writeShell(cuonConfig)
if type(wRes) != bool:
return wRes
if not mw.isAppleSystem():
wRes = self.writeShell(cronConfig)
if type(wRes) != bool:
return wRes
self.crondReload()
self.crondReload()
addData = mw.M('crontab').add('name,type,where1,where_hour,where_minute,echo,addtime,status,save,backup_to,stype,sname,sbody,urladdress', (iname, field_type, where1, hour, minute, cronName, time.strftime(
'%Y-%m-%d %X', time.localtime()), 1, save, backup_to, stype, sname, sbody, urladdress))
@@ -264,7 +274,7 @@ class crontab_api:
# 取数据列表
def getDataListApi(self):
stype = request.form.get('type', '').encode('utf-8')
stype = request.form.get('type', '')
if stype == 'databases':
db_list = {}
db_list['orderOpt'] = []
@@ -451,7 +461,7 @@ echo "--------------------------------------------------------------------------
if not os.path.exists(file):
mw.writeFile(file, '')
conf = mw.readFile(file)
conf += config + "\n"
conf += str(config) + "\n"
if mw.writeFile(file, conf):
if not os.path.exists(u_file):
mw.execShell("chmod 600 '" + file +
+8 -8
View File
@@ -26,7 +26,7 @@ class Sql():
try:
if self.__DB_CONN == None:
self.__DB_CONN = sqlite3.connect(self.__DB_FILE)
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def dbfile(self, name):
@@ -96,7 +96,7 @@ class Sql():
del(tmp)
self.__close()
return data
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def getField(self, keyName):
@@ -142,7 +142,7 @@ class Sql():
self.__close()
self.__DB_CONN.commit()
return id
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def checkInput(self, data):
@@ -176,7 +176,7 @@ class Sql():
"(" + keys + ") " + "VALUES(" + values + ")"
result = self.__DB_CONN.execute(sql, param)
return True
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def commit(self):
@@ -206,7 +206,7 @@ class Sql():
self.__close()
self.__DB_CONN.commit()
return result.rowcount
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def delete(self, id=None):
@@ -221,7 +221,7 @@ class Sql():
self.__close()
self.__DB_CONN.commit()
return result.rowcount
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def execute(self, sql, param):
@@ -232,7 +232,7 @@ class Sql():
result = self.__DB_CONN.execute(sql, param)
self.__DB_CONN.commit()
return result.rowcount
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def query(self, sql, param):
@@ -243,7 +243,7 @@ class Sql():
# 将元组转换成列表
data = map(list, result)
return data
except Exception, ex:
except Exception as ex:
return "error: " + str(ex)
def create(self, name):
+59 -57
View File
@@ -25,11 +25,11 @@ class files_api:
##### ----- start ----- ###
def getBodyApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
return self.getBody(path)
def getLastBodyApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
line = request.form.get('line', '100')
if not os.path.exists(path):
@@ -42,30 +42,30 @@ class files_api:
return mw.returnJson(False, u'无法正确读取文件!' + str(ex))
def saveBodyApi(self):
path = request.form.get('path', '').encode('utf-8')
data = request.form.get('data', '').encode('utf-8')
encoding = request.form.get('encoding', '').encode('utf-8')
path = request.form.get('path', '')
data = request.form.get('data', '')
encoding = request.form.get('encoding', '')
return self.saveBody(path, data, encoding)
def downloadApi(self):
filename = request.args.get('filename', '').encode('utf-8')
filename = request.args.get('filename', '')
if not os.path.exists(filename):
return ''
response = make_response(send_from_directory(
os.path.dirname(filename).encode('utf-8'), os.path.basename(filename).encode('utf-8'), as_attachment=True))
os.path.dirname(filename), os.path.basename(filename), as_attachment=True))
return response
def zipApi(self):
sfile = request.form.get('sfile', '').encode('utf-8')
dfile = request.form.get('dfile', '').encode('utf-8')
stype = request.form.get('type', '').encode('utf-8')
path = request.form.get('path', '').encode('utf-8')
sfile = request.form.get('sfile', '')
dfile = request.form.get('dfile', '')
stype = request.form.get('type', '')
path = request.form.get('path', '')
return self.zip(sfile, dfile, stype, path)
# 移动文件或目录
def mvFileApi(self):
sfile = request.form.get('sfile', '').encode('utf-8')
dfile = request.form.get('dfile', '').encode('utf-8')
sfile = request.form.get('sfile', '')
dfile = request.form.get('dfile', '')
if not self.checkFileName(dfile):
return mw.returnJson(False, '文件名中不能包含特殊字符!')
if not os.path.exists(sfile):
@@ -84,11 +84,11 @@ class files_api:
return mw.returnJson(False, '移动文件或目录失败!')
def deleteApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
return self.delete(path)
def fileAccessApi(self):
filename = request.form.get('filename', '').encode('utf-8')
filename = request.form.get('filename', '')
data = self.getAccess(filename)
return mw.getJson(data)
@@ -97,8 +97,8 @@ class files_api:
if mw.isAppleSystem():
return mw.returnJson(True, '开发机不设置!')
filename = request.form.get('filename', '').encode('utf-8')
user = request.form.get('user', '').encode('utf-8')
filename = request.form.get('filename', '')
user = request.form.get('user', '')
access = request.form.get('access', '755')
sall = '-R'
try:
@@ -119,12 +119,13 @@ class files_api:
return mw.returnJson(False, '设置失败!')
def getDirSizeApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
tmp = self.getDirSize(path)
print(tmp)
return mw.returnJson(True, tmp[0].split()[0])
def getDirApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
if not os.path.exists(path):
path = mw.getRootDir() + "/wwwroot"
search = request.args.get('search', '').strip().lower()
@@ -137,7 +138,7 @@ class files_api:
return self.getDir(path, int(page), int(row), search)
def createFileApi(self):
file = request.form.get('path', '').encode('utf-8')
file = request.form.get('path', '')
try:
if not self.checkFileName(file):
return mw.returnJson(False, '文件名中不能包含特殊字符!')
@@ -156,7 +157,7 @@ class files_api:
return mw.returnJson(True, '文件创建失败!')
def createDirApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
try:
if not self.checkFileName(path):
return mw.returnJson(False, '目录名中不能包含特殊字符!')
@@ -173,9 +174,9 @@ class files_api:
def downloadFileApi(self):
import db
import time
url = request.form.get('url', '').encode('utf-8')
path = request.form.get('path', '').encode('utf-8')
filename = request.form.get('filename', '').encode('utf-8')
url = request.form.get('url', '')
path = request.form.get('path', '')
filename = request.form.get('filename', '')
isTask = mw.getRootDir() + '/tmp/panelTask.pl'
execstr = url + '|mw|' + path + '/' + filename
@@ -186,7 +187,7 @@ class files_api:
return mw.returnJson(True, '已将下载任务添加到队列!')
def removeTaskApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
try:
name = mw.M('tasks').where('id=?', (mid,)).getField('name')
status = mw.M('tasks').where('id=?', (mid,)).getField('status')
@@ -220,14 +221,13 @@ done
from werkzeug.utils import secure_filename
from flask import request
path = request.args.get('path', '').encode('utf-8')
path = request.args.get('path', '')
if not os.path.exists(path):
os.makedirs(path)
f = request.files['zunfile']
filename = os.path.join(path, f.filename)
if sys.version_info[0] == 2:
filename = filename.encode('utf-8')
s_path = path
if os.path.exists(filename):
s_path = filename
@@ -272,14 +272,15 @@ done
data['dirs'].append(tmp)
else:
data['files'].append(tmp)
except:
except Exception as e:
print(e)
continue
return mw.returnJson(True, 'OK', data)
# 回收站开关
def recycleBinApi(self):
c = 'data/recycle_bin.pl'
db = request.form.get('db', '').encode('utf-8')
db = request.form.get('db', '')
if db != '':
c = 'data/recycle_bin_db.pl'
if os.path.exists(c):
@@ -293,7 +294,7 @@ done
def reRecycleBinApi(self):
rPath = self.rPath
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
dFile = path.replace('_mw_', '/').split('_t_')[0]
try:
import shutil
@@ -308,8 +309,8 @@ done
def delRecycleBinApi(self):
rPath = self.rPath
path = request.form.get('path', '').encode('utf-8')
empty = request.form.get('empty', '').encode('utf-8')
path = request.form.get('path', '')
empty = request.form.get('empty', '')
dFile = path.split('_t_')[0]
if not self.checkDir(path):
@@ -351,7 +352,7 @@ done
return mw.returnJson(True, '已清空回收站!')
def deleteDirApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
if not os.path.exists(path):
return mw.returnJson(False, '指定文件不存在!')
@@ -378,10 +379,10 @@ done
return mw.returnJson(True, tmp[0].split()[0])
def setBatchDataApi(self):
path = request.form.get('path', '').encode('utf-8')
stype = request.form.get('type', '').encode('utf-8')
access = request.form.get('access', '').encode('utf-8')
user = request.form.get('user', '').encode('utf-8')
path = request.form.get('path', '')
stype = request.form.get('type', '')
access = request.form.get('access', '')
user = request.form.get('user', '')
data = request.form.get('data')
if stype == '1' or stype == '2':
session['selected'] = {
@@ -395,7 +396,6 @@ done
elif stype == '3':
for key in json.loads(data):
try:
key = key.encode('utf-8')
filename = path + '/' + key
if not self.checkDir(filename):
return mw.returnJson(False, 'FILE_DANGER')
@@ -414,7 +414,7 @@ done
i = 0
for key in data:
try:
filename = path + '/' + key.encode('utf-8')
filename = path + '/' + key
topath = filename
if not os.path.exists(filename):
continue
@@ -442,8 +442,8 @@ done
return mw.returnJson(True, '批量删除成功!')
def checkExistsFilesApi(self):
dfile = request.form.get('dfile', '').encode('utf-8')
filename = request.form.get('filename', '').encode('utf-8')
dfile = request.form.get('dfile', '')
filename = request.form.get('filename', '')
data = []
filesx = []
if filename == '':
@@ -451,7 +451,7 @@ done
else:
filesx.append(filename)
print filesx
# print(filesx)
for fn in filesx:
if fn == '.':
@@ -467,9 +467,9 @@ done
return mw.returnJson(True, 'ok', data)
def batchPasteApi(self):
path = request.form.get('path', '').encode('utf-8')
stype = request.form.get('type', '').encode('utf-8')
# filename = request.form.get('filename', '').encode('utf-8')
path = request.form.get('path', '')
stype = request.form.get('type', '')
# filename = request.form.get('filename', '')
import shutil
if not self.checkDir(path):
return mw.returnJson(False, '请不要花样作死!')
@@ -483,8 +483,8 @@ done
try:
sfile = session['selected'][
'path'] + '/' + key.encode('utf-8')
dfile = path + '/' + key.encode('utf-8')
'path'] + '/' + key
dfile = path + '/' + key
if os.path.isdir(sfile):
shutil.copytree(sfile, dfile)
@@ -504,8 +504,8 @@ done
mw.writeSpeed(key, i, l)
sfile = session['selected'][
'path'] + '/' + key.encode('utf-8')
dfile = path + '/' + key.encode('utf-8')
'path'] + '/' + key
dfile = path + '/' + key
shutil.move(sfile, dfile)
except:
@@ -520,8 +520,8 @@ done
return mw.returnJson(True, msg)
def copyFileApi(self):
sfile = request.form.get('sfile', '').encode('utf-8')
dfile = request.form.get('dfile', '').encode('utf-8')
sfile = request.form.get('sfile', '')
dfile = request.form.get('dfile', '')
if not os.path.exists(sfile):
return mw.returnJson(False, '指定文件不存在!')
@@ -562,6 +562,7 @@ done
# 检查敏感目录
def checkDir(self, path):
path = str(path, encoding='utf-8')
path = path.replace('//', '/')
if path[-1:] == '/':
path = path[:-1]
@@ -806,9 +807,8 @@ done
break
if i < pageObj[1].SHIFT:
continue
try:
filePath = (path + '/' + filename).encode('utf8')
filePath = path + '/' + filename
link = ''
if os.path.islink(filePath):
filePath = os.readlink(filePath)
@@ -824,8 +824,9 @@ done
user = ''
try:
user = pwd.getpwuid(stat.st_uid).pw_name
except:
except Exception as ee:
user = str(stat.st_uid)
size = str(stat.st_size)
if os.path.isdir(filePath):
dirnames.append(filename + ';' + size + ';' +
@@ -834,10 +835,11 @@ done
filenames.append(filename + ';' + size + ';' +
mtime + ';' + accept + ';' + user + ';' + link)
n += 1
except:
except Exception as e:
print('getdir:dd.', e)
continue
data['DIR'] = sorted(dirnames)
data['FILES'] = sorted(filenames)
data['PATH'] = path.replace('//', '/')
return mw.getJson(data)
+24 -13
View File
@@ -10,7 +10,6 @@ import shlex
import datetime
import subprocess
import re
import hashlib
import db
@@ -35,7 +34,17 @@ def execShell(cmdstring, cwd=None, timeout=None, shell=True):
if end_time <= datetime.datetime.now():
raise Exception("Timeout:%s" % cmdstring)
return sub.communicate()
if sys.version_info[0] == 2:
return sub.communicate()
data = sub.communicate()
# python3 fix 返回byte数据
if isinstance(data[0], bytes):
t1 = str(data[0], encoding='utf-8')
if isinstance(data[1], bytes):
t2 = str(data[1], encoding='utf-8')
return (t1, t2)
def getRunDir():
@@ -143,19 +152,19 @@ def getPageObject(args, result='1,2,3,4,5,8'):
info = {}
info['count'] = 0
if args.has_key('count'):
if 'count' in args:
info['count'] = int(args['count'])
info['row'] = 10
if args.has_key('row'):
if 'row' in args:
info['row'] = int(args['row'])
info['p'] = 1
if args.has_key('p'):
if 'p' in args:
info['p'] = int(args['p'])
info['uri'] = {}
info['return_js'] = ''
if args.has_key('tojs'):
if 'tojs' in args:
info['return_js'] = args['tojs']
return (page.GetPage(info, result), page)
@@ -165,9 +174,10 @@ def md5(str):
# 生成MD5
try:
m = hashlib.md5()
m.update(str)
m.update(str.encode("utf-8"))
return m.hexdigest()
except:
except Exception as ex:
print(ex)
return False
@@ -273,7 +283,8 @@ def readFile(filename):
fBody = fp.read()
fp.close()
return fBody
except:
except Exception as e:
# print('readFile:', e)
return False
@@ -301,7 +312,7 @@ def writeLog(type, logMsg, args=()):
data = (type, logMsg, mDate)
result = sql.table('logs').add('type,log,addtime', data)
except Exception as e:
print e
print(e)
def writeFile(filename, str):
@@ -529,8 +540,8 @@ def downloadFile(url, filename):
def downloadHook(count, blockSize, totalSize):
speed = {'total': totalSize, 'block': blockSize, 'count': count}
print speed
print '%02d%%' % (100.0 * count * blockSize / totalSize)
print(speed)
print('%02d%%' % (100.0 * count * blockSize / totalSize))
def getLocalIp():
@@ -882,7 +893,7 @@ def get_string_arr(t):
def getSSHPort():
try:
file = '/etc/ssh/sshd_config'
conf = ReadFile(file)
conf = readFile(file)
rep = "#*Port\s+([0-9]+)\s*\n"
port = re.search(rep, conf).groups(0)[0]
return int(port)
+27 -23
View File
@@ -55,7 +55,6 @@ class Page():
self.SHIFT = self.__START_NUM - 1
keys = limit.split(',')
pages = {}
# 起始页
pages['1'] = self.__GetStart()
@@ -70,14 +69,16 @@ class Page():
# 当前显示页与总页数
pages['6'] = "<span class='Pnumber'>" + \
bytes(self.__C_PAGE) + "/" + bytes(self.__COUNT_PAGE) + "</span>"
str(self.__C_PAGE) + "/" + \
str(self.__COUNT_PAGE) + "</span>"
# 本页显示开始与结束行
pages['7'] = "<span class='Pline'>" + self.__FO + \
bytes(self.__START_NUM) + "-" + \
bytes(self.__END_NUM) + self.__LINE + "</span>"
pages['7'] = "<span class='Pline'>" + str(self.__FO) + \
str(self.__START_NUM) + "-" + \
str(self.__END_NUM) + str(self.__LINE) + "</span>"
# 行数
pages['8'] = "<span class='Pcount'>" + self.__COUNT_START + \
bytes(self.__COUNT_ROW) + self.__COUNT_END + "</span>"
pages['8'] = "<span class='Pcount'>" + str(self.__COUNT_START) + \
str(self.__COUNT_ROW) + str(self.__COUNT_END) + "</span>"
# 构造返回数据
retuls = '<div>'
@@ -96,10 +97,11 @@ class Page():
else:
if self.__RTURN_JS == "":
endStr = "<a class='Pend' href='" + self.__URI + "p=" + \
bytes(self.__COUNT_PAGE) + "'>" + self.__END + "</a>"
str(self.__COUNT_PAGE) + "'>" + str(self.__END) + "</a>"
else:
endStr = "<a class='Pend' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__COUNT_PAGE) + ")'>" + self.__END + "</a>"
"(" + str(self.__COUNT_PAGE) + ")'>" + \
str(self.__END) + "</a>"
return endStr
def __GetNext(self):
@@ -110,10 +112,11 @@ class Page():
else:
if self.__RTURN_JS == "":
nextStr = "<a class='Pnext' href='" + self.__URI + "p=" + \
bytes(self.__C_PAGE + 1) + "'>" + self.__NEXT + "</a>"
str(self.__C_PAGE + 1) + "'>" + str(self.__NEXT) + "</a>"
else:
nextStr = "<a class='Pnext' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__C_PAGE + 1) + ")'>" + self.__NEXT + "</a>"
"(" + str(self.__C_PAGE + 1) + ")'>" + \
str(self.__NEXT) + "</a>"
return nextStr
@@ -134,15 +137,15 @@ class Page():
if page > 0:
if self.__RTURN_JS == "":
pages += "<a class='Pnum' href='" + self.__URI + \
"p=" + bytes(page) + "'>" + bytes(page) + "</a>"
"p=" + str(page) + "'>" + str(page) + "</a>"
else:
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \
"(" + bytes(page) + ")'>" + bytes(page) + "</a>"
"(" + str(page) + ")'>" + str(page) + "</a>"
# 当前页
if self.__C_PAGE > 0:
pages += "<span class='Pcurrent'>" + \
bytes(self.__C_PAGE) + "</span>"
str(self.__C_PAGE) + "</span>"
# 当前页之后
if self.__C_PAGE <= self.__LIST_NUM:
@@ -157,10 +160,10 @@ class Page():
break
if self.__RTURN_JS == "":
pages += "<a class='Pnum' href='" + self.__URI + \
"p=" + bytes(page) + "'>" + bytes(page) + "</a>"
"p=" + str(page) + "'>" + str(page) + "</a>"
else:
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \
"(" + bytes(page) + ")'>" + bytes(page) + "</a>"
"(" + str(page) + ")'>" + str(page) + "</a>"
return pages
@@ -172,10 +175,11 @@ class Page():
else:
if self.__RTURN_JS == "":
startStr = "<a class='Ppren' href='" + self.__URI + "p=" + \
bytes(self.__C_PAGE - 1) + "'>" + self.__PREV + "</a>"
str(self.__C_PAGE - 1) + "'>" + str(self.__PREV) + "</a>"
else:
startStr = "<a class='Ppren' onclick='" + self.__RTURN_JS + \
"(" + bytes(self.__C_PAGE - 1) + ")'>" + self.__PREV + "</a>"
"(" + str(self.__C_PAGE - 1) + ")'>" + \
str(self.__PREV) + "</a>"
return startStr
def __GetStart(self):
@@ -186,10 +190,10 @@ class Page():
else:
if self.__RTURN_JS == "":
startStr = "<a class='Pstart' href='" + \
self.__URI + "p=1'>" + self.__START + "</a>"
self.__URI + "p=1'>" + str(self.__START) + "</a>"
else:
startStr = "<a class='Pstart' onclick='" + \
self.__RTURN_JS + "(1)'>" + self.__START + "</a>"
self.__RTURN_JS + "(1)'>" + str(self.__START) + "</a>"
return startStr
def __GetCpage(self, p):
@@ -212,11 +216,11 @@ class Page():
# 取总页数
return int(math.ceil(self.__COUNT_ROW / float(self.ROW)))
def __SetUri(self, input):
def __SetUri(self, sinput):
# 构造URI
uri = '?'
for key in input:
for key in sinput:
if key == 'p':
continue
uri += key + '=' + input[key] + '&'
uri += key + '=' + sinput[key] + '&'
return str(uri)
+27 -23
View File
@@ -8,8 +8,9 @@ import re
import json
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# reload(sys)
# sys.setdefaultencoding('utf8')
import threading
import multiprocessing
@@ -61,11 +62,11 @@ class plugins_api:
if f.strip() == '':
return ''
file = self.__plugin_dir + '/' + name + '/' + f
file = mw.getPluginDir() + '/' + name + '/' + f
if not os.path.exists(file):
return ''
c = mw.readFile(file)
c = open(file, 'rb').read()
return c
def indexListApi(self):
@@ -166,8 +167,8 @@ class plugins_api:
data = mw.execShell(execstr)
if mw.isAppleSystem():
print execstr
print data[0], data[1]
print(execstr)
print(data[0], data[1])
return mw.returnJson(True, '卸载执行成功!')
# if data[1] == '':
# return mw.returnJson(True, '已将卸载成功!')
@@ -206,8 +207,10 @@ class plugins_api:
data = self.run(name, func, version, args, script)
if data[1] == '':
return mw.returnJson(True, "OK", data[0].strip())
return mw.returnJson(False, data[1].strip())
r = mw.returnJson(True, "OK", data[0].strip())
else:
r = mw.returnJson(False, data[1].strip())
return r
def callbackApi(self):
name = request.form.get('name', '')
@@ -284,7 +287,7 @@ class plugins_api:
return mw.returnJson(False, '临时文件不存在,请重新上传!')
plugin_path = mw.getPluginDir() + '/' + plugin_name
if not os.path.exists(plugin_path):
print mw.execShell('mkdir -p ' + plugin_path)
print(mw.execShell('mkdir -p ' + plugin_path))
mw.execShell("\cp -rf " + tmp_path + '/* ' + plugin_path + '/')
mw.execShell('chmod -R 755 ' + plugin_path)
p_info = mw.readFile(plugin_path + '/info.json')
@@ -382,7 +385,7 @@ class plugins_api:
t = threads[i].getResult()
plugins_info[i]['status'] = t
except Exception as e:
print 'checkStatusMThreads:', str(e)
print('checkStatusMThreads:', str(e))
return plugins_info
@@ -438,13 +441,13 @@ class plugins_api:
else:
checks = mw.getRootDir() + '/' + info['checks']
if info.has_key('path'):
if 'path' in info:
path = info['path']
if path[0:1] != '/':
path = mw.getRootDir() + '/' + path
if info.has_key('coexist') and info['coexist']:
if 'coexist' in info and info['coexist']:
coexist = True
pInfo = {
@@ -507,7 +510,7 @@ class plugins_api:
plugins_info = []
if (data['pid'] == sType):
if type(data['versions']) == list and data.has_key('coexist') and data['coexist']:
if type(data['versions']) == list and 'coexist' in data and data['coexist']:
tmp_data = self.makeCoexist(data)
for index in range(len(tmp_data)):
plugins_info.append(tmp_data[index])
@@ -517,7 +520,7 @@ class plugins_api:
return plugins_info
if sType == '0':
if type(data['versions']) == list and data.has_key('coexist') and data['coexist']:
if type(data['versions']) == list and 'coexist' in data and data['coexist']:
tmp_data = self.makeCoexist(data)
for index in range(len(tmp_data)):
plugins_info.append(tmp_data[index])
@@ -542,8 +545,8 @@ class plugins_api:
tmp_data = self.makeList(data, sType)
for index in range(len(tmp_data)):
plugins_info.append(tmp_data[index])
except Exception, e:
print e
except Exception as e:
print(e)
return plugins_info
def getAllListPage(self, sType='0', page=1, pageSize=10):
@@ -560,8 +563,8 @@ class plugins_api:
tmp_data = self.makeList(data, sType)
for index in range(len(tmp_data)):
plugins_info.append(tmp_data[index])
except Exception, e:
print e
except Exception as e:
print(e)
start = (page - 1) * pageSize
end = start + pageSize
@@ -733,8 +736,8 @@ class plugins_api:
tmp_data[index]['display'] = True
plist.append(tmp_data[index])
continue
except Exception, e:
print 'getIndexList:', e
except Exception as e:
print('getIndexList:', e)
# 使用gevent模式时,无法使用多进程
# plist = self.checkStatusMProcess(plist)
@@ -788,11 +791,12 @@ class plugins_api:
if not os.path.exists(path):
return ('', '')
data = mw.execShell(py_cmd)
# data = os.popen(py_cmd).read()
if mw.isAppleSystem():
print 'run', py_cmd
print('run', py_cmd)
print(data)
# print os.path.exists(py_cmd)
return (data[0].strip(), data[1].strip())
# 映射包调用
@@ -805,6 +809,6 @@ class plugins_api:
eval_str = "__import__('" + script + "')." + func + '(' + args + ')'
newRet = eval(eval_str)
if mw.isAppleSystem():
print 'callback', eval_str
print('callback', eval_str)
return (True, newRet)
+102 -101
View File
@@ -15,6 +15,8 @@ import psutil
from flask import request
# request.packages.urllib3.disable_warnings()
class site_api:
siteName = None # 网站名称
@@ -51,9 +53,9 @@ class site_api:
##### ----- start ----- ###
def listApi(self):
limit = request.form.get('limit', '').encode('utf-8')
p = request.form.get('p', '').encode('utf-8')
type_id = request.form.get('type_id', '').encode('utf-8')
limit = request.form.get('limit', '10')
p = request.form.get('p', '1')
type_id = request.form.get('type_id', '')
start = (int(p) - 1) * (int(limit))
@@ -82,7 +84,7 @@ class site_api:
return mw.getJson(_ret)
def setDefaultSiteApi(self):
name = request.form.get('name', '').encode('utf-8')
name = request.form.get('name', '')
import time
# 清理旧的
defaultSite = mw.readFile('data/defaultSite.pl')
@@ -117,15 +119,15 @@ class site_api:
return mw.getJson(data)
def setPsApi(self):
mid = request.form.get('id', '').encode('utf-8')
ps = request.form.get('ps', '').encode('utf-8')
mid = request.form.get('id', '')
ps = request.form.get('ps', '')
if mw.M('sites').where("id=?", (mid,)).setField('ps', ps):
return mw.returnJson(True, '修改成功!')
return mw.returnJson(False, '修改失败!')
def stopApi(self):
mid = request.form.get('id', '').encode('utf-8')
name = request.form.get('name', '').encode('utf-8')
mid = request.form.get('id', '')
name = request.form.get('name', '')
path = self.setupPath + '/stop'
if not os.path.exists(path):
@@ -158,8 +160,8 @@ class site_api:
return mw.returnJson(True, '站点已停用!')
def startApi(self):
mid = request.form.get('id', '').encode('utf-8')
name = request.form.get('name', '').encode('utf-8')
mid = request.form.get('id', '')
name = request.form.get('name', '')
path = self.setupPath + '/stop'
sitePath = mw.M('sites').where("id=?", (mid,)).getField('path')
@@ -177,9 +179,9 @@ class site_api:
return mw.returnJson(True, '站点已启用!')
def getBackupApi(self):
limit = request.form.get('limit', '').encode('utf-8')
p = request.form.get('p', '').encode('utf-8')
mid = request.form.get('search', '').encode('utf-8')
limit = request.form.get('limit', '')
p = request.form.get('p', '')
mid = request.form.get('search', '')
find = mw.M('sites').where("id=?", (mid,)).field(
"id,name,path,status,ps,addtime,edate").find()
@@ -201,7 +203,7 @@ class site_api:
return mw.getJson(_ret)
def toBackupApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
find = mw.M('sites').where(
"id=?", (mid,)).field('name,path,id').find()
fileName = find['name'] + '_' + \
@@ -228,7 +230,7 @@ class site_api:
return mw.returnJson(True, '备份成功!')
def delBackupApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
filename = mw.M('backup').where(
"id=?", (mid,)).getField('filename')
if os.path.exists(filename):
@@ -243,8 +245,8 @@ class site_api:
return self.getPhpVersion()
def setPhpVersionApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
version = request.form.get('version', '').encode('utf-8')
siteName = request.form.get('siteName', '')
version = request.form.get('version', '')
# nginx
file = self.getHostConf(siteName)
@@ -261,12 +263,12 @@ class site_api:
return mw.returnJson(True, msg)
def getDomainApi(self):
pid = request.form.get('pid', '').encode('utf-8')
pid = request.form.get('pid', '')
return self.getDomain(pid)
# 获取站点所有域名
def getSiteDomainsApi(self):
pid = request.form.get('id', '').encode('utf-8')
pid = request.form.get('id', '')
data = {}
domains = mw.M('domain').where(
@@ -287,7 +289,7 @@ class site_api:
return mw.returnJson(True, 'OK', data)
def getDirBindingApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
path = mw.M('sites').where('id=?', (mid,)).getField('path')
if not os.path.exists(path):
@@ -323,7 +325,7 @@ class site_api:
return mw.returnJson(True, 'OK', data)
def getDirUserIniApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
path = mw.M('sites').where('id=?', (mid,)).getField('path')
name = mw.M('sites').where("id=?", (mid,)).getField('name')
@@ -338,7 +340,7 @@ class site_api:
return mw.returnJson(True, 'OK', data)
def setDirUserIniApi(self):
path = request.form.get('path', '').encode('utf-8')
path = request.form.get('path', '')
filename = path + '/.user.ini'
self.delUserInI(path)
if os.path.exists(filename):
@@ -350,7 +352,7 @@ class site_api:
return mw.returnJson(True, '已打开防跨站设置!')
def logsOpenApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
name = mw.M('sites').where("id=?", (mid,)).getField('name')
# NGINX
@@ -387,7 +389,7 @@ class site_api:
return mw.returnJson(True, 'OK', [])
def getSslApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
path = self.sslDir + siteName
csrpath = path + "/fullchain.pem" # 生成证书路径
@@ -414,9 +416,9 @@ class site_api:
return mw.returnJson(True, 'OK', data)
def setSslApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
key = request.form.get('key', '').encode('utf-8')
csr = request.form.get('csr', '').encode('utf-8')
siteName = request.form.get('siteName', '')
key = request.form.get('key', '')
csr = request.form.get('csr', '')
path = self.sslDir + siteName
if not os.path.exists(path):
@@ -471,8 +473,8 @@ class site_api:
return mw.returnJson(True, '证书已保存!')
def setCertToSiteApi(self):
certName = request.form.get('certName', '').encode('utf-8')
siteName = request.form.get('siteName', '').encode('utf-8')
certName = request.form.get('certName', '')
siteName = request.form.get('siteName', '')
try:
path = self.sslDir + siteName
if not os.path.exists(path):
@@ -489,7 +491,7 @@ class site_api:
return mw.returnJson(False, '设置错误,' + str(ex))
def removeCertApi(self):
certName = request.form.get('certName', '').encode('utf-8')
certName = request.form.get('certName', '')
try:
path = self.sslDir + certName
if not os.path.exists(path):
@@ -500,7 +502,7 @@ class site_api:
return mw.returnJson(False, '删除失败!')
def closeSslConfApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
file = self.getHostConf(siteName)
conf = mw.readFile(file)
@@ -548,12 +550,12 @@ class site_api:
return mw.returnJson(True, 'SSL已关闭!')
def createLetApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
updateOf = request.form.get('updateOf', '')
domains = request.form.get('domains', '').encode('utf-8')
force = request.form.get('force', '').encode('utf-8')
renew = request.form.get('renew', '').encode('utf-8')
email_args = request.form.get('email', '').encode('utf-8')
domains = request.form.get('domains', '')
force = request.form.get('force', '')
renew = request.form.get('renew', '')
email_args = request.form.get('email', '')
domains = json.loads(domains)
email = mw.M('users').getField('email')
@@ -648,8 +650,8 @@ class site_api:
# print home_cert
cmd = 'export ACCOUNT_EMAIL=' + email + ' && ' + execStr
print domains
print cmd
print(domains)
print(cmd)
result = mw.execShell(cmd)
if not os.path.exists(home_cert.replace("\*", "*")):
@@ -693,7 +695,7 @@ class site_api:
return mw.returnJson(True, 'OK', result)
def httpToHttpsApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
file = self.getHostConf(siteName)
conf = mw.readFile(file)
if conf:
@@ -712,7 +714,7 @@ class site_api:
return mw.returnJson(True, '设置成功!证书也要设置好哟!')
def closeToHttpsApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
file = self.getHostConf(siteName)
conf = mw.readFile(file)
if conf:
@@ -726,65 +728,65 @@ class site_api:
return mw.returnJson(True, '关闭HTTPS跳转成功!')
def getIndexApi(self):
sid = request.form.get('id', '').encode('utf-8')
sid = request.form.get('id', '')
data = {}
index = self.getIndex(sid)
data['index'] = index
return mw.getJson(data)
def setIndexApi(self):
sid = request.form.get('id', '').encode('utf-8')
index = request.form.get('index', '').encode('utf-8')
sid = request.form.get('id', '')
index = request.form.get('index', '')
return self.setIndex(sid, index)
def getLimitNetApi(self):
sid = request.form.get('id', '').encode('utf-8')
sid = request.form.get('id', '')
return self.getLimitNet(sid)
def saveLimitNetApi(self):
sid = request.form.get('id', '').encode('utf-8')
perserver = request.form.get('perserver', '').encode('utf-8')
perip = request.form.get('perip', '').encode('utf-8')
limit_rate = request.form.get('limit_rate', '').encode('utf-8')
sid = request.form.get('id', '')
perserver = request.form.get('perserver', '')
perip = request.form.get('perip', '')
limit_rate = request.form.get('limit_rate', '')
return self.saveLimitNet(sid, perserver, perip, limit_rate)
def closeLimitNetApi(self):
sid = request.form.get('id', '').encode('utf-8')
sid = request.form.get('id', '')
return self.closeLimitNet(sid)
def getSecurityApi(self):
sid = request.form.get('id', '').encode('utf-8')
name = request.form.get('name', '').encode('utf-8')
sid = request.form.get('id', '')
name = request.form.get('name', '')
return self.getSecurity(sid, name)
def setSecurityApi(self):
fix = request.form.get('fix', '').encode('utf-8')
domains = request.form.get('domains', '').encode('utf-8')
status = request.form.get('status', '').encode('utf-8')
name = request.form.get('name', '').encode('utf-8')
sid = request.form.get('id', '').encode('utf-8')
fix = request.form.get('fix', '')
domains = request.form.get('domains', '')
status = request.form.get('status', '')
name = request.form.get('name', '')
sid = request.form.get('id', '')
return self.setSecurity(sid, name, fix, domains, status)
def getLogsApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
return self.getLogs(siteName)
def getSitePhpVersionApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
return self.getSitePhpVersion(siteName)
def getHostConfApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
host = self.getHostConf(siteName)
return mw.getJson({'host': host})
def getRewriteConfApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
rewrite = self.getRewriteConf(siteName)
return mw.getJson({'rewrite': rewrite})
def getRewriteTplApi(self):
tplname = request.form.get('tplname', '').encode('utf-8')
tplname = request.form.get('tplname', '')
file = mw.getRunDir() + '/rewrite/nginx/' + tplname + '.conf'
if not os.path.exists(file):
return mw.returnJson(False, '模版不存在!')
@@ -800,16 +802,16 @@ class site_api:
return mw.getJson(data)
def setEndDateApi(self):
sid = request.form.get('id', '').encode('utf-8')
edate = request.form.get('edate', '').encode('utf-8')
sid = request.form.get('id', '')
edate = request.form.get('edate', '')
return self.setEndDate(sid, edate)
def addApi(self):
webname = request.form.get('webinfo', '').encode('utf-8')
ps = request.form.get('ps', '').encode('utf-8')
path = request.form.get('path', '').encode('utf-8')
version = request.form.get('version', '').encode('utf-8')
port = request.form.get('port', '').encode('utf-8')
webname = request.form.get('webinfo', '')
ps = request.form.get('ps', '')
path = request.form.get('path', '')
version = request.form.get('version', '')
port = request.form.get('port', '').decode('utf-8')
return self.add(webname, port, ps, path, version)
def addDomainApi(self):
@@ -817,8 +819,8 @@ class site_api:
if isError != True:
return mw.returnJson(False, 'ERROR: 检测到配置文件有错误,请先排除后再操作<br><br><a style="color:red;">' + isError.replace("\n", '<br>') + '</a>')
domain = request.form.get('domain', '').encode('utf-8')
webname = request.form.get('webname', '').encode('utf-8')
domain = request.form.get('domain', '')
webname = request.form.get('webname', '')
pid = request.form.get('id', '').encode('utf-8')
if len(domain) < 3:
return mw.returnJson(False, '域名不能为空!')
@@ -864,9 +866,9 @@ class site_api:
return mw.returnJson(True, '域名添加成功!')
def addDirBindApi(self):
pid = request.form.get('id', '').encode('utf-8')
domain = request.form.get('domain', '').encode('utf-8')
dirName = request.form.get('dirName', '').encode('utf-8')
pid = request.form.get('id', '')
domain = request.form.get('domain', '')
dirName = request.form.get('dirName', '')
tmp = domain.split(':')
domain = tmp[0]
port = '80'
@@ -926,7 +928,7 @@ class site_api:
return mw.returnJson(True, '添加成功!')
def delDirBindApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
binding = mw.M('binding').where(
"id=?", (mid,)).field('id,pid,domain,path').find()
siteName = mw.M('sites').where(
@@ -954,8 +956,8 @@ class site_api:
# 取子目录Rewrite
def getDirBindRewriteApi(self):
mid = request.form.get('id', '').encode('utf-8')
add = request.form.get('add', '0').encode('utf-8')
mid = request.form.get('id', '')
add = request.form.get('add', '0')
find = mw.M('binding').where(
"id=?", (mid,)).field('id,pid,domain,path').find()
site = mw.M('sites').where(
@@ -990,8 +992,8 @@ class site_api:
# 修改物理路径
def setPathApi(self):
mid = request.form.get('id', '').encode('utf-8')
path = request.form.get('path', '').encode('utf-8')
mid = request.form.get('id', '')
path = request.form.get('path', '')
path = self.getPath(path)
if path == "" or mid == '0':
@@ -1028,8 +1030,8 @@ class site_api:
# 设置当前站点运行目录
def setSiteRunPathApi(self):
mid = request.form.get('id', '').encode('utf-8')
runPath = request.form.get('runPath', '').encode('utf-8')
mid = request.form.get('id', '')
runPath = request.form.get('runPath', '')
siteName = mw.M('sites').where('id=?', (mid,)).getField('name')
sitePath = mw.M('sites').where('id=?', (mid,)).getField('path')
@@ -1051,9 +1053,9 @@ class site_api:
# 设置目录加密
def setHasPwdApi(self):
username = request.form.get('username', '').encode('utf-8')
password = request.form.get('password', '').encode('utf-8')
siteName = request.form.get('siteName', '').encode('utf-8')
username = request.form.get('username', '')
password = request.form.get('password', '')
siteName = request.form.get('siteName', '')
mid = request.form.get('id', '')
if len(username.strip()) == 0 or len(password.strip()) == 0:
@@ -1064,7 +1066,7 @@ class site_api:
# self.closeHasPwd(get)
filename = self.passPath + '/' + siteName + '.pass'
print filename
print(filename)
passconf = username + ':' + mw.hasPwd(password)
if siteName == 'phpmyadmin':
@@ -1098,7 +1100,7 @@ class site_api:
# 取消目录加密
def closeHasPwdApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
mid = request.form.get('id', '')
if siteName == '':
siteName = mw.M('sites').where('id=?', (mid,)).getField('name')
@@ -1120,9 +1122,9 @@ class site_api:
return mw.returnJson(True, '设置成功!')
def delDomainApi(self):
domain = request.form.get('domain', '').encode('utf-8')
webname = request.form.get('webname', '').encode('utf-8')
port = request.form.get('port', '').encode('utf-8')
domain = request.form.get('domain', '')
webname = request.form.get('webname', '')
port = request.form.get('port', '')
pid = request.form.get('id', '')
find = mw.M('domain').where("pid=? AND name=?",
@@ -1160,13 +1162,13 @@ class site_api:
return mw.returnJson(True, '站点删除成功!')
def deleteApi(self):
sid = request.form.get('id', '').encode('utf-8')
webname = request.form.get('webname', '').encode('utf-8')
path = request.form.get('path', '0').encode('utf-8')
sid = request.form.get('id', '')
webname = request.form.get('webname', '')
path = request.form.get('path', '0')
return self.delete(sid, webname, path)
def getProxyListApi(self):
siteName = request.form.get('siteName', '').encode('utf-8')
siteName = request.form.get('siteName', '')
conf_path = self.getHostConf(siteName)
old_conf = mw.readFile(conf_path)
rep = "(#PROXY-START(\n|.)+#PROXY-END)"
@@ -1213,7 +1215,7 @@ class site_api:
return mw.getJson(data)
def getSiteDocApi(self):
stype = request.form.get('type', '0').strip().encode('utf-8')
stype = request.form.get('type', '0').strip()
vlist = []
vlist.append('')
vlist.append(mw.getServerDir() +
@@ -1227,7 +1229,7 @@ class site_api:
return mw.returnJson(True, 'ok', data)
def addSiteTypeApi(self):
name = request.form.get('name', '').strip().encode('utf-8')
name = request.form.get('name', '').strip()
if not name:
return mw.returnJson(False, "分类名称不能为空")
if len(name) > 18:
@@ -1240,7 +1242,7 @@ class site_api:
return mw.returnJson(True, '添加成功!')
def removeSiteTypeApi(self):
mid = request.form.get('id', '').encode('utf-8')
mid = request.form.get('id', '')
if mw.M('site_types').where('id=?', (mid,)).count() == 0:
return mw.returnJson(False, "指定分类不存在!")
mw.M('site_types').where('id=?', (mid,)).delete()
@@ -1249,8 +1251,8 @@ class site_api:
def modifySiteTypeNameApi(self):
# 修改网站分类名称
name = request.form.get('name', '').strip().encode('utf-8')
mid = request.form.get('id', '').encode('utf-8')
name = request.form.get('name', '').strip()
mid = request.form.get('id', '')
if not name:
return mw.returnJson(False, "分类名称不能为空")
if len(name) > 18:
@@ -1262,11 +1264,11 @@ class site_api:
def setSiteTypeApi(self):
# 设置指定站点的分类
site_ids = request.form.get('site_ids', '').encode('utf-8')
mid = request.form.get('id', '').encode('utf-8')
site_ids = request.form.get('site_ids', '')
mid = request.form.get('id', '')
site_ids = json.loads(site_ids)
for sid in site_ids:
print mw.M('sites').where('id=?', (sid,)).setField('type_id', mid)
print(mw.M('sites').where('id=?', (sid,)).setField('type_id', mid))
return mw.returnJson(True, "设置成功!")
##### ----- end ----- ###
@@ -1667,7 +1669,6 @@ location /{
mw.writeFile(rewrite_file, rewrite_content)
def add(self, webname, port, ps, path, version):
siteMenu = json.loads(webname)
self.siteName = self.toPunycode(
siteMenu['domain'].strip().split(':')[0]).strip()
+23 -27
View File
@@ -12,6 +12,7 @@ from flask import request
import db
import mw
import requests
import config_api
@@ -19,7 +20,7 @@ from threading import Thread
from time import sleep
def async(f):
def mw_async(f):
def wrapper(*args, **kwargs):
thr = Thread(target=f, args=args, kwargs=kwargs)
thr.start()
@@ -100,14 +101,14 @@ class system_api:
return mw.returnJson(True, '正在重启服务器!')
##### ----- end ----- ###
@async
@mw_async
def restartMw(self):
sleep(1)
cmd = mw.getRunDir() + '/scripts/init.d/mw restart'
sleep(0.3)
# cmd = mw.getRunDir() + '/scripts/init.d/mw restart'
# print cmd
mw.execShell(cmd)
mw.execShell('service mw restart')
@async
@mw_async
def restartServer(self):
if not mw.isRestart():
return mw.returnJson(False, '请等待所有安装任务完成再执行!')
@@ -301,7 +302,7 @@ class system_api:
memInfo['memBuffers'] - memInfo['memCached']
tmp1 = memInfo['memTotal'] / 100
return (tmp / tmp1)
except Exception, ex:
except Exception as ex:
return 1
def getDiskInfo(self, get=None):
@@ -395,7 +396,7 @@ class system_api:
shutil.rmtree(filename)
else:
os.remove(filename)
print '\t\033[1;32m[OK]\033[0m'
print('\t\033[1;32m[OK]\033[0m')
num += 1
total += size
count += num
@@ -459,8 +460,8 @@ class system_api:
networkInfo['mem'] = self.getMemInfo()
return networkInfo
except Exception, e:
print e
except Exception as e:
print(e)
return None
def getNetWorkApi(self):
@@ -604,13 +605,9 @@ class system_api:
old_list = old.split('.')
ret = 'none'
# t = [0] * 3
isHasNew = True
for i in range(3):
if int(new_list[i]) > int(old_list[i]):
pass
else:
isHasNew = False
if int(new_list[0]) == int(old_list[0]) and int(new_list[1]) == int(old_list[1]) and int(new_list[2]) == int(old_list[2]):
isHasNew = False
if isHasNew:
return 'new'
@@ -619,11 +616,12 @@ class system_api:
def getServerInfo(self):
upAddr = 'https://raw.githubusercontent.com/midoks/mdserver-web/master/version/info.json'
try:
version = mw.httpGet(upAddr)
version = json.loads(version)
requests.adapters.DEFAULT_RETRIES = 2
r = requests.get(upAddr, verify=False)
version = json.loads(r.content)
return version[0]
except Exception as e:
print 'getServerInfo', e
print('getServerInfo', e)
return {}
def updateServer(self, stype, version=''):
@@ -636,11 +634,10 @@ class system_api:
version_now = config_api.config_api().getVersion()
version_new_info = self.getServerInfo()
if not 'version' in version_new_info:
return mw.returnJson(False, '服务器数据有问题!')
return mw.returnJson(False, '服务器数据或网络有问题!')
diff = self.versionDiff(
version_now, version_new_info['version'])
print diff
if diff == 'new':
return mw.returnJson(True, '有新版本!', version_new_info['version'])
elif diff == 'test':
@@ -674,17 +671,16 @@ class system_api:
if not os.path.exists(toPath):
mw.execShell('mkdir -p ' + toPath)
if not os.path.exists(toPath + '/mw.zip'):
mw.execShell('wget -O ' + toPath + '/mw.zip ' + newUrl)
mw.execShell('wget -O ' + toPath + '/mw.zip ' + newUrl)
mw.execShell('unzip -o ' + toPath + '/mw.zip' + ' -d ./')
mw.execShell('unzip -o mdserver-web.zip -d ./')
mw.execShell('rm -f mdserver-web.zip')
return mw.returnJson(True, '安装更新成功!')
mw.execShell('unzip -o mw.zip -d ./')
mw.execShell('rm -f mw.zip')
return mw.returnJson(True, '安装更新成功,需自己重启!')
return mw.returnJson(False, '已经是最新,无需更新!')
except Exception as ex:
print 'updateServer', ex
print('updateServer', ex)
return mw.returnJson(False, "连接服务器失败!")
# 修复面板
+1 -1
View File
@@ -24,7 +24,7 @@ class task_api:
def listApi(self):
p = request.form.get('p', '1').encode('utf-8')
p = request.form.get('p', '1')
limit = request.form.get('limit', '10').strip()
search = request.form.get('search', '').strip()
+4 -4
View File
@@ -75,7 +75,7 @@ class vieCode:
if not self.__inNoise:
return
font = ImageFont.truetype(self.__fontPatn, int(self.__fontSize / 1.5))
for i in xrange(5):
for i in range(5):
# 杂点颜色
noiseColor = (random.randint(150, 200), random.randint(
150, 200), random.randint(150, 200))
@@ -104,9 +104,9 @@ class vieCode:
# 画曲线
color = (random.randint(30, 150), random.randint(
30, 150), random.randint(30, 150))
for x in xrange(xend):
for x in range(xend):
if w != 0:
for k in xrange(int(self.__heigth / 10)):
for k in range(int(self.__heigth / 10)):
y = a * math.sin(w * x + f) + b + self.__heigth / 2
i = int(self.__fontSize / 5)
while i > 0:
@@ -120,7 +120,7 @@ class vieCode:
font = ImageFont.truetype(self.__fontPatn, self.__fontSize)
x = 0
# 打印字符到画板
for i in xrange(self.__length):
for i in range(self.__length):
# 设置字体随机颜色
color = (random.randint(30, 150), random.randint(
30, 150), random.randint(30, 150))
+1
View File
@@ -0,0 +1 @@
jnuxgfkj
+102
View File
@@ -0,0 +1,102 @@
## 文件保存相关 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/tmp/aria2
# 设置日志等级
log-level=error
# 日志保存路径
log={$SERVER_PATH}/aria2.log
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=none
# 断点续传
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=10
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=128
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file={$SERVER_PATH}/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session={$SERVER_PATH}/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=sark
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+19
View File
@@ -0,0 +1,19 @@
<div class="bt-form">
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('aria2');">服务</p>
<p onclick="pluginInitD('aria2');">自启动</p>
<p onclick="pluginConfig('aria2');">配置修改</p>
<p onclick="pluginLogs('aria2','','run_log');">运行日志</p>
<p onclick="readme();">说明</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<script type="text/javascript">
$.getScript( "/plugins/file?name=aria2&f=js/aria2.js", function(){
pluginService('aria2');
});
</script>
+211
View File
@@ -0,0 +1,211 @@
# coding:utf-8
import sys
import io
import os
import time
import shutil
sys.path.append(os.getcwd() + "/class/core")
import mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'aria2'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDTpl():
path = getPluginDir() + "/init.d/aria2.tpl"
return path
def getArgs():
args = sys.argv[2:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':')
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
def initDreplace():
file_tpl = getInitDTpl()
service_path = os.path.dirname(os.getcwd())
initD_path = getServerDir() + '/init.d'
file_bin = initD_path + '/' + getPluginName()
if not os.path.exists(initD_path):
os.mkdir(initD_path)
# initd replace
content = mw.readFile(file_tpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(file_bin, content)
mw.execShell('chmod +x ' + file_bin)
aria2_path = getServerDir() + '/aria2'
mw.execShell('mkdir -p /tmp/download')
if not os.path.exists(aria2_path):
mw.execShell('mkdir -p ' + aria2_path)
mw.execShell('touch ' + aria2_path + '/aria2.session')
path = getPluginDir() + "/conf/aria2.conf"
content = mw.readFile(path)
content = content.replace('{$SERVER_PATH}', aria2_path)
mw.writeFile(aria2_path + '/aria2.conf', content)
return file_bin
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def status():
cmd = "ps -ef|grep aria2 |grep -v grep | grep -v 'mdserver-web'| awk '{print $2}'"
data = mw.execShell(cmd)
if data[0] == '':
return 'stop'
return 'start'
def start():
file = initDreplace()
data = mw.execShell(file + ' start')
if data[1] == '':
return 'ok'
return data[1]
def stop():
file = initDreplace()
data = mw.execShell(file + ' stop')
# print data
if data[1] == '':
return 'ok'
return data[1]
def restart():
file = initDreplace()
data = mw.execShell(file + ' reload')
if data[1] == '':
return 'ok'
return data[1]
def reload():
file = initDreplace()
data = mw.execShell(file + ' reload')
if data[1] == '':
return 'ok'
return data[1]
def getPathFile():
if mw.isAppleSystem():
user = mw.execShell(
"who | sed -n '2, 1p' |awk '{print $1}'")[0].strip()
return '/Users/' + user + '/.aria2/aria2.conf'
return getServerDir() + '/aria2/aria2.conf'
def getInitDFile():
if app_debug:
return '/tmp/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def initdStatus():
if not app_debug:
if mw.isAppleSystem():
return "Apple Computer does not support"
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
return 'ok'
return 'fail'
def initdInstall():
source_bin = initDreplace()
initd_bin = getInitDFile()
shutil.copyfile(source_bin, initd_bin)
mw.execShell('chmod +x ' + initd_bin)
if not app_debug:
mw.execShell('chkconfig --add ' + getPluginName())
return 'ok'
def initdUinstall():
if not app_debug:
mw.execShell('chkconfig --del ' + getPluginName())
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
os.remove(initd_bin)
return 'ok'
def getLog():
if mw.isAppleSystem():
user = mw.execShell(
"who | sed -n '2, 1p' |awk '{print $1}'")[0].strip()
return '/Users/' + user + '/.aria2/aria2.log'
return getServerDir() + '/aria2/aria2.log'
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'conf':
print(getPathFile())
elif func == 'initd_status':
print(initdStatus())
elif func == 'initd_install':
print(initdInstall())
elif func == 'initd_uninstall':
print(initdUinstall())
elif func == 'run_log':
print(getLog())
else:
print('error')
+15
View File
@@ -0,0 +1,15 @@
{
"title":"aria2",
"tip":"soft",
"name":"aria2",
"type":"其他插件",
"ps":"一款下载神器",
"versions":"1.0",
"shell":"install.sh",
"checks":"server/aria2",
"path": "server/aria2",
"author":"midoks",
"home":"https://github.com/aria2/aria2",
"date":"2020-06-08",
"pid": "5"
}
+49
View File
@@ -0,0 +1,49 @@
#!/bin/sh
# chkconfig: 2345 55 25
# description: aria2 Service
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts aria2
# Description: starts the MDW-Web
### END INIT INFO
app_start(){
# aria2c -D
aria2c --daemon --enable-rpc --rpc-listen-all -c -D --conf-path={$SERVER_PATH}/aria2/aria2/aria2.conf
echo "aria2 started"
}
app_stop(){
echo "Stopping ..."
arr=`ps -ef | grep "aria2" | grep -v 'grep' | grep -v '/bin/sh'|grep -v 'index.py' | awk '{print $2}'`
echo $arr
for p in ${arr[@]}
do
kill -9 $p &>/dev/null
done
echo "aria2 stopped"
}
case "$1" in
start)
app_start
;;
stop)
app_stop
;;
restart|reload)
app_stop
sleep 0.3
app_start
;;
*)
echo "Please use start or stop as first argument"
;;
esac
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
install_tmp=${rootPath}/tmp/mw_install.pl
SYSOS=`uname`
Install_aria2()
{
isStart=""
echo '正在安装脚本文件...' > $install_tmp
mkdir -p $serverPath/aria2
echo '1.0' > $serverPath/aria2/version.pl
if [ "Darwin" == "$SYSOS" ];then
echo 'macosx unavailable' > $install_tmp
find_sh=`which aria2c`
if [ "$?" != "0" ];then
brew install aria2
fi
else
find_sh=`which aria2c`
if [ "$?" != "0" ];then
yum install aria2 -y
fi
fi
echo 'Install complete' > $install_tmp
}
Uninstall_aria2()
{
rm -rf $serverPath/aria2
echo "Uninstall completed" > $install_tmp
}
action=$1
if [ "${1}" == 'install' ];then
Install_aria2
else
Uninstall_aria2
fi
+92
View File
@@ -0,0 +1,92 @@
function str2Obj(str){
var data = {};
kv = str.split('&');
for(i in kv){
v = kv[i].split('=');
data[v[0]] = v[1];
}
return data;
}
function lpPost(method,args,callback, title){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
var _title = '正在获取...';
if (typeof(title) != 'undefined'){
_title = title;
}
var loadT = layer.msg(_title, { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'aria2', func:method, args:_args}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function lpAsyncPost(method,args){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
return syncPost('/plugins/run', {name:'l2tp', func:method, args:_args});
}
function userList(){
lpPost('user_list', '' ,function(data){
var rdata = $.parseJSON(data['data']);
if (!rdata['status']){
layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
var list = rdata['data'];
var con = '';
con += '<div class="divtable" style="margin-top:5px;"><table class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0">';
con += '<thead><tr>';
con += '<th>用户</th>';
con += '<th>密码</th>';
con += '<th>操作(<a class="btlink" onclick="addUser()">添加</a>)</th>';
con += '</tr></thead>';
con += '<tbody>';
for (var i = 0; i < list.length; i++) {
con += '<tr>'+
'<td>' + list[i]['user']+'</td>' +
'<td>' + list[i]['pwd']+'</td>' +
'<td><a class="btlink" onclick="modUser(\''+list[i]['user']+'\')">改密</a>|<a class="btlink" onclick="delUser(\''+list[i]['user']+'\')">删除</a></td></tr>';
}
con += '</tbody>';
con += '</table></div>';
$(".soft-man-con").html(con);
});
}
function readme(){
var readme = '<ul class="help-info-text c7">';
readme += '<li>使用时,查看对应的端口</li>';
readme += '</ul>';
$('.soft-man-con').html(readme);
}
+5 -5
View File
@@ -98,12 +98,12 @@ def reload():
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print status()
print(status())
elif func == 'start':
print start()
print(start())
elif func == 'stop':
print stop()
print(stop())
elif func == 'restart':
print restart()
print(restart())
elif func == 'reload':
print reload()
print(reload())
+1 -1
View File
@@ -12,5 +12,5 @@
"author":"Google",
"home":"https://github.com/google/bbr",
"date":"2019-03-29",
"pid":"4"
"pid":"5"
}
+25 -25
View File
@@ -658,52 +658,52 @@ def getTotalStatistics():
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print status()
print(status())
elif func == 'start':
print start()
print(start())
elif func == 'stop':
print stop()
print(stop())
elif func == 'restart':
print restart()
print(restart())
elif func == 'reload':
print reload()
print(reload())
elif func == 'initd_status':
print initdStatus()
print(initdStatus())
elif func == 'initd_install':
print initdInstall()
print(initdInstall())
elif func == 'initd_uninstall':
print initdUinstall()
print(initdUinstall())
elif func == 'csvn_edit':
print csvnEdit()
print(csvnEdit())
elif func == 'user_list':
print userList()
print(userList())
elif func == 'user_add':
print userAdd()
print(userAdd())
elif func == 'user_del':
print userDel()
print(userDel())
elif func == 'project_list':
print projectList()
print(projectList())
elif func == 'project_del':
print projectDel()
print(projectDel())
elif func == 'project_add':
print projectAdd()
print(projectAdd())
elif func == 'project_acl_list':
print projectAclList()
print(projectAclList())
elif func == 'project_acl_add':
print projectAclAdd()
print(projectAclAdd())
elif func == 'project_acl_del':
print projectAclDel()
print(projectAclDel())
elif func == 'project_acl_set':
print projectAclSet()
print(projectAclSet())
elif func == 'project_script_load':
print projectScriptLoad()
print(projectScriptLoad())
elif func == 'project_script_unload':
print projectScriptUnload()
print(projectScriptUnload())
elif func == 'project_script_edit':
print projectScriptEdit()
print(projectScriptEdit())
elif func == 'project_script_debug':
print projectScriptDebug()
print(projectScriptDebug())
elif func == 'get_total_statistics':
print getTotalStatistics()
print(getTotalStatistics())
else:
print 'fail'
print('fail')
@@ -7,7 +7,7 @@ import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")
class mysql:
class mysqlDb:
__DB_PASS = None
__DB_USER = 'root'
__DB_PORT = 3306
+2
View File
@@ -1,5 +1,7 @@
#!/bin/bash
echo `date`
GITADDR="{$GITROOTURL}/{$USERNAME}/{$PROJECT}"
GIT_SDIR="{$CODE_DIR}"
+26 -26
View File
@@ -26,7 +26,7 @@ def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
sys.path.append(getPluginDir() + "/class")
import mysql
import mysqlDb
def getServerDir():
@@ -197,7 +197,7 @@ def pMysqlDb():
conf = getDbConfValue()
host = conf['HOST'].split(':')
conn = mysql.mysql()
conn = mysqlDb.mysqlDb()
conn.setHost(host[0])
conn.setUser(conf['USER'])
@@ -637,50 +637,50 @@ def getTotalStatistics():
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print status()
print(status())
elif func == 'start':
print start()
print(start())
elif func == 'stop':
print stop()
print(stop())
elif func == 'restart':
print restart()
print(restart())
elif func == 'reload':
print reload()
print(reload())
elif func == 'initd_status':
print initdStatus()
print(initdStatus())
elif func == 'initd_install':
print initdInstall()
print(initdInstall())
elif func == 'initd_uninstall':
print initdUinstall()
print(initdUinstall())
elif func == 'run_log':
print runLog()
print(runLog())
elif func == 'post_receive_log':
print postReceiveLog()
print(postReceiveLog())
elif func == 'conf':
print getConf()
print(getConf())
elif func == 'init_conf':
print getInitdConf()
print(getInitdConf())
elif func == 'get_gogs_conf':
print getGogsConf()
print(getGogsConf())
elif func == 'submit_gogs_conf':
print submitGogsConf()
print(submitGogsConf())
elif func == 'user_list':
print userList()
print(userList())
elif func == 'user_project_list':
print userProjectList()
print(userProjectList())
elif func == 'project_script_edit':
print projectScriptEdit()
print(projectScriptEdit())
elif func == 'project_script_load':
print projectScriptLoad()
print(projectScriptLoad())
elif func == 'project_script_unload':
print projectScriptUnload()
print(projectScriptUnload())
elif func == 'project_script_debug':
print projectScriptDebug()
print(projectScriptDebug())
elif func == 'gogs_edit':
print gogsEdit()
print(gogsEdit())
elif func == 'get_rsa_public':
print getRsaPublic()
print(getRsaPublic())
elif func == 'get_total_statistics':
print getTotalStatistics()
print(getTotalStatistics())
else:
print 'fail'
print('fail')
+2 -2
View File
@@ -4,8 +4,8 @@
"name": "memcached",
"title": "Memcached",
"shell": "install.sh",
"versions":["1.5"],
"updates":["1.5.12"],
"versions":["1.6"],
"updates":["1.6.9"],
"tip": "soft",
"checks": "server/memcached",
"path":"server/memcached",
+2 -2
View File
@@ -16,7 +16,7 @@ Install_mem(){
echo '正在安装脚本文件...' > $install_tmp
if [ ! -f $serverPath/source/memcached.tar.gz ];then
wget -O $serverPath/source/memcached.tar.gz http://www.memcached.org/files/memcached-1.5.12.tar.gz
wget -O $serverPath/source/memcached.tar.gz http://www.memcached.org/files/memcached-1.6.9.tar.gz
fi
cd $serverPath/source && tar -zxvf memcached.tar.gz
@@ -25,7 +25,7 @@ Install_mem(){
cd $serverPath/source/memcached*
./configure --prefix=$serverPath/memcached && make && make install
echo '1.5' > $serverPath/memcached/version.pl
echo '1.6' > $serverPath/memcached/version.pl
echo 'install ok' > $install_tmp
}
@@ -7,7 +7,7 @@ import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")
class mysql:
class mysqlDb:
__DB_PASS = None
__DB_USER = 'root'
__DB_PORT = 3306
@@ -48,6 +48,9 @@ class mysql:
self.__DB_ERR = e
return False
def setDbConf(self, conf):
self.__DB_CNF = conf
def setPwd(self, pwd):
self.__DB_PASS = pwd
+32 -7
View File
@@ -1,18 +1,19 @@
[client]
user = root
#password = your_password
port = 3306
socket = /tmp/mysql.sock
socket = {$SERVER_APP_PATH}/mysql.sock
[mysqld]
# 5.6
#default-authentication-plugin=sha256_password
port = 3306
socket = /tmp/mysql.sock
socket = {$SERVER_APP_PATH}/mysql.sock
datadir = {$SERVER_APP_PATH}/data
log-error = {$SERVER_APP_PATH}/data/error.log
default_storage_engine = MyISAM
#skip-external-locking
#loose-skip-innodb
key_buffer_size = 8M
max_allowed_packet = 100G
max_allowed_packet = 100M
table_open_cache = 32
sort_buffer_size = 256K
net_buffer_length = 4K
@@ -20,15 +21,21 @@ read_buffer_size = 128K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 4M
thread_cache_size = 4
lower_case_table_names=2
query_cache_size = 4M
tmp_table_size = 8M
#skip-networking
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
#skip-networking
#skip-name-resolve
#skip-external-locking
#loose-skip-innodb
#skip-grant-tables
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
@@ -38,6 +45,24 @@ slow-query-log-file={$SERVER_APP_PATH}/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
relay-log=mdserver
relay-log-index=mdserver
#master
#binlog-do-db
binlog-ignore-db = test
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#slave
log-slave-updates
#replicate-do-db
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend
+92
View File
@@ -0,0 +1,92 @@
[client]
user = root
#password = your_password
port = 3306
socket = {$SERVER_APP_PATH}/mysql.sock
default-character-set = UTF8MB4
[mysqld]
port = 3306
socket = {$SERVER_APP_PATH}/mysql.sock
datadir = {$SERVER_APP_PATH}/data
log-error = {$SERVER_APP_PATH}/data/error.log
default_storage_engine = MyISAM
key_buffer_size = 8M
table_open_cache = 32
sort_buffer_size = 256K
net_buffer_length = 4K
read_buffer_size = 128K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 4M
thread_cache_size = 4
lower_case_table_names=2
tmp_table_size = 8M
character-set-server = UTF8MB4
max_connections = 500
max_connect_errors = 100
open_files_limit = 2560
max_allowed_packet = 128M
#skip-external-locking
#skip-grant-tables
#loose-skip-innodb
#skip-networking
#skip-name-resolve
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
slow_query_log=1
slow-query-log-file={$SERVER_APP_PATH}/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
relay-log=mdserver
relay-log-index=mdserver
#master
#binlog-do-db
binlog-ignore-db = test
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#slave
log-slave-updates
#replicate-do-db
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = {$SERVER_APP_PATH}/data
innodb_buffer_pool_size = 16M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1
innodb_file_per_table=1
binlog_expire_logs_seconds=2592000
[mysqldump]
quick
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
+11
View File
@@ -15,3 +15,14 @@ CREATE TABLE IF NOT EXISTS `databases` (
`ps` TEXT,
`addtime` TEXT
);
CREATE TABLE IF NOT EXISTS `master_replication_user` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`username` TEXT,
`password` TEXT,
`accept` TEXT,
`ps` TEXT,
`addtime` TEXT
);
+28 -23
View File
@@ -1,3 +1,28 @@
<div class="bt-form">
<div class='plugin_version'></div>
<div class="bt-w-main">
<div class="bt-w-menu">
<script type="text/javascript">console.log($('.plugin_version').attr('version'));</script>
<p class="bgw" onclick="pluginService('mysql', $('.plugin_version').attr('version'));">服务</p>
<p onclick="pluginInitD('mysql', $('.plugin_version').attr('version'));">自启动</p>
<p onclick="pluginConfig('mysql', $('.plugin_version').attr('version'));">配置文件</p>
<p onclick="myDbPos();">存储位置</p>
<p onclick="myPort();">端口</p>
<p onclick="runInfo();">当前状态</p>
<p onclick="myPerfOpt();">性能优化</p>
<p onclick="myLogs();">日志</p>
<p onclick="pluginLogs('mysql',$('.plugin_version').attr('version'),'show_log');">慢日志</p>
<p onclick="dbList()">管理列表</p>
<p onclick="masterOrSlaveConf($('.plugin_version').attr('version'))">主从配置</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<style type="text/css">
.db_list{
padding: 0px 0 10px 0;
@@ -25,29 +50,9 @@
margin-right: 0;
}
</style>
<div class="bt-form">
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('mysql');">服务</p>
<p onclick="pluginInitD('mysql');">自启动</p>
<p onclick="pluginConfig('mysql');">配置文件</p>
<p onclick="myDbPos();">存储位置</p>
<p onclick="myPort();">端口</p>
<p onclick="runInfo();">当前状态</p>
<p onclick="myPerfOpt();">性能优化</p>
<p onclick="myLogs();">日志</p>
<p onclick="pluginLogs('mysql','','show_log');">慢日志</p>
<p onclick="dbList()">管理列表</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<script type="text/javascript">
resetPluginWinWidth(800);
pluginService('mysql');
$.getScript( "/plugins/file?name=mysql&f=js/mysql.js");
$.getScript( "/plugins/file?name=mysql&f=js/mysql.js", function(){
pluginService('mysql',$('.plugin_version').attr('version'));
});
</script>
+883 -64
View File
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -4,9 +4,12 @@
"name":"mysql",
"type":"运行环境",
"ps":"一种关系数据库管理系统!",
"coexist": false,
"checks": "server/mysql/VERSION/bin/mysql",
"path": "server/mysql/VERSION",
"todo_versions":["5.6","5.7","8.0"],
"versions":["5.5", "5.6", "5.7"],
"updates":["5.5.62","5.6.46", "5.7.28"],
"versions":["5.5", "5.6", "5.7","8.0"],
"updates":["5.5.62","5.6.50", "5.7.32","8.0.22"],
"shell":"install.sh",
"checks":"server/mysql",
"path":"server/mysql",
+376
View File
@@ -0,0 +1,376 @@
#!/bin/sh
# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
# This file is public domain and comes with NO WARRANTY of any kind
# MySQL daemon start/stop script.
# Usually this is put in /etc/init.d (at least on machines SYSV R4 based
# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.
# When this is done the mysql server will be started when the machine is
# started and shut down when the systems goes down.
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: A very fast and reliable SQL database engine.
# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $local_fs $network $remote_fs
# Should-Start: ypbind nscd ldap ntpd xntpd
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop MySQL
# Description: MySQL is a very fast and reliable SQL database engine.
### END INIT INFO
# If you install MySQL on some other places than /Users/midoks/Desktop/fwww/server/mysql, then you
# have to do one of the following things for this script to work:
#
# - Run this script from within the MySQL installation directory
# - Create a /etc/my.cnf file with the following information:
# [mysqld]
# basedir=<path-to-mysql-installation-directory>
# - Add the above to any other configuration file (for example ~/.my.ini)
# and copy my_print_defaults to /usr/bin
# - Add the path to the mysql-installation-directory to the basedir variable
# below.
#
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.
basedir=
datadir=
# Default value, in seconds, afterwhich the script should timeout waiting
# for server start.
# Value here is overriden by value in my.cnf.
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900
# Lock directory for RedHat / SuSE.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"
# The following variables are only set for letting mysql.server find things.
# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/Users/midoks/Desktop/fwww/server/mysql
bindir=/Users/midoks/Desktop/fwww/server/mysql/bin
if test -z "$datadir"
then
datadir=/Users/midoks/Desktop/fwww/server/mysql/data
fi
sbindir=/Users/midoks/Desktop/fwww/server/mysql/bin
libexecdir=/Users/midoks/Desktop/fwww/server/mysql/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi
# datadir_set is used to determine if datadir was set (and so should be
# *not* set inside of the --basedir= handler.)
datadir_set=
#
# Use LSB init script functions for printing messages, if possible
#
lsb_functions="/lib/lsb/init-functions"
if test -f $lsb_functions ; then
. $lsb_functions
else
log_success_msg()
{
echo " SUCCESS! $@"
}
log_failure_msg()
{
echo " ERROR! $@"
}
fi
PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"
export PATH
mode=$1 # start or stop
[ $# -ge 1 ] && shift
other_args="$*" # uncommon, but needed when called from an RPM upgrade action
# Expected: "--skip-networking --skip-grant-tables"
# They are not checked here, intentionally, as it is the resposibility
# of the "spec" file author to give correct arguments only.
case `echo "testing\c"`,`echo -n testing` in
*c*,-n*) echo_n= echo_c= ;;
*c*,*) echo_n=-n echo_c= ;;
*) echo_n= echo_c='\c' ;;
esac
parse_server_arguments() {
for arg do
case "$arg" in
--basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
bindir="$basedir/bin"
if test -z "$datadir_set"; then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
;;
--datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
datadir_set=1
;;
--pid-file=*) mysqld_pid_file_path=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
--service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
esac
done
}
wait_for_pid () {
verb="$1" # created | removed
pid="$2" # process ID of the program operating on the pid-file
pid_file_path="$3" # path to the PID file.
i=0
avoid_race_condition="by checking again"
while test $i -ne $service_startup_timeout ; do
case "$verb" in
'created')
# wait for a PID-file to pop into existence.
test -s "$pid_file_path" && i='' && break
;;
'removed')
# wait for this PID-file to disappear
test ! -s "$pid_file_path" && i='' && break
;;
*)
echo "wait_for_pid () usage: wait_for_pid created|removed pid pid_file_path"
exit 1
;;
esac
# if server isn't running, then pid-file will never be updated
if test -n "$pid"; then
if kill -0 "$pid" 2>/dev/null; then
: # the server still runs
else
# The server may have exited between the last pid-file check and now.
if test -n "$avoid_race_condition"; then
avoid_race_condition=""
continue # Check again.
fi
# there's nothing that will affect the file.
log_failure_msg "The server quit without updating PID file ($pid_file_path)."
return 1 # not waiting any more.
fi
fi
echo $echo_n ".$echo_c"
i=`expr $i + 1`
sleep 1
done
if test -z "$i" ; then
log_success_msg
return 0
else
log_failure_msg
return 1
fi
}
# Get arguments from the my.cnf file,
# the only group, which is read from now on is [mysqld]
if test -x "$bindir/my_print_defaults"; then
print_defaults="$bindir/my_print_defaults"
else
# Try to find basedir in /etc/my.cnf
conf=/etc/my.cnf
print_defaults=
if test -r $conf
then
subpat='^[^=]*basedir[^=]*=\(.*\)$'
dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
for d in $dirs
do
d=`echo $d | sed -e 's/[ ]//g'`
if test -x "$d/bin/my_print_defaults"
then
print_defaults="$d/bin/my_print_defaults"
break
fi
done
fi
# Hope it's in the PATH ... but I doubt it
test -z "$print_defaults" && print_defaults="my_print_defaults"
fi
#
# Read defaults file from 'basedir'. If there is no defaults file there
# check if it's in the old (depricated) place (datadir) and read it from there
#
extra_args=""
if test -r "$basedir/my.cnf"
then
extra_args="-e $basedir/my.cnf"
fi
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
#
# Set pid file if not given
#
if test -z "$mysqld_pid_file_path"
then
mysqld_pid_file_path=$datadir/`hostname`.pid
else
case "$mysqld_pid_file_path" in
/* ) ;;
* ) mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;
esac
fi
case "$mode" in
'start')
# Start daemon
# Safeguard (relative paths, core dumps..)
cd $basedir
echo $echo_n "Starting MySQL"
if test -x $bindir/mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
# Make lock for RedHat / SuSE
if test -w "$lockdir"
then
touch "$lock_file_path"
fi
exit $return_value
else
log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
fi
;;
'stop')
# Stop daemon. We use a signal here to avoid having to know the
# root password.
if test -s "$mysqld_pid_file_path"
then
# signal mysqld_safe that it needs to stop
touch "$mysqld_pid_file_path.shutdown"
mysqld_pid=`cat "$mysqld_pid_file_path"`
if (kill -0 $mysqld_pid 2>/dev/null)
then
echo $echo_n "Shutting down MySQL"
kill $mysqld_pid
# mysqld should remove the pid file when it exits, so wait for it.
wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?
else
log_failure_msg "MySQL server process #$mysqld_pid is not running!"
rm "$mysqld_pid_file_path"
fi
# Delete lock for RedHat / SuSE
if test -f "$lock_file_path"
then
rm -f "$lock_file_path"
fi
exit $return_value
else
log_failure_msg "MySQL server PID file could not be found!"
fi
;;
'restart')
# Stop the service and regardless of whether it was
# running or not, start it again.
if $0 stop $other_args; then
$0 start $other_args
else
log_failure_msg "Failed to stop running server, so refusing to try to start."
exit 1
fi
;;
'reload'|'force-reload')
if test -s "$mysqld_pid_file_path" ; then
read mysqld_pid < "$mysqld_pid_file_path"
kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
touch "$mysqld_pid_file_path"
else
log_failure_msg "MySQL PID file could not be found!"
exit 1
fi
;;
'status')
# First, check to see if pid file exists
if test -s "$mysqld_pid_file_path" ; then
read mysqld_pid < "$mysqld_pid_file_path"
if kill -0 $mysqld_pid 2>/dev/null ; then
log_success_msg "MySQL running ($mysqld_pid)"
exit 0
else
log_failure_msg "MySQL is not running, but PID file exists"
exit 1
fi
else
# Try to find appropriate mysqld process
mysqld_pid=`pgrep -d' ' -f $libexecdir/mysqld`
# test if multiple pids exist
pid_count=`echo $mysqld_pid | wc -w`
if test $pid_count -gt 1 ; then
log_failure_msg "Multiple MySQL running but PID file could not be found ($mysqld_pid)"
exit 5
elif test -z $mysqld_pid ; then
if test -f "$lock_file_path" ; then
log_failure_msg "MySQL is not running, but lock file ($lock_file_path) exists"
exit 2
fi
log_failure_msg "MySQL is not running"
exit 3
else
log_failure_msg "MySQL is running but PID file could not be found"
exit 4
fi
fi
;;
*)
# usage
basename=`basename "$0"`
echo "Usage: $basename {start|stop|restart|reload|force-reload|status} [ MySQL server options ]"
exit 1
;;
esac
exit 0
+624 -3
View File
@@ -36,6 +36,26 @@ function myPost(method,args,callback, title){
},'json');
}
function myPostN(method,args,callback, title){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
var _title = '正在获取...';
if (typeof(title) != 'undefined'){
_title = title;
}
$.post('/plugins/run', {name:'mysql', func:method, args:_args}, function(data) {
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function myAsyncPost(method,args){
var _args = null;
if (typeof(args) == 'string'){
@@ -822,6 +842,86 @@ function openPhpmyadmin(name,username,password){
},200);
}
function delBackup(filename,name){
myPost('delete_db_backup',{filename:filename},function(){
layer.msg('执行成功!');
setTimeout(function(){
$('.layui-layer-close2').click();
setBackup(name);
},2000);
});
}
function downloadBackup(file){
window.open('/files/download?filename='+encodeURIComponent(file));
}
function importBackup(file,name){
myPost('import_db_backup',{file:file,name:name}, function(data){
// console.log(data);
layer.msg('执行成功!');
});
}
function setBackup(db_name,obj){
myPost('get_db_backup_list', {name:db_name}, function(data){
var rdata = $.parseJSON(data.data);
var tbody = '';
for (var i = 0; i < rdata.data.length; i++) {
tbody += '<tr>\
<td><span> ' + rdata.data[i]['name'] + '</span></td>\
<td><span> ' + rdata.data[i]['size'] + '</span></td>\
<td><span> ' + rdata.data[i]['time'] + '</span></td>\
<td style="text-align: right;">\
<a class="btlink" onclick="importBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">导入</a> | \
<a class="btlink" onclick="downloadBackup(\'' + rdata.data[i]['file'] + '\')">下载</a> | \
<a class="btlink" onclick="delBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">删除</a>\
</td>\
</tr> ';
}
var s = layer.open({
type: 1,
title: "数据库备份详情",
area: ['600px', '280px'],
closeBtn: 2,
shadeClose: false,
content: '<div class="pd15">\
<div class="db_list">\
<button id="btn_backup" class="btn btn-success btn-sm" type="button">备份</button>\
</div >\
<div class="divtable">\
<div id="database_fix" style="height:150px;overflow:auto;border:#ddd 1px solid">\
<table class="table table-hover "style="border:none">\
<thead>\
<tr>\
<th>文件名称</th>\
<th>文件大小</th>\
<th>备份时间</th>\
<th style="text-align: right;">操作</th>\
</tr>\
</thead>\
<tbody class="gztr">' + tbody + '</tbody>\
</table>\
</div>\
</div>\
</div>'
});
$('#btn_backup').click(function(){
myPost('set_db_backup',{name:db_name}, function(data){
layer.msg('执行成功!');
setTimeout(function(){
layer.close(s);
setBackup(db_name,obj);
},2000);
});
});
});
}
function dbList(page, search){
var _data = {};
@@ -847,10 +947,14 @@ function dbList(page, search){
'<span onclick="showHidePass(this)" class="glyphicon glyphicon-eye-open cursor pw-ico" style="margin-left:10px"></span>'+
'<span class="ico-copy cursor btcopy" style="margin-left:10px" title="复制密码" onclick="copyPass(\''+rdata.data[i]['password']+'\')"></span>'+
'</td>';
// list += '<td>备份</td>';
list += '<td><span class="c9 input-edit" onclick="setDbPs(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['name']+'\',this)" style="display: inline-block;">'+rdata.data[i]['ps']+'</span></td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="openPhpmyadmin(\''+rdata.data[i]['name']+'\',\''+rdata.data[i]['username']+'\',\''+rdata.data[i]['password']+'\')" title="数据库管理">管理</a> | ' +
list += '<td style="text-align:right">';
list += '<a href="javascript:;" class="btlink" class="btlink" onclick="setBackup(\''+rdata.data[i]['name']+'\',this)" title="数据库备份">'+(rdata.data[i]['is_backup']?'备份':'未备份') +'</a> | ';
list += '<a href="javascript:;" class="btlink" onclick="openPhpmyadmin(\''+rdata.data[i]['name']+'\',\''+rdata.data[i]['username']+'\',\''+rdata.data[i]['password']+'\')" title="数据库管理">管理</a> | ' +
'<a href="javascript:;" class="btlink" onclick="repTools(\''+rdata.data[i]['name']+'\')" title="MySQL优化修复工具">工具</a> | ' +
'<a href="javascript:;" class="btlink" onclick="setDbAccess(\''+rdata.data[i]['username']+'\')" title="设置数据库权限">权限</a> | ' +
'<a href="javascript:;" class="btlink" onclick="setDbPass('+rdata.data[i]['id']+',\''+ rdata.data[i]['username'] +'\',\'' + rdata.data[i]['password'] + '\')">改密</a> | ' +
@@ -864,6 +968,7 @@ function dbList(page, search){
<button onclick="addDatabase()" title="添加数据库" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">添加数据库</button>\
<button onclick="setRootPwd(0,\''+rdata.info['root_pwd']+'\')" title="设置MySQL管理员密码" class="btn btn-default btn-sm" type="button" style="margin-right: 5px;">root密码</button>\
<button onclick="openPhpmyadmin(\'\',\'root\',\''+rdata.info['root_pwd']+'\')" title="打开phpMyadmin" class="btn btn-default btn-sm" type="button" style="margin-right: 5px;">phpMyAdmin</button>\
<button onclick="setDbAccess(\'root\')" title="ROOT权限" class="btn btn-default btn-sm" type="button" style="margin-right: 5px;">ROOT权限</button>\
<span style="float:right"> \
<button batch="true" style="float: right;display: none;margin-left:10px;" onclick="delDbBatch();" title="删除选中项" class="btn btn-default btn-sm">删除选中</button>\
</span>\
@@ -1099,3 +1204,519 @@ function repTools(db_name, res){
tableFixed('database_fix');
});
}
function setDbMaster(name){
myPost('set_db_master', {name:name}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
masterOrSlaveConf();
}, 2000);
});
}
function setDbSlave(name){
myPost('set_db_slave', {name:name}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
masterOrSlaveConf();
}, 2000);
});
}
function addMasterRepSlaveUser(){
var index = layer.open({
type: 1,
skin: 'demo-class',
area: '500px',
title: '添加同步账户',
closeBtn: 1,
shift: 5,
shadeClose: true,
content: "<form class='bt-form pd20 pb70' id='add_master'>\
<div class='line'><span class='tname'>用户名</span><div class='info-r'><input name='username' class='bt-input-text mr5' placeholder='用户名' type='text' style='width:330px;' value='"+(randomStrPwd(6))+"'></div></div>\
<div class='line'>\
<span class='tname'>密码</span>\
<div class='info-r'><input class='bt-input-text mr5' type='text' name='password' id='MyPassword' style='width:330px' value='"+(randomStrPwd(16))+"' /><span title='随机密码' class='glyphicon glyphicon-repeat cursor' onclick='repeatPwd(16)'></span></div>\
</div>\
<input type='hidden' name='ps' value='' />\
<div class='bt-form-submit-btn'>\
<button id='my_mod_close' type='button' class='btn btn-danger btn-sm btn-title'>关闭</button>\
<button type='button' class='btn btn-success btn-sm btn-title' id='submit_add_master' >提交</button>\
</div>\
</form>",
});
// <div class='line'>\
// <span class='tname'>访问权限</span>\
// <div class='info-r '>\
// <select class='bt-input-text mr5' name='dataAccess' style='width:100px'>\
// <option value='127.0.0.1'>本地服务器</option>\
// <option value=\"%\">所有人</option>\
// <option value='ip'>指定IP</option>\
// </select>\
// </div>\
// </div>\
$("input[name='name']").keyup(function(){
var v = $(this).val();
$("input[name='db_user']").val(v);
$("input[name='ps']").val(v);
});
$('#my_mod_close').click(function(){
$('.layui-layer-close1').click();
});
$('select[name="dataAccess"]').change(function(){
var v = $(this).val();
if (v == 'ip'){
$(this).after("<input id='dataAccess_subid' class='bt-input-text mr5' type='text' name='address' placeholder='多个IP使用逗号(,)分隔' style='width: 230px; display: inline-block;'>");
} else {
$('#dataAccess_subid').remove();
}
});
$('#submit_add_master').click(function(){
var data = $("#add_master").serialize();
data = decodeURIComponent(data);
var dataObj = str2Obj(data);
if(!dataObj['address']){
dataObj['address'] = dataObj['dataAccess'];
}
// console.log(dataObj);
myPost('add_master_rep_slave_user', dataObj, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
if (rdata.status){
getMasterRepSlaveList();
}
$('.layui-layer-close1').click();
},{icon: rdata.status ? 1 : 2},600);
});
});
}
function updateMasterRepSlaveUser(username){
var index = layer.open({
type: 1,
skin: 'demo-class',
area: '500px',
title: '更新账户',
closeBtn: 1,
shift: 5,
shadeClose: true,
content: "<form class='bt-form pd20 pb70' id='update_master'>\
<div class='line'><span class='tname'>用户名</span><div class='info-r'><input name='username' readonly='readonly' class='bt-input-text mr5' placeholder='用户名' type='text' style='width:330px;' value='"+username+"'></div></div>\
<div class='line'>\
<span class='tname'>密码</span>\
<div class='info-r'><input class='bt-input-text mr5' type='text' name='password' id='MyPassword' style='width:330px' value='"+(randomStrPwd(16))+"' /><span title='随机密码' class='glyphicon glyphicon-repeat cursor' onclick='repeatPwd(16)'></span></div>\
</div>\
<input type='hidden' name='ps' value='' />\
<div class='bt-form-submit-btn'>\
<button type='button' class='btn btn-success btn-sm btn-title' id='submit_update_master' >提交</button>\
</div>\
</form>",
});
$('#submit_update_master').click(function(){
var data = $("#update_master").serialize();
data = decodeURIComponent(data);
var dataObj = str2Obj(data);
// console.log(dataObj);
myPost('update_master_rep_slave_user', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
if (rdata.status){
getMasterRepSlaveList();
}
$('.layui-layer-close1').click();
},{icon: rdata.status ? 1 : 2},600);
});
});
}
function getMasterRepSlaveUserCmd(username, db=''){
myPost('get_master_rep_slave_user_cmd', {username:username,db:db}, function(data){
var rdata = $.parseJSON(data.data);
if (!rdata['status']){
layer.msg(rdata['msg']);
return;
}
var loadOpen = layer.open({
type: 1,
title: '同步命令',
area: '500px',
content:"<form class='bt-form pd20 pb70' id='add_master'>\
<div class='line'>"+rdata.data+"</div>\
<div class='bt-form-submit-btn'>\
<button type='button' class='btn btn-success btn-sm btn-title class-copy-cmd'>复制</button>\
</div>\
</form>",
});
copyPass(rdata.data);
$('.class-copy-cmd').click(function(){
copyPass(rdata.data);
});
});
}
function delMasterRepSlaveUser(username){
myPost('del_master_rep_slave_user', {username:username}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg);
$('.layui-layer-close1').click();
setTimeout(function(){
getMasterRepSlaveList();
},1000);
});
}
function getMasterRepSlaveList(){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
myPost('get_master_rep_slave_list', _data, function(data){
// console.log(data);
var rdata = [];
try {
rdata = $.parseJSON(data.data);
} catch(e){
console.log(e);
}
var list = '';
// console.log(rdata['data']);
var user_list = rdata['data'];
for (i in user_list) {
// console.log(i);
var name = user_list[i]['username'];
list += '<tr><td>'+name+'</td>\
<td>'+user_list[i]['password']+'</td>\
<td>\
<a class="btlink" onclick="updateMasterRepSlaveUser(\''+name+'\');">修改</a> | \
<a class="btlink" onclick="delMasterRepSlaveUser(\''+name+'\');">删除</a> | \
<a class="btlink" onclick="getMasterRepSlaveUserCmd(\''+name+'\');">从库同步命令</a>\
</td>\
</tr>';
}
var page = '<div class="dataTables_paginate_4 dataTables_paginate paging_bootstrap page" style="margin-top:0px;"></div>';
page += '<div class="table_toolbar"><span class="sync btn btn-default btn-sm" onclick="addMasterRepSlaveUser()" title="">添加同步账户</span></div>';
var loadOpen = layer.open({
type: 1,
title: '同步账户列表',
area: '500px',
content:"<div class='bt-form pd20 c6'>\
<div class='divtable mtb10'>\
<div><table class='table table-hover'>\
<thead><tr><th>用户民</th><th>密码</th><th>操作</th></tr></thead>\
<tbody>" + list + "</tbody>\
</table></div>\
"+page +"\
</div>\
</div>"
});
$('.dataTables_paginate_4').html(rdata['page']);
});
}
function deleteSlave(){
myPost('delete_slave', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata['msg']);
setTimeout(function(){
masterOrSlaveConf();
}, 3000);
});
}
function getFullSyncStatus(db){
var btn = '<div class="table_toolbar"><span class="sync btn btn-default btn-sm" id="begin_full_sync" title="">开始</span></div>';
var loadOpen = layer.open({
type: 1,
title: '全量同步['+db+']',
area: '500px',
content:"<div class='bt-form pd20 c6'>\
<div class='divtable mtb10'>\
<span id='full_msg'></span>\
<div class='progress'>\
<div class='progress-bar' role='progressbar' aria-valuenow='0' aria-valuemin='0' aria-valuemax='100' style='min-width: 2em;'>0%</div>\
</div>\
</div>\
"+btn+"\
</div>"
});
var timeId = setInterval(function(){
fullSync(db,0);
}, 1000);
function fullSync(db,begin){
myPostN('full_sync', {db:db,begin:begin}, function(data){
var rdata = $.parseJSON(data.data);
$('#full_msg').text(rdata['msg']);
$('.progress-bar').css('width',rdata['progress']+'%');
$('.progress-bar').text(rdata['progress']+'%');
if (rdata['code']==6 ||rdata['code']<0){
layer.msg(rdata['msg']);
clearInterval(timeId);
}
});
}
fullSync(db,0);
$('#begin_full_sync').click(function(){
fullSync(db,1);
timeId= setTimeout(function(){
fullSync(db,0);
}, 1000);
});
$('.layui-layer-close1').click(function(){
clearInterval(timeId);
});
}
function handlerRun(){
cmd = 'cd /www/server/mdserver-web && python /www/server/mdserver-web/plugins/mysql/index.py do_full_sync {"db":"all"}';
var loadOpen = layer.open({
type: 1,
title: '手动执行',
area: '500px',
content:"<form class='bt-form pd20 pb70' id='add_master'>\
<div class='line'>"+cmd+"</div>\
<div class='bt-form-submit-btn'>\
<button type='button' class='btn btn-success btn-sm btn-title class-copy-cmd'>复制</button>\
</div>\
</form>",
});
copyPass(cmd);
$('.class-copy-cmd').click(function(){
copyPass(cmd);
});
}
function masterOrSlaveConf(version=''){
function getMasterDbList(){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
myPost('get_masterdb_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td>' + (rdata.data[i]['master']?'是':'否') +'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="setDbMaster(\''+rdata.data[i]['name']+'\')" title="加入或退出">'+(rdata.data[i]['master']?'退出':'加入')+'</a> | ' +
'<a href="javascript:;" class="btlink" onclick="getMasterRepSlaveUserCmd(\'\',\''+rdata.data[i]['name']+'\')" title="同步命令">同步命令</a>' +
'</td>';
list += '</tr>';
}
var con = '<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>数据库名</th>\
<th>同步</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
'+ list +'\
</tbody></table>\
</div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
<div class="table_toolbar">\
<span class="sync btn btn-default btn-sm" onclick="getMasterRepSlaveList()" title="">同步账户列表</span>\
</div>\
</div>';
$(".table_master_list").html(con);
$('#databasePage').html(rdata.page);
});
}
function getAsyncMasterDbList(){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
myPost('get_slave_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list += '<td>' + rdata.data[i]['Master_Host'] +'</td>';
list += '<td>' + rdata.data[i]['Master_Port'] +'</td>';
list += '<td>' + rdata.data[i]['Master_User'] +'</td>';
list += '<td>' + rdata.data[i]['Master_Log_File'] +'</td>';
list += '<td>' + rdata.data[i]['Slave_IO_Running'] +'</td>';
list += '<td>' + rdata.data[i]['Slave_SQL_Running'] +'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="deleteSlave()" title="删除">删除</a>' +
'</td>';
list += '</tr>';
}
var con = '<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>主[服务]</th>\
<th>端口</th>\
<th>用户</th>\
<th>日志</th>\
<th>IO</th>\
<th>SQL</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
'+ list +'\
</tbody></table>\
</div>\
</div>';
// <div id="databasePage_slave" class="dataTables_paginate paging_bootstrap page"></div>\
// <div class="table_toolbar">\
// <span class="sync btn btn-default btn-sm" onclick="getMasterRepSlaveList()" title="">添加</span>\
// </div>
$(".table_slave_status_list").html(con);
});
}
function getAsyncDataList(){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
myPost('get_masterdb_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="setDbSlave(\''+rdata.data[i]['name']+'\')" title="加入|退出">'+(rdata.data[i]['slave']?'退出':'加入')+'</a> | ' +
'<a href="javascript:;" class="btlink" onclick="getFullSyncStatus(\''+rdata.data[i]['name']+'\')" title="修复">修复</a>' +
'</td>';
list += '</tr>';
}
var con = '<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>本地库名</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
'+ list +'\
</tbody></table>\
</div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
<div class="table_toolbar">\
<span class="sync btn btn-default btn-sm" onclick="handlerRun()" title="免登录设置后,需要手动执行一下!">手动命令</span>\
<span class="sync btn btn-default btn-sm" onclick="getFullSyncStatus(\'ALL\')" title="全量同步">全量同步</span>\
</div>\
</div>';
$(".table_slave_list").html(con);
$('#databasePage').html(rdata.page);
});
}
function getMasterStatus(){
myPost('get_master_status', '', function(data){
var rdata = $.parseJSON(data.data);
var limitCon = '<p class="conf_p">\
<span class="f14 c6 mr20">Master[主]配置</span><span class="f14 c6 mr20"></span>\
<button class="btn '+(!rdata.status ? 'btn-danger' : 'btn-success')+' btn-xs btn-master va0">'+(!rdata.status ? '未开启' : '已开启') +'</button><hr/>\
</p>\
<!-- master list -->\
<div class="safe bgw table_master_list"></div>\
<hr/>\
<p class="conf_p">\
<span class="f14 c6 mr20">Slave[从]配置</span><span class="f14 c6 mr20"></span>\
<button class="btn '+(!rdata.data.slave_status ? 'btn-danger' : 'btn-success')+' btn-xs btn-slave va0">'+(!rdata.data.slave_status ? '未启动' : '已启动') +'</button><hr/>\
</p>\
<!-- slave status list -->\
<div class="safe bgw table_slave_status_list"></div>\
<!-- slave list -->\
<div class="safe bgw table_slave_list"></div>\
';
$(".soft-man-con").html(limitCon);
//设置主服务器配置
$(".btn-master").click(function () {
myPost('set_master_status', 'close=change', function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
getMasterStatus();
}, 3000);
});
});
$(".btn-slave").click(function () {
myPost('set_slave_status', 'close=change', function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
getMasterStatus();
}, 3000);
});
});
if (rdata.status){
getMasterDbList();
}
if (rdata.data.slave_status){
getAsyncMasterDbList();
getAsyncDataList()
}
});
}
getMasterStatus();
}
+7 -6
View File
@@ -9,7 +9,7 @@ curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
mysqlDir=${serverPath}/source/mysql
@@ -19,11 +19,12 @@ Install_mysql()
mkdir -p ${mysqlDir}
echo '正在安装脚本文件...' > $install_tmp
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
groupadd mysql
useradd -g mysql mysql
if [ "$sysName" != "Darwin" ];then
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
groupadd mysql
useradd -g mysql mysql
fi
if [ ! -f ${mysqlDir}/mysql-5.5.62.tar.gz ];then
wget -O ${mysqlDir}/mysql-5.5.62.tar.gz https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
+13 -10
View File
@@ -11,6 +11,7 @@ curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
@@ -21,23 +22,25 @@ Install_mysql()
mkdir -p ${mysqlDir}
echo '正在安装脚本文件...' > $install_tmp
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
if [ "$sysName" != "Darwin" ];then
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
groupadd mysql
useradd -g mysql mysql
fi
groupadd mysql
useradd -g mysql mysql
if [ ! -f ${mysqlDir}/mysql-5.6.46.tar.gz ];then
wget -O ${mysqlDir}/mysql-5.6.46.tar.gz https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.46.tar.gz
if [ ! -f ${mysqlDir}/mysql-5.6.50.tar.gz ];then
wget -O ${mysqlDir}/mysql-5.6.50.tar.gz https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.50.tar.gz
fi
if [ ! -d ${mysqlDir}/mysql-5.6.46 ];then
cd ${mysqlDir} && tar -zxvf ${mysqlDir}/mysql-5.6.46.tar.gz
if [ ! -d ${mysqlDir}/mysql-5.6.50 ];then
cd ${mysqlDir} && tar -zxvf ${mysqlDir}/mysql-5.6.50.tar.gz
fi
if [ ! -d $serverPath/mysql ];then
cd ${mysqlDir}/mysql-5.6.46 && cmake \
cd ${mysqlDir}/mysql-5.6.50 && cmake \
-DCMAKE_INSTALL_PREFIX=$serverPath/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
+12 -11
View File
@@ -11,7 +11,7 @@ curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
# sysName=`uname`
sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
@@ -22,22 +22,23 @@ Install_mysql()
mkdir -p ${mysqlDir}
echo '正在安装脚本文件...' > $install_tmp
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
if [ "$sysName" != "Darwin" ];then
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
groupadd mysql
useradd -g mysql mysql
fi
groupadd mysql
useradd -g mysql mysql
if [ ! -f ${mysqlDir}/mysql-boost-5.7.28.tar.gz ];then
wget -O ${mysqlDir}/mysql-boost-5.7.28.tar.gz https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz
if [ ! -f ${mysqlDir}/mysql-boost-5.7.32.tar.gz ];then
wget -O ${mysqlDir}/mysql-boost-5.7.32.tar.gz https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.32.tar.gz
fi
if [ ! -d ${mysqlDir}/mysql-5.7.28 ];then
cd ${mysqlDir} && tar -zxvf ${mysqlDir}/mysql-boost-5.7.28.tar.gz
if [ ! -d ${mysqlDir}/mysql-5.7.32 ];then
cd ${mysqlDir} && tar -zxvf ${mysqlDir}/mysql-boost-5.7.32.tar.gz
fi
if [ ! -d $serverPath/mysql ];then
cd ${mysqlDir}/mysql-5.7.28 && cmake \
cd ${mysqlDir}/mysql-5.7.32 && cmake \
-DCMAKE_INSTALL_PREFIX=$serverPath/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
+78
View File
@@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#https://dev.mysql.com/downloads/mysql/5.7.html
#https://dev.mysql.com/downloads/file/?id=489855
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
mysqlDir=${serverPath}/source/mysql
Install_mysql()
{
mkdir -p ${mysqlDir}
echo '正在安装脚本文件...' > $install_tmp
INSTALL_CMD=cmake
if [ "$sysName" != "Darwin" ];then
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
groupadd mysql
useradd -g mysql mysql
yum install -y cmake3
INSTALL_CMD=cmake3
fi
if [ ! -f ${mysqlDir}/mysql-boost-8.0.22.tar.gz ];then
wget -O ${mysqlDir}/mysql-boost-8.0.22.tar.gz https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-8.0.22.tar.gz
fi
if [ ! -d ${mysqlDir}/mysql-8.0.22 ];then
cd ${mysqlDir} && tar -zxvf ${mysqlDir}/mysql-boost-8.0.22.tar.gz
fi
if [ ! -d $serverPath/mysql ];then
cd ${mysqlDir}/mysql-8.0.22 && ${INSTALL_CMD} \
-DCMAKE_INSTALL_PREFIX=$serverPath/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/var/tmp/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_BOOST=${mysqlDir}/mysql-8.0.22/boost/
make && make install && make clean
echo '8.0' > $serverPath/mysql/version.pl
echo '安装完成' > $install_tmp
fi
}
Uninstall_mysql()
{
rm -rf $serverPath/mysql
echo '卸载完成' > $install_tmp
}
action=$1
if [ "${1}" == 'install' ];then
Install_mysql
else
Uninstall_mysql
fi
+1 -1
View File
@@ -1,7 +1,7 @@
lua_shared_dict limit 30m;
lua_shared_dict drop_ip 30m;
lua_shared_dict drop_sum 30m;
lua_package_path "{$WAF_PATH}/lua/?.lua";
lua_package_path "{$WAF_PATH}/lua/?.lua;{$ROOT_PATH}/openresty/lualib/?.lua;;";
access_by_lua_file {$WAF_PATH}/lua/init.lua;
#init_by_lua_file {$WAF_PATH}/lua/init.lua;
+13 -13
View File
@@ -172,10 +172,6 @@ def initTotalInfo():
def status():
initDomainInfo()
initSiteInfo()
initTotalInfo()
path = getConf()
if not os.path.exists(path):
return 'stop'
@@ -199,19 +195,19 @@ def contentReplace(content):
def initDreplace():
config = getPluginDir() + '/waf/config.json'
content = mw.readFile(config)
content = json.loads(content)
content['reqfile_path'] = mw.getServerDir(
) + "/openresty/nginx/conf/waf/html"
mw.writeFile(config, mw.getJson(content))
path = mw.getServerDir() + "/openresty/nginx/conf"
if not os.path.exists(path + '/waf'):
sdir = getPluginDir() + '/waf'
cmd = 'cp -rf ' + sdir + ' ' + path
mw.execShell(cmd)
config = mw.getServerDir() + '/openresty/nginx/conf/waf/config.json'
content = mw.readFile(config)
content = json.loads(content)
content['reqfile_path'] = mw.getServerDir(
) + "/openresty/nginx/conf/waf/html"
mw.writeFile(config, mw.getJson(content))
config = mw.getServerDir() + "/openresty/nginx/conf/waf/lua/init.lua"
content = mw.readFile(config)
content = contentReplace(content)
@@ -223,6 +219,10 @@ def initDreplace():
content = contentReplace(content)
mw.writeFile(waf_conf, content)
initDomainInfo()
initSiteInfo()
initTotalInfo()
def start():
initDreplace()
@@ -669,7 +669,7 @@ def setCcConf():
def setSiteCcConf():
return mw.returnJson(True, '设置成功-?!', [])
return mw.returnJson(False, '暂未开发!', [])
def saveScanRule():
@@ -986,4 +986,4 @@ if __name__ == "__main__":
elif func == 'waf_site':
print getWafSite()
else:
print 'error'
print('error')
+1 -1
View File
@@ -1,5 +1,5 @@
{
"title":"OP防火墙[DEV]",
"title":"OP防火墙",
"tip":"soft",
"name":"op_waf",
"type":"其他插件",
+1 -1
View File
@@ -1 +1 @@
{"reqfile_path":"/Users/midoks/Desktop/fwww/server/openresty/nginx/conf/waf/html","retry":{"retry_time":180,"is_open_global":0,"retry":6,"retry_cycle":60},"log":true,"scan":{"status":444,"ps":"过滤常见扫描测试工具的渗透测试","open":true,"reqfile":""},"cc":{"status":444,"ps":"过虑CC攻击","limit":120,"endtime":300,"open":true,"reqfile":"","cycle":60},"get":{"status":403,"ps":"过滤uri、uri参数中常见sql注入、xss等攻击","open":true,"reqfile":"get.html"},"log_save":30,"user-agent":{"status":403,"ps":"通常用于过滤浏览器、蜘蛛及一些自动扫描器","open":true,"reqfile":"user_agent.html"},"other":{"status":403,"ps":"其它非通用过滤","reqfile":"other.html"},"cookie":{"status":403,"ps":"过滤利用Cookie发起的渗透攻击","open":true,"reqfile":"cookie.html"},"logs_path":"/www/wwwlogs/btwaf","post":{"status":403,"ps":"过滤POST参数中常见sql注入、xss等攻击","open":true,"reqfile":"post.html"},"open":true}
{"reqfile_path": "{$WAF_PATH}/html", "retry": {"retry_time": 180, "is_open_global": 0, "retry": 6, "retry_cycle": 60}, "log": true, "scan": {"status": 444, "ps": "\u8fc7\u6ee4\u5e38\u89c1\u626b\u63cf\u6d4b\u8bd5\u5de5\u5177\u7684\u6e17\u900f\u6d4b\u8bd5", "open": true, "reqfile": ""}, "cc": {"status": 444, "ps": "\u8fc7\u8651CC\u653b\u51fb", "limit": 120, "endtime": 300, "open": true, "reqfile": "", "cycle": 60}, "get": {"status": 403, "ps": "\u8fc7\u6ee4uri\u3001uri\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "get.html"}, "log_save": 30, "user-agent": {"status": 403, "ps": "\u901a\u5e38\u7528\u4e8e\u8fc7\u6ee4\u6d4f\u89c8\u5668\u3001\u8718\u86db\u53ca\u4e00\u4e9b\u81ea\u52a8\u626b\u63cf\u5668", "open": true, "reqfile": "user_agent.html"}, "other": {"status": 403, "ps": "\u5176\u5b83\u975e\u901a\u7528\u8fc7\u6ee4", "reqfile": "other.html"}, "cookie": {"status": 403, "ps": "\u8fc7\u6ee4\u5229\u7528Cookie\u53d1\u8d77\u7684\u6e17\u900f\u653b\u51fb", "open": true, "reqfile": "cookie.html"}, "logs_path": "/www/wwwlogs/btwaf", "post": {"status": 403, "ps": "\u8fc7\u6ee4POST\u53c2\u6570\u4e2d\u5e38\u89c1sql\u6ce8\u5165\u3001xss\u7b49\u653b\u51fb", "open": true, "reqfile": "post.html"}, "open": true}
+3 -3
View File
@@ -1,7 +1,7 @@
local cpath = "/Users/midoks/Desktop/fwww/server/openresty/nginx/conf/waf/"
local rpath = "/Users/midoks/Desktop/fwww/server/openresty/nginx/conf/waf/rule/"
local logdir = "/Users/midoks/Desktop/fwww/wwwlogs/waf/"
local cpath = "{$WAF_PATH}/"
local rpath = "{$WAF_PATH}/rule/"
local logdir = "{$ROOT_PATH}/wwwlogs/waf/"
local json = require "cjson"
local ngx_match = ngx.re.find
+13 -13
View File
@@ -282,28 +282,28 @@ def errorLogPath():
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print status()
print(status())
elif func == 'start':
print start()
print(start())
elif func == 'stop':
print stop()
print(stop())
elif func == 'restart':
print restart()
print(restart())
elif func == 'reload':
print reload()
print(reload())
elif func == 'initd_status':
print initdStatus()
print(initdStatus())
elif func == 'initd_install':
print initdInstall()
print(initdInstall())
elif func == 'initd_uninstall':
print initdUinstall()
print(initdUinstall())
elif func == 'conf':
print getConf()
print(getConf())
elif func == 'get_os':
print getOs()
print(getOs())
elif func == 'run_info':
print runInfo()
print(runInfo())
elif func == 'error_log':
print errorLogPath()
print(errorLogPath())
else:
print 'error'
print('error')
+2 -2
View File
@@ -11,6 +11,6 @@
"home":"http://openresty.org",
"date":"2017-11-24",
"pid": "1",
"versions": ["1.11.2.5", "1.13.6.2","1.15.8.3"],
"updates": ["1.11.2.5", "1.13.6.2","1.15.8.3 "]
"versions": ["1.11.2.5", "1.13.6.2","1.15.8.3","1.19.3.1"],
"updates": ["1.11.2.5", "1.13.6.2","1.15.8.3","1.19.3.1"]
}
+3 -1
View File
@@ -20,7 +20,8 @@ if id www &> /dev/null ;then
echo "www Shell is `grep "^www:" /etc/passwd |cut -d':' -f7 `"
else
groupadd www
useradd -g www -s /sbin/nologin www
# useradd -g www -s /sbin/nologin www
useradd -g www -s /bin/bash www
fi
Install_openresty()
@@ -39,6 +40,7 @@ Install_openresty()
cd ${openrestyDir}/openresty-${VERSION} && ./configure --prefix=$serverPath/openresty \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_slice_module \
--with-http_stub_status_module && make && make install && \
echo "${VERSION}" > $serverPath/openresty/version.pl
+156
View File
@@ -0,0 +1,156 @@
<?xml version="1.0" ?>
<configuration>
All relative paths in this config are relative to php's install prefix
<section name="global_options">
Pid file
<value name="pid_file">/www/server/php/52/logs/php-fpm.pid</value>
Error log file
<value name="error_log">/www/server/php/52/logs/php-fpm.log</value>
Log level
<value name="log_level">notice</value>
When this amount of php processes exited with SIGSEGV or SIGBUS ...
<value name="emergency_restart_threshold">10</value>
... in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator's shared memory.
<value name="emergency_restart_interval">1m</value>
Time limit on waiting child's reaction on signals from master
<value name="process_control_timeout">5s</value>
Set to 'no' to debug fpm
<value name="daemonize">yes</value>
</section>
<workers>
<section name="pool">
Name of pool. Used in logs and stats.
<value name="name">default</value>
Address to accept fastcgi requests on.
Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
<value name="listen_address">/tmp/php-cgi-52.sock</value>
<value name="listen_options">
Set listen(2) backlog
<value name="backlog">-1</value>
Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.
<value name="owner">www</value>
<value name="group">www</value>
<value name="mode">0666</value>
</value>
Additional php.ini defines, specific to this pool of workers.
<value name="php_defines">
<!-- <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> -->
<!-- <value name="display_errors">0</value> -->
</value>
Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>
Process manager settings
<value name="pm">
Sets style of controling worker process count.
Valid values are 'static' and 'apache-like'
<value name="style">static</value>
Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
<value name="max_children">5</value>
Settings group for 'apache-like' pm style
<value name="apache_like">
Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">20</value>
Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">5</value>
Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">35</value>
</value>
</value>
The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when 'max_execution_time' ini option does not stop script execution for some reason
'0s' means 'off'
<value name="request_terminate_timeout">0s</value>
The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
'0s' means 'off'
<value name="request_slowlog_timeout">0s</value>
The log file for slow requests
<value name="slowlog">logs/slow.log</value>
Set open file desc rlimit
<value name="rlimit_files">1024</value>
Set max core size rlimit
<value name="rlimit_core">0</value>
Chroot to this directory at the start, absolute path
<value name="chroot"></value>
Chdir to this directory at the start, absolute path
<value name="chdir"></value>
Redirect workers' stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
<value name="catch_workers_output">yes</value>
How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
<value name="max_requests">500</value>
Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
Makes sense only with AF_INET listening socket.
<value name="allowed_clients">127.0.0.1</value>
Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment
<value name="environment">
<value name="HOSTNAME">$HOSTNAME</value>
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
<value name="TMP">/tmp</value>
<value name="TMPDIR">/tmp</value>
<value name="TEMP">/tmp</value>
<value name="OSTYPE">$OSTYPE</value>
<value name="MACHTYPE">$MACHTYPE</value>
<value name="MALLOC_CHECK_">2</value>
</value>
</section>
</workers>
</configuration>
+1 -1
View File
@@ -38,7 +38,7 @@ always_populate_raw_post_data=-1
file_uploads = On
upload_tmp_dir = "/tmp"
upload_tmp_dir = "/tmp/upload"
upload_max_filesize = 2M
max_file_uploads = 20
+20 -2
View File
@@ -113,7 +113,7 @@ def contentReplace(content, version):
def makeOpenrestyConf():
phpversions = ['00', '53', '54', '55', '56',
phpversions = ['00', '52', '53', '54', '55', '56',
'70', '71', '72', '73', '74', '80']
if mw.isInstalledWeb():
sdir = mw.getServerDir()
@@ -164,6 +164,11 @@ def phpFpmReplace(version):
content = mw.readFile(tpl_php_fpm)
content = contentReplace(content, version)
mw.writeFile(desc_php_fpm, content)
else:
if version == '52':
tpl_php_fpm = tpl_php_fpm = getPluginDir() + '/conf/php-fpm-52.conf'
content = mw.readFile(tpl_php_fpm)
mw.writeFile(desc_php_fpm, content)
def phpFpmWwwReplace(version):
@@ -184,7 +189,11 @@ def makePhpIni(version):
d_ini = mw.getServerDir() + '/php/' + version + '/etc/php.ini'
if not os.path.exists(d_ini):
s_ini = getPluginDir() + '/conf/php' + version[0:1] + '.ini'
shutil.copyfile(s_ini, d_ini)
# shutil.copyfile(s_ini, d_ini)
content = mw.readFile(s_ini)
if version == '52':
content = content + "auto_prepend_file=/www/server/php/app_start.php"
mw.writeFile(d_ini, content)
def initReplace(version):
@@ -199,6 +208,9 @@ def initReplace(version):
if not os.path.exists(file_bin):
file_tpl = getPluginDir() + '/init.d/php.tpl'
if version == '52':
file_tpl = getPluginDir() + '/init.d/php52.tpl'
content = mw.readFile(file_tpl)
content = contentReplace(content, version)
@@ -214,6 +226,12 @@ def initReplace(version):
os.mkdir(session_path)
if not mw.isAppleSystem():
mw.execShell('chown -R www:www ' + session_path)
upload_path = '/tmp/upload'
if not os.path.exists(upload_path):
os.mkdir(upload_path)
if not mw.isAppleSystem():
mw.execShell('chown -R www:www ' + upload_path)
return file_bin
+2 -2
View File
@@ -5,8 +5,8 @@
"name": "php",
"title": "PHP",
"coexist": true,
"versions": ["53","54","55","56","70","71","72","73","74","80"],
"updates": ["5.3.17","5.4.45","5.6.36","7.0.30","7.1.33","7.2.32","7.3.20","7.4.8","8.0.0"],
"versions": ["52","53","54","55","56","70","71","72","73","74","80"],
"updates": ["5.2.17","5.3.29","5.4.45","5.6.36","7.0.30","7.1.33","7.2.32","7.3.20","7.4.8","8.0.0"],
"tip": "soft",
"checks": "server/php/VERSION/bin/php",
"path": "server/php/VERSION",
+139
View File
@@ -0,0 +1,139 @@
#! /bin/sh
php_fpm_BIN=/www/server/php/52/bin/php-cgi
php_fpm_CONF=/www/server/php/52/etc/php-fpm.conf
php_fpm_PID=/www/server/php/52/logs/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php_fpm "
$php_fpm_BIN --fpm $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Shutting down php_fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
quit)
echo -n "Gracefully shutting down php_fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
logrotate)
echo -n "Re-opening php-fpm log file "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR1 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|quit|restart|reload|logrotate}"
exit 1
;;
esac
+110
View File
@@ -0,0 +1,110 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# php 5.2.17 + eaccelerator 0.9.5.3
# php 5.3.24 + eaccelerator 0.9.6.1
# php 5.4.14 + eaccelerator 1.0 dev
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=eaccelerator
LIBV=0.9.6
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -d $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tar.gz https://github.com/eaccelerator/eaccelerator/archive/${LIBV}.tar.gz
# wget -O $php_lib/${LIBNAME}-${LIBV}.tar.bz2 http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.6.1.tar.bz2
cd $php_lib && tar -zxvf ${LIBNAME}-${LIBV}.tar.gz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config \
--enable-eaccelerator=shared
make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
EA_DIR=/tmp/eaccelerator
mkdir -p $EA_DIR
chmod 777 -R $EA_DIR
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.enable=1" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.optimizer=1" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.shm_size=64" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.cache_dir=${EA_DIR}" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.allowed_admin_path=/www/wwwroot/you_project_dir" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+143
View File
@@ -0,0 +1,143 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source
sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
version=5.2.17
PHP_VER=52
Install_php()
{
#------------------------ install start ------------------------------------#
echo "安装php-${version} ..." > $install_tmp
mkdir -p $sourcePath/php
mkdir -p $serverPath/php
if [ ! -d $sourcePath/php/php${PHP_VER} ];then
if [ ! -f $sourcePath/php/php-${version}.tar.gz ];then
wget --no-check-certificate -O $sourcePath/php/php-${version}.tar.gz https://museum.php.net/php5/php-${version}.tar.gz
fi
if [ ! -f $sourcePath/php/php-5.2.17-fpm-0.5.14.diff.gz ]; then
wget -O $sourcePath/php/php-5.2.17-fpm-0.5.14.diff.gz http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
fi
if [ ! -f $sourcePath/php/php-5.2.17-max-input-vars.patch ]; then
wget -O $sourcePath/php/php-5.2.17-max-input-vars.patch https://raw.github.com/laruence/laruence.github.com/master/php-5.2-max-input-vars/php-5.2.17-max-input-vars.patch
fi
if [ ! -f $sourcePath/php/php-5.x.x.patch ]; then
wget -O $sourcePath/php/php-5.x.x.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
fi
cd $sourcePath/php && tar -zxvf $sourcePath/php/php-${version}.tar.gz
mv $sourcePath/php/php-${version} $sourcePath/php/php${PHP_VER}
cd $sourcePath/php
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php${PHP_VER} -p1
cd $sourcePath/php/php${PHP_VER}
patch -p1 < ../php-5.2.17-max-input-vars.patch
patch -p0 -b < ../php-5.x.x.patch
sed -i "s/\!png_check_sig (sig, 8)/png_sig_cmp (sig, 0, 8)/" ext/gd/libgd/gd_png.c
fi
if [ -f $serverPath/php/${PHP_VER}/bin/php.dSYM ];then
mv $serverPath/php/${PHP_VER}/bin/php.dSYM $serverPath/php/${PHP_VER}/bin/php
fi
if [ -f $serverPath/php/${PHP_VER}/sbin/php-fpm.dSYM ];then
mv $serverPath/php/${PHP_VER}/sbin/php-fpm.dSYM $serverPath/php/${PHP_VER}/sbin/php-fpm
fi
if [ -f $serverPath/php/${PHP_VER}/bin/php ];then
return
fi
OPTIONS=''
if [ $sysName == 'Darwin' ]; then
OPTIONS='--without-iconv'
OPTIONS="${OPTIONS} --with-freetype-dir=${serverPath}/lib/freetype"
OPTIONS="${OPTIONS} --with-curl=${serverPath}/lib/curl"
else
OPTIONS="--with-iconv=${serverPath}/lib/libiconv"
OPTIONS="${OPTIONS} --with-freetype-dir=${serverPath}/lib/freetype"
OPTIONS="${OPTIONS} --with-gd --enable-gd-native-ttf"
OPTIONS="${OPTIONS} --with-curl"
fi
if [ ! -d $serverPath/php/${PHP_VER} ];then
ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so
ln -s /usr/lib64/libpng.so /usr/lib/
cp -frp /usr/lib64/libldap* /usr/lib/
export MYSQL_LIB_DIR=/usr/lib64/mysql
cd $sourcePath/php/php${PHP_VER} && ./configure \
--prefix=$serverPath/php/${PHP_VER} \
--exec-prefix=$serverPath/php/${PHP_VER} \
--with-config-file-path=$serverPath/php/${PHP_VER}/etc \
--with-zlib-dir=$serverPath/lib/zlib \
--enable-xml \
--enable-mysqlnd \
--enable-shared \
--with-mysql=mysqlnd \
--enable-embedded-mysqli=shared \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--disable-fileinfo \
$OPTIONS \
--enable-fastcgi \
--enable-fpm
make ZEND_EXTRA_LIBS='-liconv' && make install && make clean
fi
if [ "$?" != "0" ];then
echo "install fail!!"
rm -rf $sourcePath/php/php${PHP_VER}
exit 2
fi
if [ -f $serverPath/php/${PHP_VER}/bin/php.dSYM ];then
mv $serverPath/php/${PHP_VER}/bin/php.dSYM $serverPath/php/${PHP_VER}/bin/php
fi
if [ -f $serverPath/php/${PHP_VER}/sbin/php-fpm.dSYM ];then
mv $serverPath/php/${PHP_VER}/sbin/php-fpm.dSYM $serverPath/php/${PHP_VER}/sbin/php-fpm
fi
if [ ! -d $serverPath/php/${PHP_VER}/lib/php/extensions/no-debug-non-zts-20060613 ]; then
mkdir -p $serverPath/php/${PHP_VER}/lib/php/extensions/no-debug-non-zts-20060613
fi
#------------------------ install end ------------------------------------#
}
Uninstall_php()
{
$serverPath/php/init.d/php${PHP_VER} stop
rm -rf $serverPath/php/${PHP_VER}
echo "uninstall php-${version} ..." > $install_tmp
}
action=${1}
if [ "${1}" == 'install' ];then
Install_php
else
Uninstall_php
fi
+93
View File
@@ -0,0 +1,93 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=intl
LIBV=3.0.0
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
cd ${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+91
View File
@@ -0,0 +1,91 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=memcache
LIBV=2.2.7
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
cd ${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config --enable-memcache --with-zlib-dir
make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$version not install memcache, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=redis
LIBV=2.2.7
sysName=`uname`
actionType=$1
version=$2
extDir=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -f $php_lib/${LIBNAME}-${LIBV}.tgz ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
fi
sleep 1
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install memcache, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+101
View File
@@ -0,0 +1,101 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=xhprof
LIBV=0.9.4
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -d $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}/extension
$serverPath/php/$version/bin/phpize
./configure --enable-xhprof \
--with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
if [ ! -f /tmp/xhprof ];then
mkdir -p /tmp/xhprof
chown -R www:www /tmp/xhprof
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.output_dir=/tmp/xhprof" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$version not install ${LIBNAME}, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+101
View File
@@ -0,0 +1,101 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=ZendGuardLoader
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "ZendOptimizer.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ $sysName == 'Darwin' ]; then
wget -O $php_lib/zend-loader-php5.3.tar.gz http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-darwin-i386.tar.gz
else
wget -O $php_lib/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
fi
cd $php_lib && tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
cd $php_lib/ZendOptimizer-3.3.3-linux-glibc23-x86_64
cp $php_lib/ZendOptimizer-3.3.3-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so $serverPath/php/$version/lib/php/extensions/no-debug-non-zts-20060613/
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[Zend ZendGuard Loader]" >> $serverPath/php/$version/etc/php.ini
echo "zend_extension=$serverPath/php/$version/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.enable=1" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.disable_licensing=0" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.obfuscation_level_support=3" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.license_path=" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
sed -i $BAK "/ZendOptimizer.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/zend_loader/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/\[Zend ZendGuard Loader\]/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+9
View File
@@ -62,6 +62,10 @@ if [ ! -d $serverPath/php/53 ];then
--exec-prefix=$serverPath/php/53 \
--with-config-file-path=$serverPath/php/53/etc \
--with-zlib-dir=$serverPath/lib/zlib \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--enable-zip \
--enable-exif \
--enable-hash \
@@ -97,6 +101,11 @@ if [ -f $serverPath/php/53/sbin/php-fpm.dSYM ];then
mv $serverPath/php/53/sbin/php-fpm.dSYM $serverPath/php/53/sbin/php-fpm
fi
if [ ! -d $serverPath/php/53/lib/php/extensions/no-debug-non-zts-20090626 ]; then
mkdir -p $serverPath/php/53/lib/php/extensions/no-debug-non-zts-20090626
fi
#------------------------ install end ------------------------------------#
}
+1 -1
View File
@@ -58,7 +58,7 @@ Install_lib()
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[Zend ZendGuard Loader]" >> $serverPath/php/$version/etc/php.ini
echo "zend_extension=ZendGuardLoader.so" >> $serverPath/php/$version/etc/php.ini
echo "zend_extension=$serverPath/php/$version/lib/php/extensions/no-debug-non-zts-20090626/ZendGuardLoader.so" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.enable=1" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.disable_licensing=0" >> $serverPath/php/$version/etc/php.ini
echo "zend_loader.obfuscation_level_support=3" >> $serverPath/php/$version/etc/php.ini
+3
View File
@@ -48,6 +48,9 @@ if [ ! -d $serverPath/php/${PHP_VER} ];then
--with-config-file-path=$serverPath/php/${PHP_VER}/etc \
--with-zlib-dir=$serverPath/lib/zlib \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--enable-zip \
--enable-mbstring \
--enable-sockets \
+3
View File
@@ -47,6 +47,9 @@ if [ ! -d $serverPath/php/55 ];then
--with-config-file-path=$serverPath/php/55/etc \
--with-zlib-dir=$serverPath/lib/zlib \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--enable-zip \
--enable-simplexml \
--enable-intl \
+1
View File
@@ -46,6 +46,7 @@ if [ ! -d $serverPath/php/56 ];then
--exec-prefix=$serverPath/php/56 \
--with-config-file-path=$serverPath/php/56/etc \
--with-zlib-dir=$serverPath/lib/zlib \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
+90
View File
@@ -0,0 +1,90 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=openssl
LIBV=0
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20131226/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
cd $sourcePath/php${version}/ext/${LIBNAME}
if [ ! -f "config.m4" ];then
mv config0.m4 config.m4
fi
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make clean && make && make install && make clean
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+1 -2
View File
@@ -12,13 +12,12 @@ serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
sysName=`uname`
LIBNAME=yac
LIBV=2.0.2
LIBV=2.2.1
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20151012/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
+1 -1
View File
@@ -13,7 +13,7 @@ sourcePath=${serverPath}/source/php
LIBNAME=yar
LIBV=1.2.5
LIBV=2.1.2
actionType=$1
version=$2
+87
View File
@@ -0,0 +1,87 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=mcrypt
LIBV=0
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20160303/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
cd $sourcePath/php${version}/ext/${LIBNAME}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make clean && make && make install && make clean
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+90
View File
@@ -0,0 +1,90 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=openssl
LIBV=0
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20160303/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
cd $sourcePath/php${version}/ext/${LIBNAME}
if [ ! -f "config.m4" ];then
mv config0.m4 config.m4
fi
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make clean && make && make install && make clean
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+1 -1
View File
@@ -80,7 +80,7 @@ Uninstall_lib()
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install memcache, Plese select other version!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
+1 -1
View File
@@ -14,7 +14,7 @@ sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=swoole
LIBV=4.5.1
LIBV=4.5.2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20160303/${LIBNAME}.so
+1 -1
View File
@@ -16,7 +16,7 @@ actionType=$1
version=$2
LIBNAME=yac
LIBV=2.0.2
LIBV=2.2.1
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20160303/${LIBNAME}.so
sysName=`uname`
+1 -1
View File
@@ -15,7 +15,7 @@ actionType=$1
version=$2
LIBNAME=yaf
LIBV=3.2.5
LIBV=3.0.7
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20160303/${LIBNAME}.so
sysName=`uname`
+1 -1
View File
@@ -12,7 +12,7 @@ serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=yar
LIBV=1.2.5
LIBV=2.1.2
actionType=$1
version=$2
+1 -1
View File
@@ -11,7 +11,7 @@ sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
version=7.2.32
version=7.2.34
PHP_VER=72
Install_php()
{
+87
View File
@@ -0,0 +1,87 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=mcrypt
LIBV=0
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20170718/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
cd $sourcePath/php${version}/ext/${LIBNAME}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make clean && make && make install && make clean
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+90
View File
@@ -0,0 +1,90 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=openssl
LIBV=0
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20170718/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
cd $sourcePath/php${version}/ext/${LIBNAME}
if [ ! -f "config.m4" ];then
mv config0.m4 config.m4
fi
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make clean && make && make install && make clean
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+1 -1
View File
@@ -80,7 +80,7 @@ Uninstall_lib()
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install memcache, Plese select other version!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
+1 -1
View File
@@ -16,7 +16,7 @@ version=$2
LIBNAME=swoole
LIBV=4.5.1
LIBV=4.5.2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20170718/${LIBNAME}.so
sysName=`uname`
+1 -1
View File
@@ -17,7 +17,7 @@ actionType=$1
version=$2
LIBNAME=yac
LIBV=2.0.2
LIBV=2.2.1
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20170718/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
+1 -1
View File
@@ -13,7 +13,7 @@ sourcePath=${serverPath}/source/php
LIBNAME=yar
LIBV=1.2.5
LIBV=2.1.2
actionType=$1
version=$2
+1 -1
View File
@@ -11,7 +11,7 @@ sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
version=7.3.20
version=7.3.27
PHP_VER=73
Install_php()
{
+1 -1
View File
@@ -81,7 +81,7 @@ Uninstall_lib()
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install memcache, Plese select other version!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
+1 -1
View File
@@ -16,7 +16,7 @@ version=$2
LIBNAME=swoole
LIBV=4.5.1
LIBV=4.5.2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20180731/${LIBNAME}.so
sysName=`uname`
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=yac
LIBV=2.2.1
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20180731/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "$isInstall" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -f $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib
tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
cd ..
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return;
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.use_namespace=1" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php$version 未安装yaf,请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/\[${LIBNAME}\]/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+1 -1
View File
@@ -13,7 +13,7 @@ sourcePath=${serverPath}/source/php
LIBNAME=yar
LIBV=2.0.5
LIBV=2.1.2
actionType=$1
version=$2
+1 -1
View File
@@ -11,7 +11,7 @@ sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
version=7.4.8
version=7.4.16
PHP_VER=74
Install_php()
{
+1 -1
View File
@@ -37,7 +37,7 @@ Install_lib()
if [ ! -f "$extFile" ];then
cd $sourcePath/php74/ext/${LIBNAME}
cd $sourcePath/php${version}/ext/${LIBNAME}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
+104
View File
@@ -0,0 +1,104 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=SeasLog
_LIBNAME=$(echo $LIBNAME | tr '[A-Z]' '[a-z]')
LIBV=2.1.0
sysName=`uname`
actionType=$1
version=$2
extDir=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20190902/
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${_LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
extFile=$extDir${_LIBNAME}.so
if [ ! -f "$extFile" ];then
OPTIONS=''
if [ $sysName == 'Darwin' ]; then
OPTIONS="${OPTIONS} --with-curl=${serverPath}/lib/curl"
fi
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -d $php_lib/${LIBNAME}-${LIBV}.tgz ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
fi
sleep 1
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
_LIBNAME=$(echo $LIBNAME | tr '[A-Z]' '[a-z]')
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${_LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${_LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
extFile=$extDir${_LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$version not install ${LIBNAME}, Plese select other version!"
return
fi
_LIBNAME=$(echo $LIBNAME | tr '[A-Z]' '[a-z]')
sed -i $BAK "/${_LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${_LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+102
View File
@@ -0,0 +1,102 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=solr
LIBV=2.5.1
sysName=`uname`
actionType=$1
version=$2
extDir=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20190902/
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "$isInstall" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
OPTIONS=''
if [ $sysName == 'Darwin' ]; then
OPTIONS="${OPTIONS} --with-curl=${serverPath}/lib/curl"
fi
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -f $php_lib/${LIBNAME}-${LIBV}.tgz ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config $OPTIONS
make && make install && make clean
fi
sleep 1
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
extFile=$extDir${LIBNAME}.so
if [ ! -f "$extFile" ];then
echo "php$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$vphp not install ${LIBNAME}, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+1 -1
View File
@@ -16,7 +16,7 @@ version=$2
LIBNAME=swoole
LIBV=4.5.1
LIBV=4.5.2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20190902/${LIBNAME}.so
sysName=`uname`
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
actionType=$1
version=$2
LIBNAME=yac
LIBV=2.2.1
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20190902/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "$isInstall" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -f $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib
tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config
make && make install && make clean
cd ..
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return;
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.use_namespace=1" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php$version 未安装yaf,请选择其它版本!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/\[${LIBNAME}\]/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+100
View File
@@ -0,0 +1,100 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=yar
LIBV=2.1.2
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20190902/${LIBNAME}.so
sysName=`uname`
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
if [ ! -d $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config \
--with-curl=$serverPath/lib/curl
make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return;
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
echo "${LIBNAME}.expose_info=false" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$version not install ${LIBNAME}, Plese select other version!"
return
fi
echo $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}.use_namespace/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/\[${LIBNAME}\]/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi
+2 -2
View File
@@ -11,7 +11,7 @@ sysName=`uname`
install_tmp=${rootPath}/tmp/mw_install.pl
version=8.0.0alpha2
version=8.0.3
PHP_VER=80
Install_php()
{
@@ -23,7 +23,7 @@ mkdir -p $serverPath/php
if [ ! -d $sourcePath/php/php${PHP_VER} ];then
if [ ! -f $sourcePath/php/php-${version}.tar.xz ];then
wget --no-check-certificate -O $sourcePath/php/php-${version}.tar.xz https://downloads.php.net/~carusogabriel/php-${version}.tar.xz
wget --no-check-certificate -O $sourcePath/php/php-${version}.tar.xz https://www.php.net/distributions/php-${version}.tar.xz
fi
cd $sourcePath/php && tar -Jxf $sourcePath/php/php-${version}.tar.xz
+99
View File
@@ -0,0 +1,99 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sourcePath=${serverPath}/source/php
LIBNAME=memcached
LIBV=3.1.5
sysName=`uname`
actionType=$1
version=$2
extFile=$serverPath/php/${version}/lib/php/extensions/no-debug-non-zts-20200930/${LIBNAME}.so
if [ "$sysName" == "Darwin" ];then
BAK='_bak'
else
BAK=''
fi
Install_lib()
{
isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"`
if [ "${isInstall}" != "" ];then
echo "php-$version 已安装${LIBNAME},请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
php_lib=$sourcePath/php_lib
mkdir -p $php_lib
rm -rf $php_lib/${LIBNAME}-${LIBV}
if [ ! -d $php_lib/${LIBNAME}-${LIBV} ];then
wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz
cd $php_lib && tar xvf ${LIBNAME}-${LIBV}.tgz
fi
cd $php_lib/${LIBNAME}-${LIBV}
sed -i '_bak' "3237,3238s#ulong#zend_ulong#g" $php_lib/${LIBNAME}-${LIBV}/php_memcached.c
$serverPath/php/$version/bin/phpize
./configure --with-php-config=$serverPath/php/$version/bin/php-config \
--enable-memcached \
--disable-memcached-sasl && \
make clean && make && make install && make clean
fi
if [ ! -f "$extFile" ];then
echo "ERROR!"
return
fi
echo "" >> $serverPath/php/$version/etc/php.ini
echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini
echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini
$serverPath/php/init.d/php$version reload
echo '==========================================================='
echo 'successful!'
}
Uninstall_lib()
{
if [ ! -f "$serverPath/php/$version/bin/php-config" ];then
echo "php-$version 未安装,请选择其它版本!"
return
fi
if [ ! -f "$extFile" ];then
echo "php-$version 未安装${LIBNAME},请选择其它版本!"
echo "php-$version not install ${LIBNAME}, Plese select other version!"
return
fi
sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini
sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini
rm -f $extFile
$serverPath/php/init.d/php$version reload
echo '==============================================='
echo 'successful!'
}
if [ "$actionType" == 'install' ];then
Install_lib
elif [ "$actionType" == 'uninstall' ];then
Uninstall_lib
fi

Some files were not shown because too many files have changed in this diff Show More