OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点

OneinStack是另一个非常优秀的LNMP一键安装脚本,这与上次我们介绍的LNMP 1.4功能类似,只不过LNMP.org的LNMP一键脚本一年才更新一次,PHP 7和Let’s Encrypt证书只有等到LNMP 1.4出来后才能使用,而OneinStack早在去年就可以使用了。

OneinStack更新及时并且经常会新增一些“前沿”功能,这是我当初放弃使用LNMP 1.3 转投OneinStack的原因。OneinStack的作者也一直在更新,部落好几个站都是用OneinStack搭建完成的,特别是它的部署Let’s Encrypt证书和配置Https站点特别好用。

OneinStack 自带了Let’s Encrypt安装组件,想要使用SSL证书的朋友只需要在创建网站时输入域名,然后就可以自动为域名配置SSL证书了,并且OneinStack 还会贴心地设置Let’s Encrypt证书自动续期。至于其它的Memcached、Redis、ionCube、ZendGuardLoader等都可以一键安装。

OneinStack一键安装脚本-轻松部署Let’s Encrypt证书和配置Https站点

本篇文章就来分享一下我使用OneinStack面板的一些心得与体会,更多的关于建站软件与建站工具,你可以看看:

  1. Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持
  2. ConoHa日本VPS主机使用感受-东京机房速度一般支付宝付款
  3. 用JW Player,ckplayer,Smartideo搭建视频直播站-支持各大视频网站和rtmp

一、OneinStack安装方法

OneinStack支持一键安装的操作系统有:CentOS 6~7(包括redhat) 、Debian 6~8 、Ubuntu 12~16 、Aliyun Linux 15.1。主要包括以下组合:

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)

OneinStack安装命令如下(如果有新的变化,请参考官网:https://oneinstack.com/):

yum -y install wget screen curl python #for CentOS/Redhat
# apt-get -y install wget screen curl python #for Debian/Ubuntu
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 #不包含源码,建议仅国外主机下载
tar xzf oneinstack-full.tar.gz
cd oneinstack #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件
screen -S oneinstack #如果网路出现中断,可以执行命令`screen -R oneinstack`重新连接安装窗口
./install.sh #注:请勿sh install.sh或者bash install.sh这样执行

在安装过程中,脚本会让你先选择是否安装Nginx、Apache等。根据你自己的需要来选择不同的版本来安装,如果只是建站的话建议使用LNMP,不要使用LNMPA。

OneinStack选择Nginx

接着会要求你选择MysqL数据库版本,5.7版本在性能上有所提升,但是有些程序可能无法兼容MysqL 5.7以下,请谨慎安装与使用。

OneinStack选择MysqL版本

最后就是选择安装PHP的版本,还有各种组件,包括了缓存ZendOPcache、xcache、apcu、eAccelerator;php加解密工具ionCube、ZendGuardLoader ;还有Memcached、Redis等等。

OneinStack安装组件

这是OneinStack安装成功的界面。

OneinStack安装成功

打开你的IP,你就可以看到OneinStack默认页面了,这里会有探针、PHPmyAdmin等,直接点击就可以打开了。建议在正式生产环境中将此页面重命名或者直接删除,防止被人利用。

OneinStack探针

二、OneinStack一键部署Https站点

首先,如果你自己没有购买证书的话,可以先安装OneinStack提供的Let’s Encrypt申请部署组件,执行命令:./addons.sh,选择Let’s Encrypt安装。

OneinStack添加证书组件

接着,到你的域名DNS管理处,将域名的A记录解析到服务器上,因为我们在申请Let’s Encrypt证书时需要验证域名,如果没有解析会出失败的情况。

OneinStack解析域名

然后,你就可以执行命令:./vhost.sh,开始添加新的虚拟主机了。下面的配置是绑定wzfou.net域名,同时将www跳转到非www的,其它的文件目录都是默认,在最后一项选择安装Let’s Encrypt。

OneinStack创建网站

最后,选择OneinStack提供的默认URL重写规则,自带了Wordpress、DZ、typecho等热门程序。这是OneinStack添加虚拟主机成功的界面。

OneinStack添加网站成功

打开你的域名,这时你就可以看到Https站点已经部署成功了。

OneinStack站点部署Https成功

三、OneinStack多版本PHP共存

经过测试,LNMP 1.4实现多版本PHP共存比较简单,有这个需要的朋友建议使用LNMP 1.4:Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持

OneinStack实现多版本PHP有些麻烦,以下内容参考自官网。如果你之前安装的是PHP 5.4,想要安装PHP 7,命令如下:

service php-fpm stop #后面需要再安装php,需要停止php
mv /etc/init.d/php-fpm{,_bk} #后面需要再安装php会覆盖,备份启动脚本
默认php5.4安装路径是/usr/local/php,如果再次安装会提示php已经安装,因此必须修改options.conf的php安装目录,将php7安装路径设置为/usr/local/php7,修改/root/oneinstack/options.conf:
php_install_dir=/usr/local/php7
再次执行./install.sh,选择Install php-7,其余均选择n,等待ing

修改php配置文件:

service php-fpm stop #停止php7启动脚本
mv /etc/init.d/php-fpm /etc/init.d/php7-fpm  #重命名php7启动脚本
mv /etc/init.d/php-fpm_bk /etc/init.d/php-fpm  #恢复php5.4启动脚本
设置php5.4、php7开机自启动:
# CentOS:
chkconfig --add php7-fpm
chkconfig --add php-fpm
chkconfig php7-fpm on
chkconfig php-fpm on
# Ubuntu/Debian:
update-rc.d php7-fpm defaults
update-rc.d php-fpm defaults
防止php5.4、php7监听sock冲突,修改php7的listen,更改配置文件/usr/local/php7/etc/php-fpm.conf:
listen = /dev/shm/php-cgi.sock
#改成
listen = /dev/shm/php7-cgi.sock
手工启动php5.4、php7:
service php-fpm start  #启动php5.4
service php7-fpm start #启动php7

修改nginx虚拟主机配置文件:

./vhost.sh绑定域名,默认是运行在php5.4,如需要将网站运行在php7下,需要修改/usr/local/nginx/conf/vhost/www.oneinstack.com.conf(www.oneinstack.com改成自己绑定域名):
fastcgi_pass unix:/dev/shm/php-cgi.sock;
#改成
fastcgi_pass unix:/dev/shm/php7-cgi.sock;
重新加载nginx,使配置生效:
service nginx reload

四、使用OneinStack遇到的问题

第一个问题:let’s encpty SSL证书自动续期失败。我之前遇到过这样的问题,猜测的原因可能是OneinStack在执行let’s encpty 续期时因为80端口被Nginx占用而导致失败的。解决的办法停止Nginx,然后自己手动执行一下Crontab定时任务。或者直接强制执行:

/usr/local/python/bin/certbot renew –force-renewal –renew-hook “/etc/init.d/nginx reload”

第二个问题:修改PHP后不生效。这是因为在安装OneinStack时默认地给PHP环境默认加载了Opcache模块(PHP5.5、5.6、7.0、7.1),修改PHP代码后一般要1分钟后才见效。解决办法可以卸载Opcache,或者自己访问http://公网IP/ocp.php,重置缓存。

OneinStack重置缓存

第三个问题:OneinStack无法发送邮件。这是因为OneinStack没有PHP mail,你需要自己安装postfix或者使用第三方的SMTP如sendcloud、Amazon SES、MailGun等发送。

文章出自:挖站否 https://wzfou.com/oneinstack/,版权所有。本站文章除了注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

已有 69 条评论
  1. 从2点安装 45 分钟 选择了二进制 (自动安装)

    然后各种这个https申请 搞了半天 才懂 到刚刚终于创建好了

    第一次不用面板安装 真的是不习惯

    11月18日 16:37 回复
    • Qi

      慢慢地就好了,哈哈。

      11月21日 13:37 回复
  2. 可乐

    它的组件是优化过的还是原生?现在有【自动安装】了,选二进制安装还是源码编译安装(也可无人值守无需操作么)

    7月14日 08:23 回复
    • Qi

      选择源码编译吧,这样好一些。组件已经经过优化处理。

      7月14日 16:15 回复
  3. X

    oneinstack这个安装Nginx是编译安装还是直接安装?

    2017年10月26日 21:47 回复
    • Qi

      是编译的。

      2017年10月26日 21:51 回复
  4. 最早看到oneinstack的时候经常记成openstack

    2017年8月17日 13:43来自移动端 回复
    • Qi

      OneinStack也是后来才出现的,之前一直是作者的一个脚本包,后来才独立出来一个网站提供专题下载。OneinStack有免费存储吗?

      2017年8月17日 16:41 回复
  5. 你的IDC是主要卖虚拟主机还是VPS,还是,呢

    2017年6月28日 17:22 回复
    • Qi

      还没有想好,技术不成熟。

      2017年6月28日 22:04 回复
    • Qi

      都卖,哈哈。

      2017年6月29日 11:20来自移动端 回复
  6. 看到文章下面的“本文作者”这块,我在想,是不是还有其它作者呢

    2017年6月28日 09:44 回复
    • Qi

      后期会加入多个作者

      2017年6月28日 16:16来自移动端 回复
  7. 博主,可以换个友链吗?分享屋 http://www.fenxiangwu.net/

    2017年6月27日 16:24 回复
    • Qi

      谢谢支持。已经添加。

      2017年6月27日 22:08 回复
      • 谢谢Qi

        2017年6月27日 22:46 回复
        • Qi

          那个网易云跟贴没有未登录就能评论的功能吗?

          2017年6月27日 22:56 回复
          • 只能给登录的访客留言…
            搜狐畅言也是

            2017年6月28日 07:10来自移动端 回复
            • Qi

              那就不好了,有些不想登陆就不能评论了。

              2017年6月28日 08:42来自移动端 回复
  8. 我也一直在用oneinstack。主要是他支持一键ssl部署,并且一键301跳转https。当时的lnmp.org弄了很久都加不上ssl。于是就放弃了 :-) 现在感觉oneinstack是最方便的

    2017年6月27日 10:08来自移动端 回复
    • 是不是证书更新的时候 必须指向主机IP 用CDN不行

      2017年6月27日 10:10 回复
      • 我没有用Let’s Encrypt。我用的自己的comodo。貌似是必须指向自己ip才能部署Let’s Encrypt

        2017年6月27日 10:12来自移动端 回复
        • comodo 是免费的么? 你数据库用的mysql么

          2017年6月27日 10:14 回复
          • 是免费的!Github学生包里免费送的namecheap的comodo证书,数据库是MariaDB10.2和Mysql差不多

            2017年6月27日 10:17来自移动端 回复
            • MariaDB10.2 用什么软件导入数据 也是phpMyAdmin么

              2017年6月27日 10:19 回复
              • 是的 用起来和Mysql没区别,他就是Mysql的修改版

                2017年6月27日 10:20来自移动端 回复
                • 就是什么也不用做修改,把自己网站数据库直接导入MariaDB就可以了么

                  不过php7不支持mysql了 我改成mysqli就行了

                  2017年6月27日 10:21 回复
                  • 是的

                    2017年6月27日 10:22来自移动端 回复
                  • 我也不知道连接方式是啥,装好后直接通过phpMyAdmin导入的

                    2017年6月27日 10:25 回复
    • Qi

      是的,不过LNMP 1.4改进了不少,SSL也可以一键部署了。不过301还得自己去设置。

      2017年6月27日 14:43 回复
  9. HTTP/2的部分一样是自动启用吗
    还是需要手动配置呢? :-)

    2017年6月27日 08:30来自移动端 回复
    • Qi

      自动部署,在Nginx已经有了Http 2了。不需要自己手动设置。

      2017年6月27日 14:44 回复
      • 那很好耶,几乎不需要自己调整

        2017年6月28日 07:12来自移动端 回复
    • 自动启用 很给力的

      2017年6月27日 21:51 回复
  10. qi打算搞IDC了?

    2017年6月26日 23:54 回复
  11. 学习了。打算看下ngx_openresty

    2017年6月26日 22:41来自移动端 回复
    • Qi

      openresty听说是国人搞的?貌似很强大。

      2017年6月26日 22:47 回复
      • 章亦春先生的项目,我找了个简要的概括,就是将你的服务器端应用完全运行于 Nginx 服务器中,充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。个人感觉是效率高,但维护、改动成本也随之提高了。

        2017年6月27日 08:02来自移动端 回复
        • Qi

          有机会去试试看,貌似还不错。

          2017年6月27日 14:44 回复
    • 恩 速度还不错,PHP7.1 加 MYSQL5.5 ,不过PHP7.1已经不支持MYSQL了 ,在连接数据库文件的时候输入mysqli 才能访问的

      网站速度被谷歌广告拖累,不过百度联盟赚不到钱了,就靠谷歌了

      2017年6月26日 23:04 回复
      • 现在mysql和mariadb都用pdo链接

        2017年6月27日 07:59来自移动端 回复
      • Qi

        不支持MysqL?我好像用的是MysqL 5.7,不过在导入数据库发生严重的问题。

        2017年6月27日 14:45 回复
        • 因为PHP7.X废弃了mysql,要求使用mysqli
          导入数据倒是很流畅,怎么还有问题

          2017年6月27日 21:50 回复
          • Qi

            原来用的是MysqL 5.6,貌似有一些不兼容的问题。

            2017年6月27日 22:10 回复
  12. 我的主机也是6月份用OneinStack 安装的,用Let’s Encryp 安装的时候错误

    如果网站本身就有证书,用Let’s Encryp 还能继续按照他的证书么?

    2017年6月26日 21:38 回复
    • Qi

      可以,没有问题。证书之间不影响。

      2017年6月26日 21:59 回复
      • 就是个人来说,收费的Comodo PositiveSSL 三年12美元,是最便宜的了么?
        还有其他便宜收费的证书么,这个免费的感觉操作起来麻烦

        2017年6月26日 22:02 回复
        • Qi

          应该是最便宜的了,而且还是comodo,也就黑五才能抢到。这个免费SSL就是续期要每隔三个月执行一次。不过,用定时任务也能解决。

          2017年6月26日 22:03 回复
          • 2017年6月26日 22:05 回复
            • Qi

              好便宜。以前怎么没有发现

              2017年6月26日 22:17 回复
              • 那个黑色星期五 从哪里买啊

                2017年6月26日 22:19 回复
                • Qi

                  每年在黑五时就会有优惠,就是在圣诞节那段时间。

                  2017年6月26日 22:21 回复
                  • 就是科莫多官网么

                    2017年6月26日 22:22 回复
                    • Qi

                      是的。同时,也可以在namecheap等专门卖SSL的网站上有。

                      2017年6月26日 22:27
                  • 恩,namecheap上面都好贵,我还是用的之前沃通三年免费的,不过百度云加速专业版直接走的科摩多证书,不折腾了,累

                    2017年6月26日 22:30 回复
                    • Qi

                      沃通的SSL不再被信任吧?这家SSL基本上是挂定了。你购买了百度云加速专业版了?

                      2017年6月26日 22:32
                    • 是不被信任了,火狐和谷歌貌似还没事,用了百度云加速专业版,自签名证书都没事,因为节点走的是科摩多证书

                      2017年6月26日 22:34
                    • Qi

                      你的网站证书显示ssl405136.yunjiasussl.com,速度很快。

                      2017年6月26日 22:49
                  • 印象中Comodo这个凭证可以用赛门铁克申请namecheap凭证免费替换,
                    只不过如果要用满三年就需要额外补差额了… :-)

                    2017年6月27日 08:36来自移动端 回复
                    • Qi

                      可以替换也不错。

                      2017年6月27日 14:44
    • 我已经从 https://www.cheapsslshop.com/rapidssl-wildcard 来保护子域名

      2017年6月27日 20:36 回复

Login

欢迎!请登录你的账号。

记住我 忘记密码?

还未注册 注册

Lost Password

Register

返回顶部