OneinStack官方网站:https://oneinstack.com
介绍
OneinStack包含以下组合
- lnmp(Linux + Nginx+ MySQL/MongoDB+ PHP)
- lamp(Linux + Apache+ MySQL/MongoDB+ PHP)
- lnmpa(Linux + Nginx+ MySQL/MongoDB+ PHP+ Apache):Nginx处理静态,Apache(mod_php)处理动态PHP
- lnmt(Linux + Nginx+ MySQL/MongoDB+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA
- lnpp(Linux + Nginx+ PostgreSQL+ PHP)
- lapp(Linux + Apache+ PostgreSQL+ PHP)
- lnmh(Linux + Nginx+ MySQL+ HHVM)
支持系统版本
- CentOS 6~7(包括redhat)
- Debian 7~9
- Ubuntu 12~18
- Fedora 27~28
- Deepin 15
- Aliyun Linux 15.1
特性
- 持续不断更新,支持交互、无人值守安装
- 源码编译安装,大多数源码是最新stable版,并从官方网址下载
- 提供多个数据库版本(MySQL-8.0, MySQL-5.7, MySQL-5.6, MySQL-5.5, MariaDB-10.3,MariaDB-10.2,MariaDB-10.1,MariaDB-10.0, MariaDB-5.5, Percona-5.7, Percona-5.6, Percona-5.5,AliSQL-5.6,PostgreSQL, MongoDB)
- 提供多个PHP版本(PHP-7.2,PHP-7.1,PHP-7.0,PHP-5.6, PHP-5.5,PHP-5.4,PHP-5.3)
- 提供Nginx、Tengine、OpenResty和nginx waf功能
- 提供多个Apache版本(Apache-2.4,Apache-2.2)
- 提供多个Tomcat版本(Tomcat-9,Tomcat-8,Tomcat-7,Tomcat-6)
- 提供多个JDK版本(JDK-10,JDK-1.8,JDK-1.7,JDK-1.6)
- 根据自己需求安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。及php加解密工具ionCube、ZendGuardLoader
- 根据自己需求安装Pureftpd、phpMyAdmin
- 根据自己需求安装Memcached、Redis
- jemalloc优化MySQL、Nginx
- 提供添加虚拟主机脚本
- 提供Nginx/Tengine/OpenResty/Apache、PHP、Redis、Memcached、phpMyAdmin升级脚本
- 提供本地备、远程(rsync)、阿里云OSS、腾讯云COS、又拍云和七牛云备份脚本
- 提供CentOS 6、7下HHVM安装
安装步骤
自动安装请进入如下网址获取自动安装代码:https://oneinstack.com/auto/
下面为手动安装过程。
1.
yum -y install wget screen curl python #for CentOS/Redhat
2.选择源(以下源选一即可)
wget http://aliyun-oss.linuxeye.com/oneinstack-full.tar.gz #阿里云内网下载
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz #包含源码,国内外均可下载
wget http://mirrors.linuxeye.com/oneinstack.tar.gz #不包含源码,建议仅国外主机下载
3.解压压缩包
tar -zxvf oneinstack-full.tar.gz
4.进入文件夹
cd oneinstack #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件
5.
screen -S oneinstack #如果网路出现中断,可以执行命令`screen -R oneinstack`重新连接安装窗口
环境配置
执行命令:
./install.sh #注:请勿sh install.sh或者bash install.sh这样执行
添加附加组件
执行命令:
./addons.sh
添加虚拟主机
执行命令:
./vhost.sh
删除虚拟主机
执行命令:
./vhost.sh del
管理ftp账号
执行命令:
./pureftpd_vhost.sh
备份数据
执行命令:
./backup_setup.sh # Set backup options
./backup.sh # Start backup, You can add cron jobs
# crontab -l # Examples
0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 &
更新版本
执行命令:
./upgrade.sh
卸载OneinStack
执行命令
./uninstall.sh
管理服务
Nginx/Tengine/OpenResty:
service nginx {start|stop|status|restart|reload|configtest}
MySQL/MariaDB/Percona:
service mysqld {start|stop|restart|reload|status}
PHP:
service php-fpm {start|stop|restart|reload|status}
HHVM(hhvm进程交给supervisord管理):
service supervisord {start|stop|status|restart|reload}
Apache:
service httpd {start|restart|stop}
Tomcat:
service tomcat {start|stop|status|restart}
Pure-Ftpd:
service pureftpd {start|stop|restart|status}
Redis:
service redis-server {start|stop|status|restart|reload}
Memcached:
service memcached {start|stop|status|restart|reload}
可能遇到的问题
1.ftp权限问题
问题描述:
创建ftp账户后,远程连接出现550错误,提示没有权限。
问题解决:
网站根目录权限遵循:
文件644 文件夹755 权限用户和用户组www
如出现文件权限问题时,请执行下面3条命令:
chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;
2.LNMT模式部署JAVA应用
问题解决:
如果安装lnmt模式,即同时安装nginx、mysql、tomcat,默认是做了动静分离,即nginx处理静态资源(jss、ccc、图片等),其余的交给tomcat处理。
默认(未绑定域名)对应网站根目录/data/wwwroot/default(不是webapps),部署代码时建议将war包解压(比如example.war,解压命令:jar xf example.war ,注意权限必须为www),将其中代码放到对应网站根目录。
-
如果上传代码之后目录结构为:/data/wwwroot/default/WEB-INF,访问地址为:http://IP
-
如果上传代码之后目录结构为:/data/wwwroot/default/example/WEB-INF,访问网站地址为:http://IP/example。
注意:
war包也可以不解压即上传到对应网站根目录,但必须注意访问路径和静态资源目录问题。如果访问网站时,静态资源加载不了,可能是原因是做了动静分离静态资源直接有nginx处理,请确认nginx是否能找到相关静态资源(nginx网站根目录:/data/wwwroot/default)
如果vhost.sh绑定了域名,如www.example.com,工具会自动生成对应根目录:/data/wwwroot/www.example.com ,请将代码放入此目录。
3.切换php版本
问题解决:
./uninstall.sh php #卸载
./install.sh #php选择y,其余选择n,即可
4.配置MySQL远程连接
问题解决:
(1)开启iptables 3306端口
如果您的操作系统为CentOS系列:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save #保存iptables规则
如下图:
如果您的操作系统为Ubuntu/Debian系列:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables.up.rules #保存iptables规则
如下图:
(2)授权数据库
远程连接新建一个帐号(帐号名不能为root)。
如:添加一个用户名为db_user,密码为db_pass,授权为% (%表示所有外围IP能连接)对db_name数据库所有权限,命令如下
# mysql -uroot -p
MySQL [(none)]> grant all privileges on db_name.* to db_user@’%’ identified by ‘db_pass’; #授权语句,特别注意有分号
MySQL [(none)]> flush privileges;
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
如下图:
转载请注明:3号VPS » Linux利用OneinStack搭建环境