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面板的一些心得与体会,更多的关于建站软件与建站工具,你可以看看:
PS:更新记录:
1、最新的Oneinstack安装和建站方法请查看:Oneinstack安装与配置PHP 8.1和MySQL 8.0-Oneinstack建站新手教程 2022.6.18
2、想了解更多的关于Oneinstack建站的教程,请查看专题:Oneinstack从入门到精通-Oneinstack安装与使用教程收集整理 2020.9.20
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。
接着会要求你选择MysqL数据库版本,5.7版本在性能上有所提升,但是有些程序可能无法兼容MysqL 5.7以下,请谨慎安装与使用。
最后就是选择安装PHP的版本,还有各种组件,包括了缓存ZendOPcache、xcache、apcu、eAccelerator;php加解密工具ionCube、ZendGuardLoader ;还有Memcached、Redis等等。
这是OneinStack安装成功的界面。
打开你的IP,你就可以看到OneinStack默认页面了,这里会有探针、PHPmyAdmin等,直接点击就可以打开了。建议在正式生产环境中将此页面重命名或者直接删除,防止被人利用。
首先,如果你自己没有购买证书的话,可以先安装OneinStack提供的Let’s Encrypt申请部署组件,执行命令:./addons.sh,选择Let’s Encrypt安装。
接着,到你的域名DNS管理处,将域名的A记录解析到服务器上,因为我们在申请Let’s Encrypt证书时需要验证域名,如果没有解析会出失败的情况。
然后,你就可以执行命令:./vhost.sh,开始添加新的虚拟主机了。下面的配置是绑定wzfou.net域名,同时将www跳转到非www的,其它的文件目录都是默认,在最后一项选择安装Let’s Encrypt。
最后,选择OneinStack提供的默认URL重写规则,自带了Wordpress、DZ、typecho等热门程序。这是OneinStack添加虚拟主机成功的界面。
打开你的域名,这时你就可以看到Https站点已经部署成功了。
经过测试,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
第一个问题: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没有PHP mail,你需要自己安装postfix或者使用第三方的SMTP如sendcloud、Amazon SES、MailGun等发送。
文章出自:挖站否 https://wzfou.com/oneinstack/,版权所有。本站文章除了注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: 2022年6月16日 下午8:26
查看评论
从2点安装 45 分钟 选择了二进制 (自动安装)
然后各种这个https申请 搞了半天 才懂 到刚刚终于创建好了
第一次不用面板安装 真的是不习惯
慢慢地就好了,哈哈。
它的组件是优化过的还是原生?现在有【自动安装】了,选二进制安装还是源码编译安装(也可无人值守无需操作么)
选择源码编译吧,这样好一些。组件已经经过优化处理。
oneinstack这个安装Nginx是编译安装还是直接安装?
是编译的。
最早看到oneinstack的时候经常记成openstack
OneinStack也是后来才出现的,之前一直是作者的一个脚本包,后来才独立出来一个网站提供专题下载。OneinStack有免费存储吗?
你的IDC是主要卖虚拟主机还是VPS,还是,呢
都卖,哈哈。
还没有想好,技术不成熟。
看到文章下面的“本文作者”这块,我在想,是不是还有其它作者呢
后期会加入多个作者
博主,可以换个友链吗?分享屋 http://www.fenxiangwu.net/
谢谢支持。已经添加。
谢谢Qi
那个网易云跟贴没有未登录就能评论的功能吗?
只能给登录的访客留言...
搜狐畅言也是
那就不好了,有些不想登陆就不能评论了。
:-) :-) 是的 必须登录
我也一直在用oneinstack。主要是他支持一键ssl部署,并且一键301跳转https。当时的lnmp.org弄了很久都加不上ssl。于是就放弃了 :-) 现在感觉oneinstack是最方便的
是的,不过LNMP 1.4改进了不少,SSL也可以一键部署了。不过301还得自己去设置。
是不是证书更新的时候 必须指向主机IP 用CDN不行
我没有用Let’s Encrypt。我用的自己的comodo。貌似是必须指向自己ip才能部署Let’s Encrypt
comodo 是免费的么? 你数据库用的mysql么
是免费的!Github学生包里免费送的namecheap的comodo证书,数据库是MariaDB10.2和Mysql差不多
MariaDB10.2 用什么软件导入数据 也是phpMyAdmin么
是的 用起来和Mysql没区别,他就是Mysql的修改版
就是什么也不用做修改,把自己网站数据库直接导入MariaDB就可以了么
不过php7不支持mysql了 我改成mysqli就行了
我也不知道连接方式是啥,装好后直接通过phpMyAdmin导入的
是的
链接方式你选的PDO么
HTTP/2的部分一样是自动启用吗
还是需要手动配置呢? :-)
自动启用 很给力的
自动部署,在Nginx已经有了Http 2了。不需要自己手动设置。
那很好耶,几乎不需要自己调整
qi打算搞IDC了?
是的。