OneinStack 是知名 Linux 技術(shù)博客 LinuxEye 推出的一個(gè)可以一鍵安裝 LNMP(Linux + NGINX + MySQL + PHP)讥蔽、LAMP(Linux + Apache + MySQL + PHP)随珠、LNMPA(Linux + NGINX + MySQL + PHP + Apache)等建站環(huán)境的一鍵安裝包稍坯。主要是提供了一個(gè)可視化頁面规脸,可以直接在頁面上選擇自己想要的配置,然后自動(dòng)生成安裝命令遗锣,然后就等待自動(dòng)安裝完成就行
oneinstack 官網(wǎng)
linux 下載oneinstack
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar -xvf oneinstack-full.tar.gz
oneinstack集成了acme.sh 工具橱夭,可以用 vhost.sh 腳本文件直接申請(qǐng)免費(fèi)的R3證書,并自動(dòng)創(chuàng)建計(jì)劃任務(wù)屋吨,檢測(cè)并更新證書到期時(shí)間蜒谤。
oneinstack的文件目錄如下:
addons.sh
backup_setup.sh # 備份設(shè)置
backup.sh # 執(zhí)行備份
config
include
init.d
install.log
install.sh # oneinstack環(huán)境安裝腳本
LICENSE
options.conf # 配置信息存放文件
pureftpd_vhost.sh # ftp管理
README.md
reset_db_root_password.sh # 重置數(shù)據(jù)庫root密碼
src # 安裝過程使用源碼安裝,將會(huì)把源碼文件下載到這個(gè)文件夾
tools
uninstall.sh # oneinstack環(huán)境卸載腳本
upgrade.sh # 各種插件升級(jí)腳本
versions.txt
vhost.sh # 域名證書申請(qǐng)腳本
證書申請(qǐng)
開始之前需要首先購買至扰、備案鳍徽、并解析域名。
備案幫助文檔
解析域名幫助文檔
進(jìn)入 oneinstack 工作目錄渊胸,使用 root 權(quán)限執(zhí)行 vhost.sh 文件
./vhost.sh
- 選擇生成網(wǎng)站配置文件的方式
What Are You Doing?
1. Use HTTP Only
2. Use your own SSL Certificate and Key
3. Use Let's Encrypt to Create SSL Certificate and Key
q. Exit
Please input the correct option: 3
- 不使用證書旬盯,直接生成網(wǎng)站配置文件
- 使用自定義證書,這個(gè)同樣需要填寫域名等信息翎猛,但是腳本不會(huì)去R3官網(wǎng)申請(qǐng)證書胖翰,配置文件生成后需要手動(dòng)將自己的證書放在配置文件指定的位置中
- 使用 " Let's Encrypt " 提供的免費(fèi)證書
- 輸入域名、設(shè)置網(wǎng)站根目錄
Please input domain(example: www.example.com): demo.leorain.cn
domain=demo.leorain.cn
Please input the directory for the domain:demo.leorain.cn :
(Default directory: /data/wwwroot/demo.leorain.cn):
Virtual Host Directory=/data/wwwroot/demo.leorain.cn
Create Virtul Host directory......
set permissions of Virtual Host directory......
網(wǎng)站根目錄
網(wǎng)站根目錄對(duì)應(yīng)的是nginx配置中的 root 值切厘,不同的項(xiàng)目對(duì)應(yīng)的 root 路徑不同萨咳,且對(duì)應(yīng)的索引文件也不同,例如:1疫稿、普通的獨(dú)立站培他,使用 laravel 的 blade 模板渲染鹃两,則需要 root 路徑指向 laravel 的 public 目錄,索引文件指向 index.php 舀凛,并將 quest_string 從定向到 index.php 文件俊扳。2、前后端分離項(xiàng)目猛遍,需要將網(wǎng)站根目錄指向前端的根路徑:[web_root]/dist/ 馋记,索引文件指向 index.html ,并將 query_string 指向 index.html
- 重定向
這個(gè)地方輸入域名懊烤,如果網(wǎng)站對(duì)應(yīng)多個(gè)域名梯醒,域名會(huì)被重定向到后續(xù)輸入的域名,例如網(wǎng)站對(duì)應(yīng)兩個(gè)域名 https://www.leorain.cn 腌紧、https://leorain.cn 茸习,并且希望將 https://leorain.cn 重定向到 https://www.leorain.cn ,則需要首先輸入 www.leorain.cn 再添加 leorain.cn - 防盜鏈壁肋、訪問日志等
Do you want to add hotlink protection? [y/n]: n
Allow Rewrite rule? [y/n]: y
Please input the rewrite of programme :
wordpress,opencart,magento2,drupal,joomla,codeigniter,laravel
thinkphp,pathinfo,discuz,typecho,ecshop,nextcloud,zblog,whmcs rewrite was exist.
(Default rewrite: other): laravel
You choose rewrite=laravel
Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
You access log file=/data/wwwlogs/demo.leorain.cn_nginx.log
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Reload Nginx......
使用oneinstack里面的acme模塊申請(qǐng)的證書号胚,會(huì)自動(dòng)生成續(xù)費(fèi)計(jì)劃任務(wù)。
- sudo su 切換root用戶申請(qǐng)的證書墩划,自動(dòng)續(xù)費(fèi)配置文件在
/root/.acme.sh/
里面
7 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
- sudo vhost.sh
7 0 * * * "/home/ubuntu/.acme.sh"/acme.sh --cron --home "/home/ubuntu/.acme.sh" > /dev/null
oneinstack自帶的acme.sh會(huì)因?yàn)閚ginx配置問題涕刚, 導(dǎo)致自動(dòng)續(xù)費(fèi)失敗,在網(wǎng)站的nginx配置最后添加以下配置乙帮,重載nginx即可自動(dòng)續(xù)費(fèi)
# ACME_CRON_NGINX_WELLKNOW BEGIN ANSIBLE MANAGED BLOCK
location /.well-known {
allow all;
}
# ACME_CRON_NGINX_WELLKNOW END ANSIBLE MANAGED BLOCK