如何通过docker容器安装LNMP服务器环境
安装 系统环境
硬件型号: ThinkPad T520
系统版本: ubuntu 1404
CPU: i7
RAM: 8G
添加软件源
由于Ubuntu源中的最先版本为09无法满足要求,所以需要使用Docker的官方源
添加密钥:
$ sudo apt-key adv --keyserver hkp://keyserverubuntucom:80
--recv-keys \
36A1D7869245C8950F966E92D8576A8BA88D21E9
源地址: deb http://getdockerio/ubuntu docker main
添加源可以通过"软件和更新->其它软件->添加"来操作
添加后执行如下命令:
$ sudo apt-get update
$ sudo apt-get install lxc-docker-111
注: 官方给出的源地址为https连接的,但是总是出现ssl验证失败的错误,最后改为非
ssl连接之后正常
测试
执行如下命令获取容器镜像,创建一个实例并打开一个实例shell
$ sudo docker run -t -i centos:latest /bin/bash
注:第一次运行由于需要下载镜像可能需要多等一会儿
运行成功后会有一个新的shell提示符
制作镜像 要求
web容器安装Nginx+PHP服务
数据库容器安装Mysql服务
web服务和数据库分离
web服务容器可以访问数据库容器
制作nginx+php镜像
启动一个容器实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装nginx与PHP:
Nginx可以使用源码或rpm包进行安装,PHP可以使用源码或yum安装具体安装和配置这里
不进行具体讲述
注:需要把nginx与php-fpm添加到系统服务中并设置开机启动
我设置的站点根目录为/opt/web
退出shell并执行如下命令制作镜像:
$ sudo docker commit -m="web service image nginx+php" -a="username" \
sudo docker ps -lq username/web:v1
这是一个组合命令:
sudo docker commit根据已有实例制作镜像
sudo docker ps -lq返回最后一个运行的实例id
已有镜像可以使用sudo docker images 查看
至此创建了第一个镜像 username/web:v1
制作mysql镜像
启动实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装Mysql
设置Mysql服务开机启动:
$ chkconfig mysqld on
启动mysql
修改mysql登陆权限:
mysql> grant all privileges on to 'root'@'%'
identified by 'dbpasswd';
mysql> flush privileges;
mysql服务默认只能本地连接,制作镜像的时候需要注意否则是无法连接到数据库的
退出shell并执行如下命令制作mysql容器镜像:
$ sudo docker commit -m="mysql service image" -a="username" \
sudo docker ps -lq username/mysql:v1
清除不再需要的实例:
$ sudo docker rm sudo docker ps -aq
启动并关联实例
web实例依赖与mysql,所以先打开一个mysql实例:
$ sudo docker run -d --name db username/mysql:v1
/sbin/init
-d参数是让实例以dameon的形式运行 /sbin/init是创建实例后执行的操作,此处为初
始化系统服务,包括运行mysql
启动web实例并与数据库实例进行关联:
$ sudo docker run -d --name web --link db:db -p 8080:80 -v /path/to/src:/opt/web username/web:v1 /sbin/init
--link参数设置关联的容器,可以设置多个关联之后会自动更新web容器的host,把db
的地址指向到数据库容器的地址
-p 参数用来进行ip映射此处把容器的80端口映射到了本地的8080端口web服务可是
通过localhost:8080访问
-v 参数把数据挂载到容器指定目录此处为把站点源码目录挂载到容器的站点目录
在web容器中访问数据库容器的mysql服务可以使用db这个主机地址
1、假设论坛服务器在自己的计算机安装服务器操作系统如win2003 win2008 等。
2、配置服务器,并安装aspnet所需对应服务。如打开IIS服务,安装SQL Server 2005 ,Microsoft Visual Studio 2005等软件。
3、软件环境好了,接下来看你的上网方式。稳定的服务器一般使用静态IP地址和带宽,选择所在地区最好的出口,但这成本对于个人比较高。家庭用户动态IP地址则受网络运营商限制,不一定能做服务器使用(比如我们这就是,在电信网通都封掉了动态IP做服务器的可能性,不在同一个城市,根本访问不了)。动态IP可以通过动态域名解释软件如花生壳之类的,来绑定域名。当然,也可以通过直接访问IP地址来访问。
4、如果家里边使用路由,要在自己的路由上边设置端口映射。
在windows下安装apache php mysql
从各官方网站下了APACHE2050、PHP5、MYSQL4020、PHPMYADMIN257
apache_2050-win32-x86-no_sslmsi
php-500-Win32zip
mysql-4020d-winzip
phpMyAdmin-257zip
系统 win2003 系统盘为: D盘
第一步: 安装apache 并配置支持PHP
点击安装文件apache_2050-win32-x86-no_sslmsi
将apache安装在 D:\apache2 目录(随自己喜好)下
将php-500-Win32zip 里内容解压到 D:\php 里
找到 php目录里的 phpini-dist 重命名为 phpini 并拷到 windows目录里(win2k 里为winnt)
如我的phpini是拷到 D:\windows目录
再将php目录里的 php5tsdll,libmysqldll 拷到 系统目录(system/system32) 如我的是D:\windows\system里
配置apache里的httpdconf
打开 D:\Apache2\conf\httpdconf 这个文件
找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 (让默认语言编码为简体中文)
找到 DocumentRoot "D:/Apache2/htdocs" 将其改为你的WEB目录(可不改)如我的为 DocumentRoot "D:/website"
找到 DirectoryIndex indexhtml indexhtmlvar 在后面加入 indexhtm indexphp
选择安装模式: 模块化模式安装 或 CGI模式安装 (选一样即可)
--------------模块化安装配置------------------------------------
找到 #LoadModule ssl_module modules/mod_sslso 这行,在此行后加入一行
LoadModule php5_module d:/php/php5apache2dll
其中d:/php/php5apache2dll 为你php目录中php5apache2dll所在的位置
找到 AddType application/x-gzip gz tgz 这行,在此行后加入一行
AddType application/x-httpd-php php
---------------------------------------------------------------
--------------CGI安装配置--------------------------------------
找到 AddType application/x-gzip gz tgz 这行,加入如下即可
ScriptAlias /php/ "d:/php/"
AddType application/x-httpd-php php
Action application/x-httpd-php "/php/php-cgiexe"
---------------------------------------------------------------
此时PHP环境基本已经配置成功
在WEB根目录(如我的D:\website)里建一个名为testphp的文件内容如下
< echo phpinfo(); >
重新启动apache服务
用浏览器打开 http://localhost/testphp
如果可以看到php配置输出信息就OK了
你只问了搭建php服务器啊。
安装须知
1、此安装包可在阿里云所有linux系统上部署安装,此安装包包含的软件及版本为:
nginx:1015、125、144
apache:2222、242
MySQL:5173、5535、5615
php:5318、5423、557
php扩展:memcache、Zend Engine/ OPcache
ftp:(yum/apt-get安装)
phpwind:87 GBK
phpmyadmin:418
2、请使用最新的一键安装包脚本安装,以前老版本都存在bug,会导致安装异常以及安装的环境混乱。
3、执行一键安装包(/installsh),会自动清理之前一键安装包安装过的环境。
如果您已经安装过一键安装包,再次执行安装,如若有重要数据,请自行备份/alidata目录。
4、一键安装包会将软件安装在/alidata目录下。
如果您的系统不存在数据盘,则一键安装包会将软件安装到系统/alidata目录下。
如果您的系统存在数据盘,且还没有格式化挂载数据盘。则一键安装包会自动帮您格式化第一块数据盘,并挂载在/alidata目录下。
如果您的系统存在数据盘,且已格式化并挂载了第一块数据盘。一键安装包会将第一块数据盘再次挂载到/alidata目录下,并不影响您之前的挂载目录的使用。比如下图所示,安装前,已经挂载了mnt目录。安装后,一键安装包再次挂载/alidata目录。
如果您的系统存在数据盘,且已格式化数据盘,但没有挂载数据盘。一键安装包会将第一块数据盘挂载到/alidata目录下。
5、怎么样卸载一键安装包?
可以执行以下命令完成卸载:
chmod 777 -R sh-130/
cd sh-130/
/uninstallsh
好了,下面来进行我们详细的安装步骤,come on ~~!
首先准备好连接linux服务器的工具,推荐用xshell和xftp。
xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。
下载地址:http://wwwnewhuacom/soft/36383htm
Xftp 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。
下载地址:http://wwwnewhuacom/soft/143htm
根据上面提供的下载地址,首先安装xshell(基本上是点击Next直至安装 完成):
点击Next-->此时选择“free for Home/School”(免费版)。
再点击Next-->Next-->Next-->install即可安装(还可以选择xshell安装后的语言环境,熟悉英文的朋友,可以选择English选项)。
点击finish完成xshell的安装。
然后我们可以看到以下界面。
接下来安装xftp(用于上传文件到linux服务器的小工具),安装xftp也是非常的简单,基本上也点击Next直至安装完成。
点击Next -->此时选择“free for Home/School”,(免费版)。
录点击Next -->Next -->Next-->install (还可以选择xshell安装后的语言环境,熟悉英文的朋友,可以选择English选项)。
点击finish完成安装。
然后我们可以看到以下界。
然后我们打开xshell, 设置云服务器登录信息。
设置服务器帐号密码。
设置字符集编码(如果不设置字符集编码,则中文字符将会在xshell中显示为乱码)。
设置好了就点击ok保存。
一切准备就绪,让我们连接看看云linux服务器的庐山真面目吧!
黑不隆冬的,啥都没有,这就是linux的shell啦。shell(壳)到底是什么东东呢?
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
linux作为服务器专用操作系统,主要就是默默的待在机房提供各项网络服务的,为了节省系统资源,像windows那样华丽丽的用户桌面就默认不加载了。当然现在越来越多的用户使用linux作为日常家庭办公用操作系统,所以就有了像gnome、kde这样超华丽的桌面。不过作为服务器使用还是推荐用命令行界面吧,毕竟省一点资源,网站打开可能会更快一点嘛!
打下面的命令去主目录(/home)看下
输入命令:cd
用xftp上传环境安装文件。
回到shell界面,用ll命令看下情况
输入命令:ll
是不是多了一个sh-130目录,130是我们的一键安装包的版本号。 请下载最新的版本安装,版本更新介绍,我们可以在changelog中查看。也希望大家多多反馈对于一键安装包的意见。(另外,熟悉linux的朋友,直接可以用wget命令下载我们的安装包,也不用安装Xftp,这样更加便捷。)
接下来按照说明,分步骤敲入安装命令(以下为redhat系统下安装示例)。
输入命令:chmod –R 777 sh-130
cd sh-130
/installsh
出现了一个选择提示,进入web服务器的选择界面。
这里您可以根据需要选择apache或者nginx服务器,这里是2个服务器的介绍:
apache:http://baikebaiducom/view/28283htm
nginx:http://baikebaiducom/view/926025htm
引用:
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx
0846 + PHP 5214 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
这里我们选择nginx,输入1,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择nginx)
然后我们再选择要安装的nginx的版本(如果web服务器选择的是apache,这里提示信息则是要安装apache的版本),总共有1015/125/144三个版本可以提供我们选择,这里我们选择125版本,则输入2,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择1015版本)
然后我们再选择要安装的php的版本,总共有5318/5423/557三个版本可以提供我们选择,这里我们选择557版本,则输入3,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择5318版本)
然后我们再选择要安装的mysql的版本,总共有5173/5535/5615三个版本可以提供我们选择,这里我们选择5173版本,则输入1,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择5173版本)
然后可以看到我们刚才选择的版本如下,我们输入y或者Y进行安装。
到这里,我们就正式进入环境安装环节了。你可以泡杯茶休息下。一般这个过程会持续半个小时的样子。
注意:
1、请在网络通畅的情况下进行安装,不要强行终止安装过程(强行关闭安装窗口或者ctrl+c强行终止安装进程),则会导致安装失败,以及出现不可预知的安装异常!
2、安装前,最好能跟系统盘打上快照,如果异常,方便回滚系统。
为了防止断掉和服务器的连接,可以新开一个shell窗口,将鼠标挪到窗口标签栏,右击,如下图所示:
可以看到,新开了一个窗口。
输入top命令
可以看到一直在跳动的系统资源统计。
好了。做完了这一些就让我们静静的等待吧!程序正在自动编译安装服务!
到这个界面说明安装已经结束了,我们可以输入以下命令再次验证是不是已经安装成功:
输入命令 :netstat -tunpl
我们可以看到正在运行状态的服务及端口:9000端口是php进程服务,3306端口是mysql服务,80端口是nginx服务,21端口是ftp服务。
如果看到以上信息,则说明安装没有异常。这里有一点需要注意的是,如果您选择安装的是apache,则没有上面的9000端口。为什么选择安装的是apache,就没有9000端口的php进程服务呢?这是因为nginx+php集成方式与apache+php集成方式不同,感兴趣的朋友可以自己入研究一下,这里就不再介绍。
大家有疑问了。那我怎么登录ftp和mysql呢?
在命令行里输入: cat accountlog
看到了没
ftp的用户名是:www
mysql的用户名是:root
密码就在屏幕上了!
另外我们也可以cat /alidata/website-infolog中查看到刚才安装软件的版本信息。
好了。所有配置都已经完成了。是不是很简单!
接下来我们可以访问一下一键安装包默认安装的phpwind论坛以及phpmyadmin。
直接在浏览器中输入您的域名或者ip,如果是第一次访问phpwind,则会自动跳转到安装页面。
如果访问的时候卡主,不出来页面,则检查一下防火墙,并自行设置或者关闭防火墙。
点击“接受”进行安装。
然后选择数据库类型为mysql,数据库用户名和数据库密码填写accountlog中的用户名和密码。然后根据自己的要求,设置好数据库名、管理员账号和密码等。
填写好信息后,点击下一步完成安装。
接下来我们访问phpmyadmin,在浏览器中键入我们的域名或者ip+phpmyadmin路径,即可访问我们安装的phpmyadmin。
输入mysql用户名以及密码,即可登录。
最后我们就可以在这里面操作管理我们的mysql啦。
0条评论