在生产环境中, 尽量不要使用OneInStack之类的一键安装脚本, 由于镜像/脚本存在被第三方恶意篡改的不确定性,对生产环境可能造成潜在的安全风险
如果你只是希望快速搭建一个可用的Web环境, 欢迎查看这篇文章
什么是OneInStack
这里直接贴上项目官方的介绍
脚本介绍
此脚本使用shell编写,用于快速部署
LEMP
/LAMP
/LNMP
/LNMPA
/LTMP
(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP、JAVA)环境,适用于64位的RHEL 7、8、9(包括CentOS、RedHat、AlmaLinux、Rocky)、Debian 9、10、11、12、Ubuntu 16、18、20、22和Fedora 27+。脚本特点:
- 持续更新,提供交互式安装和自动安装
- 源码编译安装,采用最新稳定版本,并从官方站点下载
- 提供多重安全优化
- 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.11、MariaDB-10.5、MariaDB-10.4、MariaDB-5.5、Percona-8.0、Percona-5.7、Percona-5.6、Percona-5.5、PostgreSQL、MongoDB)
- 提供多个PHP版本(PHP-8.3、PHP-8.2、PHP-8.1、PHP-8.0、PHP-7.4、PHP-7.3、PHP-7.2、PHP-7.1、PHP-7.0、PHP-5.6、PHP-5.5、PHP-5.4、PHP-5.3)
- 提供Nginx、Tengine、OpenResty、Caddy、Apache和ngx_lua_waf
- 提供多个Tomcat版本(Tomcat-10、Tomcat-9、Tomcat-8、Tomcat-7)
- 提供多个JDK版本(OpenJDK-8、OpenJDK-11、OpenJDK-17)
- 根据需求安装PHP缓存加速器(ZendOPcache、xcache、apcu、eAccelerator)和PHP扩展,包括ZendGuardLoader、ionCube、SourceGuardian、imagick、gmagick、fileinfo、imap、ldap、calendar、phalcon、yaf、yar、redis、memcached、memcache、mongodb、swoole、xdebug
- 可选安装Nodejs、Pureftpd、phpMyAdmin
- 可选安装memcached、redis
- 使用Jemalloc优化MySQL、Nginx
- 提供添加虚拟主机脚本,包括Let’s Encrypt SSL证书
- 提供Nginx/Tengine/OpenResty/Apache/Tomcat、MySQL/MariaDB/Percona、PHP、Redis、Memcached、phpMyAdmin升级脚本
- 提供本地、远程(服务器间rsync)、阿里云OSS、腾讯云COS、又拍云、七牛云、亚马逊S3、Google Drive和Dropbox备份脚本
综上所诉, 这是一个以快速构建Web环境为目标的一键部署脚本, 个人项目还是挺推荐使用的, 毕竟很省事
需要注意的是, 省事带来的是不确定性, 生产环境中还是不建议使用诸如此类的一键部署脚本, 安装流程的不确定性, 镜像源与代码是否存在污染风险,都没法掌握(当然, 就算是官方Release也是有可能被污染的, 但是生产环境, 能谨慎一点算一点)
为什么要使用它
当我们着手部署一个Web环境时,安装各种前置依赖和中间件往往是一项复杂且繁琐的任务。以一个基本的前后端分离项目为例,我们通常需要执行以下步骤:
- 安装反向代理服务器(如Nginx、Apache、Tengine或Caddy)
- 配置HTTPS
- 安装后端运行环境(例如JDK、PHP或Node.js)
- 安装数据库管理系统
显而易见,所需完成的任务相当繁多。
是否有一种简便的方法能够帮助我们快速实现上述所有需求的安装与配置呢?答案是肯定的,实际上存在不少这样的工具。
比如,经典的LNMP一键配置脚本就广为人知。然而,今天我们想介绍的是OneinStack——一款更为新颖的一键式Web运行环境安装脚本。相比LNMP,OneinStack提供了更高的灵活性,允许用户根据自身需求自定义组件组合。
此外,它还具备全自动的SSL证书管理功能,相较于手动逐一安装各个组件,使用OneinStack无疑大幅节省了时间。
这里也贴上OneinStack的Github链接, 有兴趣的朋友可以看看
GitHub – oneinstack/oneinstack: OneinStack – A PHP/JAVA Deployment Tool