OneinStack一键PHP/JAVA/HHVM安装和超详细的VPS手动安装LNMP

VPS主机   2015年11月30日 17:22  

OneinStack一键PHP/JAVA/HHVM安装和超详细的VPS手动安装LNMP

继著名的LAMP Stack(Linux + Apache + MySQL/MariaDB + PHP)网站环境之后,LNMP Stack(Linux + Nginx + MySQL/MariaDB + PHP)以其负载小、静态文件处理能力强的优势,在Linux平台上开始流行,尤其是在配置不太高的VPS上应用广泛。

说起LNMP,多数人应该知道lnmp.org站长开发的LNMP一键安装包,该脚本虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件的安装、重置MySQL root密码、502自动重启等,在国内用户众多,且有官方论坛作为技术支持。

不过,LNMP一键安装包也并非只有lnmp.org一家,本篇文章就来分享一下Linux运维笔记下的一键PHP/JAVA/HHVM安装工具,Linux运维笔记lnmp、lamp、lnmpa一键安装包长年坚持更新,作者博客也有不少原创Linux技术文章和VPS脚本工具,看得出是一个“纯”程序猿。

OneinStack的一键LNMP安装包与lnmp.org站长开发的LNMP一键安装包最大的不同之处就是,多出了支持lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA和lnmh(Linux + Nginx+ MySQL+ HHVM)。

OneinStack一键工具提供多个Tomcat版本(Tomcat-8,Tomcat-7) 和多个JDK版本(JDK-1.8,JDK-1.7,JDK-1.6),支持CentOS 6、7下HHVM安装。如果还有为无法成功配置好Java或者HHVM环境而烦恼的话,OneinStack就可以助你一臂之力。

当然,喜欢手工制作的LNMP,本篇文章就为大家分享一篇四弦博客投稿的超详细的VPS手动安装LNMP的教程,给有折腾精神的朋友参考参考。更多的有关于VPS主机面板可以试试:

OneinStack一键PHP/JAVA/HHVM安装和超详细的VPS手动安装LNMP

一、OneinStack一键PHP/JAVA/HHVM安装

1、OneinStack官网:

  • 1、官方网站:https://oneinstack.com/
  • 2、作者博客:https://blog.linuxeye.com/31.html

2、OneinStack一键PHP/JAVA/HHVM安装代码如下:(阿里云用户可以选择OneinStack阿里云节点,这样速度会更快一些)


yum -y install wget screen    #for CentOS/Redhat 
# apt-get -y install wget screen    #for Debian/Ubuntu 
wget https://aliyun-oss.linuxeye.com/oneinstack-full.tar.gz    #阿里云用户下载 
wget https://mirrors.linuxeye.com/oneinstack-full.tar.gz    #包含源码,国内外均可下载 
wget https://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这样执行

3、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)

4、你安装时可以自己选择。(点击放大)

OneinStack自己选择安装

5、然后你可以根据你自己的需要来安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。(点击放大)

OneinStack安装加速器

6、还有php加解密工具ionCube、ZendGuardLoader ,和Memcached、Redis等。(点击放大)

OneinStack安装PHP解密工具

7、OneinStack一键安装支持升级:./upgrade.sh,提供了Nginx、Tengine、Apache、PHP、MySQL、Redis等升级。(点击放大)

OneinStack升级方法

Ubuntu14.04LTS上的Nginx-1.9.5 + MariaDB-10.1 + PHP-7.0.0RC5网站环境搭建教程

二、编译安装Nginx-1.9.5

1、上面是LNMP一键安装方法,接下来就是关于在Ubuntu-14.04 LTS系统上手动搭建LNMP环境的教程。之所以选择手动搭建环境,无非是为了装逼(大雾)从手动搭建中积累搭建环境的经验,并且享受到一定的乐趣。如果您对这方面感兴趣,又有足够的闲暇时间,不妨一试。

2、首先,到nginx官方下载nginx源码(注:由于本博安装nginx-1.9.5的原因是为了支持HTTP/2协议,所以对于部分不需要SSL的网站,会在本段后给出一个1.8.0的教程)。


cd /usr/local/src
wget https://nginx.org/download/nginx-1.9.5.tar.gz

3、 下载LibreSSL(注:本博使用LibreSSL的目的是支持SSL中使用的ChaCha20-Poly1305流式加密算法,对于使用AES-GCM的站点,也可以使用该SSL库)。


cd /usr/local/src
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.3.0.tar.gz
tar xzf libressl-2.3.0.tar.gz

4、现在,/usr/local/src的目录结构类似这样(以反斜线与缩进显示结构):


usr\
    local\
        src\
            libressl-2.3.0
            nginx-1.9.5

5、 编译准备工作:


apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev
groupadd www
useradd www -g www

6、开始编译nginx:


./configure \ 
--user=www \ 
--group=www  \ 
--prefix=/usr/local/nginx \ 
--with-http_stub_status_module \ 
--with-http_ssl_module \ 
--with-http_gzip_static_module \ 
--with-ipv6 \ 
--with-http_v2_module \ 
--with-openssl=../libressl-2.3.0

7、我所使用的编译参数说明如下:


--user=www \ #指定nginx运行用户
--group=www  \ #指定nginx运行用户组
--prefix=/usr/local/nginx \ #指定nginx安装路径,不用修改
--with-http_stub_status_module \ #开启状态监控模块
--with-http_ssl_module \ #开启SSL
--with-http_gzip_static_module \ #开启Gzip
--with-ipv6 \ #开启ipv6,无v6可去掉
--with-http_v2_module \ #开启HTTP/2
--with-openssl=../libressl-2.3.0 #指定openssl路径

8、建立Makefile完成,开始编译:


make
make install

9、加入环境变量:


vim /etc/environment
#vim操作请自行Google
#在PATH变量的最后加入
:/usr/local/nginx/sbin
#完成后类似于
PATH="/.../:/.../:......:/usr/local/nginx/sbin"
#保存退出
source /etc/environment

10、输入:nginx -v ,显示 nginx 的版本就说明安装成功了。

11、 如果不想安装nginx-1.9.5的话,可以参加此方法安装nginx-1.8.0,操作步骤和上面一样的,代码如下:


cd /usr/local/src
wget https://nginx.org/download/nginx-1.8.0.tar.gz

cd /usr/local/src  
wget https://www.openssl.org/source/openssl-1.0.2d.tar.gz  
tar zxvf openssl-1.0.2d.tar.gz  
cd openssl-1.0.2d  
./config
make
ldconfig

apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev
groupadd www
useradd www -g www

./configure \ 
--user=www \ 
--group=www  \ 
--prefix=/usr/local/nginx \ 
--with-http_stub_status_module \ 
--with-http_ssl_module \ 
--with-http_gzip_static_module \ 
--with-ipv6 \ 
--with-http_v2_module \ 
--with-openssl=/usr/local/src/openssl-1.0.2d

make
make install

vim /etc/environment
#vim操作请自行Google
#在PATH变量的最后加入
:/usr/local/nginx/sbin
#完成后类似于
PATH="/.../:/.../:......:/usr/local/nginx/sbin"
#保存退出
source /etc/environment

nginx -v

三、apt-get快速安装MariaDB-10.1

1、添加MariaDB官方apt源:


sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb https://mariadb.nethub.com.hk//repo/10.1/ubuntu trusty main'
#我的VPS是香港softlayer数据中心 vps.to的VPS,因此,本处添加了HK的apt源,您可以在这里找到更#多的源:https://downloads.mariadb.org/mariadb/repositories

2、apt-get安装MariaDB:


apt-get install mariadb-client mariadb-server

3、安装时会要求输入root密码以及重复密码,按照要求进行。如果需要修改root密码,使用:


/usr/bin/mysqladmin -u root -p 旧密码 新密码

四、编译安装PHP-7.0.0RC5

1、下载PHP-7.0.0RC5源码包:


cd /usr/local/src
wget https://downloads.php.net/~ab/php-7.0.0RC5.tar.gz
tar xzf php-7.0.0RC5.tar.gz

2、安装PHP依赖包:


sudo apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

3、编译PHP:


cd /usr/local/src/php-7.0.0RC5
 ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www --with-fpm-group=www \
--enable-fpm \
--disable-fileinfo \
--enable-mysqlnd \
 --with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-exif \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-inline-optimization \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-ftp \
--with-gettext \
--enable-zip \
--enable-soap \
--disable-debug
make #时间可能较长,我的vps.to VPS花费大约十五分钟
make install

4、添加环境变量:


vim /etc/environment
#在PATH变量的最后加入:
:/usr/local/php/bin
#保存退出
source /etc/environment

5、测试:php -v,输出PHP版本就表示安装成功了。

五、修改nginx、MariaDB、PHP配置文件

1、修改nginx配置文件,建立虚拟主机配置文件夹:


mkdir /usr/local/nginx/conf/vhost

2、编辑nginx.conf,引入所有虚拟主机配置:


vim /usr/local/nginx/conf/nginx.conf
#在最后的}前一行加入
include vhost/*.conf;
#文件头部
user www;
work_process 1;#根据CPU核数设定
#保存退出

3、添加nginx服务,并测试nginx:


wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
service nginx start

4、如果出现Nginx服务器正在启动就表示成功了,最后执行以下代码开机启动:


update-rc.d –f nginx defaults

5、修改MariaDB配置文件,设置MariaDB字符集:


cd /etc/my.cnf.d  
vim server.cnf  
#在[mysqld]段下加入
character-set-server=utf8  
#在[server]段上方输入
[client]
default-character-set=utf8  
#保存退出
service mysql restart

6、修改PHP配置文件,复制默认php.ini文件:


cd /usr/local/src/php-7.0.0RC5
cp php.ini-production /usr/local/php/etc/php.ini

7、关闭display_errors:


vim /usr/local/php/etc/php.ini
#定位到display_errors,设置:
display_errors = Off
#保存退出

8、修改php-fpm配置:


cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf #如果没有则建立该文件
cd php-fpm.d
cp www.conf.default www.conf
vim www.conf
#修改如下项目:
user = www
group = www
listen = /dev/shm/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660
#保存退出

9、建立PHP服务:


cp /usr/local/src/php-7.0.0RC5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults

10、启动php:


service php-fpm start

六、建立虚拟主机

1、由于建立虚拟主机是个比较麻烦的事儿,此处还是借用了oneinstack.com的虚拟主机脚本,使用如下命令即可使用oneinstack包的虚拟主机脚本:


wget https://mirrors.linuxeye.com/oneinstack.tar.gz
tar xzf oneinstack.tar.gz
cd oneinstack
./vhost.sh

2、按提示进行即可建立虚拟主机。(点击放大)

LNMP建立虚拟主机

3、将域名解析到VPS上,进入对应虚拟主机目录,编辑如下PHP文件,或者上传一个PHP探针,然后就能查看到LNMP成功了:

LNMP成功安装

七、VPS手动安装LNMP小结

1、其实,VPS手动安装LNMP还是挺麻烦的,当然它的可定制性也是非常高,对于不想使用LNMP一键安装包的朋友来说,自己手动可以编译最新版本的Nginx、MysqL、PHP等,能够最先体验到新版的性能提升。

2、OneinStack一键PHP/JAVA/HHVM安装包的作者还有不少的实用工具,例如Linux VPS主机挂载硬盘扩容的方法比较复杂,这里有一个自动搜索硬盘并挂载的代码:


wget https://mirrors.linuxeye.com/scripts/auto_fdisk.sh
chmod +x ./auto_fdisk.sh
./auto_fdisk.sh

3、看到如下图就表示已经自动挂载成功了,该方法在阿里云VPS上测试通过,其它的VPS主机都是可以用的。

LNMP自动挂载硬盘

文章出自四弦博客博主,由免费资源部落站长编辑。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

十个便宜VPS主机分享-VPS服务器建站和搭建应用服务体验
2014年六大免费VPS主机-免费VPS申请、使用和点评

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有47 位神马家族成员冒出泡来在农场开始干活了
  • 前排。。。一直用这家的。

    绅士二次元 回复:

    @绅士二次元, 一直用这个的lnmp..第一次沙发

    qi 回复:

    @绅士二次元, 作者一直在更新,不知道怎么了用的人可能不是很多。

    绅士二次元 回复:

    @qi, 一直在作者的群里,从13年就开始用他的脚本。已经2年了。。当初就是看中比lnmp.org的功能多,可定制性强,就用了这个。

    qi 回复:

    @绅士二次元, 遇到问题作者都帮忙解答吗?

    刘先生 回复:

    @qi, 必须解答,

    qi 回复:

    @刘先生, 那还是相当不错的。

    这是农场的第 1 块农田,部落批准 [绅士二次元] 在[2015-11-30 18:10]开垦完成.
  • Kung 23

    HHVM好像很强啊

    qi 回复:

    @Kung, 是的,性能很强。

    这是农场的第 2 块农田,部落批准 [Kung] 在[2015-11-30 18:20]开垦完成.
  • ueu

    比LNMP有优势吗?

    刘先生 回复:

    @ueu, 很有优势 一直在维护更新 群里都是做运维的大拿

    这是农场的第 3 块农田,部落批准 [ueu] 在[2015-11-30 18:44]开垦完成.
  • lke

    安装好麻烦,还是一键安装好。

    这是农场的第 4 块农田,部落批准 [lke] 在[2015-11-30 20:23]开垦完成.
  • YiEcho 3

    来学习一下 :mrgreen:

    这是农场的第 5 块农田,部落批准 [YiEcho] 在[2015-11-30 23:43]开垦完成.
  • Tammy 18

    现在很少用一键包了,我现在喜欢前端VPS自行编译NGINX+后端云计算空间

    qi 回复:

    @Tammy, 博主的博客记得以前是Https的,怎么现在没有了?不过空间速度比以前要快得多了。

    Tammy 回复:

    @qi, 之前加了ssl会转跳openshift的二级域名,然后我就443端口返回403,一直到刚才看到你的提示,我灵感以来解决了

    qi 回复:

    @Tammy, 博主好像Http和Https都可以访问,看了百度对SSL收录的建议,好像说最好将非Https作301跳转。

    qi 回复:

    @Tammy, ssl发表评论失败了。

    Tammy 回复:

    @qi, nginx中的替换规则把https打成http了 :?: ,结果导致ajax不能访问混合内容

    qi 回复:

    @Tammy, 现在正常了。

    这是农场的第 6 块农田,部落批准 [Tammy] 在[2015-12-1 10:53]开垦完成.
  • 这个一键包更新还是很快的,一直在同步更新,可以自由定制,而且功能也多,不过据一些人说占用可能比lnmp.org的大一点,我没有验证。

    qi 回复:

    @初行博客, 只要稳定好用就行了,现在VPS主机的内存都比较大,如果用来建站的话,差个几十MB的内存是不成问题的。Nginx在内存方面还是不错的。

    这是农场的第 7 块农田,部落批准 [初行博客] 在[2015-12-1 12:27]开垦完成.
  • 老鹰主机

    老鹰主机空间限制10g
    10GB Disk Space
    Unlimited Bandwidth
    Unlimited Addon Domains
    Unlimited Emails,
    Litespeed & CloudLinux Enabled
    SSD Powered 现打2.5折17.94美元
    https://my.hawkhost.com/aff.php?aff=7636

    请用优惠码 bfshared2015

    这是农场的第 8 块农田,部落批准 [老鹰主机] 在[2015-12-1 13:04]开垦完成.
  • do

    HHVM还是不错的。

    这是农场的第 9 块农田,部落批准 [do] 在[2015-12-1 13:22]开垦完成.
  • 蛋疼实验室路过。。。
    近期在搞tomcat和node.js,也对,我不缺内存,哈哈哈哈哈哈哈

    qi 回复:

    @不认识, node.js很火,PHP貌似都不被人优待了。

    这是农场的第 10 块农田,部落批准 [不认识] 在[2015-12-1 14:21]开垦完成.
  • 谢谢博主的分享,很实用啊!

    qi 回复:

    @日光博客, 以后不想用LNMP了,可以试试这个脚本。

    这是农场的第 11 块农田,部落批准 [日光博客] 在[2015-12-1 18:50]开垦完成.
  • ooe

    看起来还不错

    这是农场的第 12 块农田,部落批准 [ooe] 在[2015-12-1 20:15]开垦完成.
  • saber 4

    这个听说过,还去作者官博看过,就是没实践过,有时候把VPS重装下看看。

    qi 回复:

    @saber, 可以试一下,这个安装包一直有维护,还算是不错了。

    这是农场的第 13 块农田,部落批准 [saber] 在[2015-12-2 07:50]开垦完成.
  • 刘先生 1

    嘿嘿 意外啊 在这里看见老大的lnmp安装包

    这是农场的第 14 块农田,部落批准 [刘先生] 在[2015-12-2 22:16]开垦完成.
  • cc 2

    作者的PHP7 已更新出来了,博主 要更新了哦。

    qi 回复:

    @cc, 这更新速度很快呀,php7听说性能提升了几倍?都能赶上HHvm了?

    cc 回复:

    @qi, 是的哦。是快2倍。但是国内的程序好多都不支持PHP7.0 discuz 也不行,可悲哦。
    WordPress 可以用的。

    qi 回复:

    @cc, 经过测试,Wordpress完美运行在PHP 7上。

    这是农场的第 15 块农田,部落批准 [cc] 在[2015-12-4 23:16]开垦完成.
  • 赞一个

    这是农场的第 16 块农田,部落批准 [烟花易冷] 在[2015-12-5 20:13]开垦完成.
  • Tofree 1

    在ec2上安装oneinstack,完成后发现无法连接S了。
    一直提示(port 22): Connection failed.
    博主知道是什么原因吗?

    qi 回复:

    @Tofree, 应该是网络不通吧。安装了oneinstack,可以用浏览器打开IP地址吗?

    这是农场的第 17 块农田,部落批准 [Tofree] 在[2015-12-26 10:44]开垦完成.
  • Tofree 1

    不能,安装完成时提示的网址好像ec2的内网地址。重启试过了,还是无法连接*

    qi 回复:

    @Tofree, 能Ping通吗?是不是被Q了?

    这是农场的第 18 块农田,部落批准 [Tofree] 在[2015-12-26 21:49]开垦完成.
  • Tofree 1

    为什么s-s-h这几个字显示不了?

    qi 回复:

    @Tofree, 被系统自动给XX了。

    这是农场的第 19 块农田,部落批准 [Tofree] 在[2015-12-26 21:50]开垦完成.
  • nr 2

    qi,为什么我安装到mysql的时候总是提示error
    2。之前以为是vps的问题,从般瓦工又换到了ramnode,可还是不成功

    qi 回复:

    @nr, 什么错误?Oneinstack有一个适合国外VPS下载安装的地址。

    这是农场的第 20 块农田,部落批准 [nr] 在[2016-4-22 06:11]开垦完成.
  • 为什么我的nginx配置好了,重启总是.html结尾的文件无法访问。

    qi 回复:

    @侯, 可能还是php.ini配置方便的问题,试着把.html也加入到PHP访问页面中看看。

    这是农场的第 21 块农田,部落批准 [] 在[2016-11-29 18:28]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


(Ctrl + Enter提交)   

部落快速搜索栏

热门点击排行榜

网站导航栏

X
返回顶部