轉載: https://blog.csdn.net/yuanlaijike/article/details/76651006
OneinStack官方網站:https://oneinstack.com
介紹
OneinStack支持以下數種環境組合:
-
LNMP(Linux + Nginx+ MySQL+ PHP)
-
LAMP(Linux + Apache+ MySQL+ PHP)
-
LNMPA(Linux + Nginx+ MySQL+ PHP+ Apache):Nginx處理靜態,Apache(mod_php)處理動態PHP
-
LNMT(Linux + Nginx+ MySQL+ Tomcat):Nginx處理靜態,Tomcat(JDK)處理JAVA
-
LNMH(Linux + Nginx+ MySQL+ HHVM)
支持以下數種系統:
-
CentOS 6~7(包括redhat)
-
Debian 6~9
-
Ubuntu 12~16
-
Aliyun Linux 15.1
安裝步驟
1.
yum -y install wget screen curl python #for CentOS/Redhat
- 1
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 #不包含源碼,建議僅國外主機下載
- 1
- 2
- 3
- 4
- 5
- 6
3.解壓壓縮包
tar -zxvf oneinstack-full.tar.gz
- 1
4.進入文件夾
cd oneinstack #如果需要修改目錄(安裝、數據存儲、Nginx日志),請修改options.conf文件
- 1
5.
screen -S oneinstack #如果網路出現中斷,可以執行命令`screen -R oneinstack`重新連接安裝窗口
- 1
環境配置
執行命令:
./install.sh #注:請勿sh install.sh或者bash install.sh這樣執行
- 1
添加附加組件
執行命令:
./addons.sh
- 1
添加虛擬主機
執行命令:
./vhost.sh
- 1
刪除虛擬主機
執行命令:
./vhost.sh del
- 1
管理ftp賬號
執行命令:
./pureftpd_vhost.sh
- 1
備份數據
執行命令:
./backup_setup.sh # Set backup options
- 1
./backup.sh # Start backup, You can add cron jobs # crontab -l # Examples 0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 &
- 1
- 2
- 3
更新版本
執行命令:
./upgrade.sh
- 1
- 2
卸載OneinStack
執行命令
./uninstall.sh
- 1
管理服務
Nginx/Tengine/OpenResty:
service nginx {start|stop|status|restart|reload|configtest}
- 1
MySQL/MariaDB/Percona:
service mysqld {start|stop|restart|reload|status}
- 1
PHP:
service php-fpm {start|stop|restart|reload|status}
- 1
HHVM(hhvm進程交給supervisord管理):
service supervisord {start|stop|status|restart|reload}
- 1
Apache:
service httpd {start|restart|stop}
- 1
Tomcat:
service tomcat {start|stop|status|restart}
- 1
Pure-Ftpd:
service pureftpd {start|stop|restart|status}
- 1
Redis:
service redis-server {start|stop|status|restart|reload}
- 1
Memcached:
service memcached {start|stop|status|restart|reload}
- 1
可能遇到的問題
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 {} \;
- 1
- 2
- 3
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,即可
- 1
- 2
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規則
- 1
- 2
如下圖:
如果您的操作系統為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規則
- 1
- 2
如下圖:
(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; #退出數據庫控制台,特別注意有分號
- 1
- 2
- 3
- 4
如下圖: