1. yum install gcc-c++

开卷本文须求先读书安装FastDFS<准备>

壹 、准备干活:

1、在VMware下安装CentOS(略)

2. yum install -y pcre pcre-devel

一 编写翻译环境

采用工具:

2、若无法上网

3. yum install -y zlib zlib-devel

yum install gcc-c++

1.主流版本的docker,自个儿使用的是 docker 1.91 版本

2.壹 、将网络适配器改为“桥连形式(B):直接连接物理互联网”

4. yum install -y openssl openssl-devel

yum -y install libevent

2.centos的官方docker镜像作为基础镜像

2.2、修改/etc/sysconfig/network-script/ifcfg-eth0文件,将onboot=no
改为onboot=yes

  1. 通过工具FileZilla上传nginx-1.8.0.tar.gz

yum install -y pcre pcre-devel

3.nginx-1.9.12;php-5.5.34;supervisor

2.③ 、重启系统 ->reboot

6. tar -zxvf nginx-1.8.0.tar.gz

yum install -y zlib zlib-devel

思路:

3、使用XSell连接CentOS

  1. 进入解压的目录:cd nginx-1.8.0

yum install -y openssl openssl-devel

了解,docker镜像的炮制有2种方式,一种是开行贰个器皿并在容器里操作,再将容器提交为3个新的镜像;一种是写Dockerfile,然后实施dockerfile由docker给大家一步步自动生成新的镜像;明显第二种艺术更宏伟上,也更契合容器需求不停版本更替的场景。本人在设置nginx和php的时候,更习惯自身下载源码编写翻译安装,所以编写翻译安装那里写Dockerfile实在是麻烦,而且nginx+php并不是要求频发更替版本,常常在炮制容器前,跟开发鲜明好本子号,制作好容器能够间接选择;所以以下小编的操作里,前半某些,nginx和php的设置,小编会在容器里操作;最后让nginx和php同时起步起来,我则是写了3个Dockerfile。

3.① 、最幸而win下安装ssh客户端,那样能够直接copy脚本代码

8.  ./configure

 

二 、制作容器

3.2、查看CentOS的IP ->ifconfig

9.  make install

二 安装libfastcommon

① 、运转一个centos容器作为基础镜像

④ 、中期准备

10. 私下认可安装的目录为 /usr/local/nginx,并且进入cd /usr/local/nginx/sbin

新建目录

docker pull centos

4.1、安装make:yum -y install gcc gcc-c++ automake autoconf libtool make

  1. 鉴于install的目录下的conf/nginx.conf为空,要求这么起步: ./nginx -c
    /usr/local/dev/nginx-1.8.0/conf/nginx.conf 运营

  2. 关闭: ./nginx -s stop

  3. 若需求合作tomcat运转:修改nginx.conf中的server

  mkdir /usr/local/libfastcommon

docker run -it –name nginx centos bash

4.② 、安装wget(若未安装):yum -y install wget

澳门金沙国际 1

解压

贰 、那样就成立了2个以centos的官方镜像为根基的器皿,并进如容器;在容器里用yum安装wget命令和编译安装需求的下令,更新国内yum源,下载Nginx,php源码

4.3、编写翻译安装pcre库:

保存然后重启。

  cd libfastcommon压缩包所在目录

yum install -y wget gcc gcc-c++ make openssl-devel

4.3.壹 、在home目录下创办理文件件夹soft,用于存放下载的安装包:mkdir -p
/home/soft

  1. 在aliyun控制台必要修改安全组,入方向对80端口开发,即可访问。

使用Mac远程访问,ECS不难的装置nginx。  tar -xvf libfastcommon-1.0.36.tar.gz -C /usr/local/libfastcommon

wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

4.3.贰 、切换至该目录:cd /home/soft

编译

wget
http://nginx.org/download/nginx-1.9.12.tar.gz

4.3.三 、下载安装包:wgethttp://ftp.exim.llorien.org/pcre/pcre-8.36.tar.gz

  cd /usr/local/libfastcommon/libfastcommon-1.0.36

wget
https://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
ps:全体pcre版本文件(https://sourceforge.net/projects/pcre/files/pcre)

wgethttp://ftp.exim.llorien.org/pcre/pcre2-10.22.tar.gz

  ./make.sh

wget
http://cn2.php.net/distributions/php-5.5.34.tar.gz

4.3.肆 、解压安装包:tar -zvxf pcre-8.36.tar.gz

  ./make.sh install

3、更新yum源

4.3.五 、切换至该目录:cd pcre-8.36

 

yum update

4.3.六 、写入配置文件:./configure

三 安装FastDFS**

四 、复制源码包到工作目录下

4.3.7、编译:make

新建目录

mv *澳门金沙国际 ,.gz /usr/local/src

4.3.8、安装:make install

  mkdir /usr/local/fastdfs

cd /usr/local/src/

4.④ 、编译安装zlib库:

解压

五 、解压源码包后并剔除,提出删除,删除的指标是决不让最后的镜像过于的大;tar自带参数,解压同时删除,忘记了。。

4.4.一 、切换至安装包目录:cd /home/soft

  cd fastdfs压缩包所在目录

tar xf nginx-1.9.12.tar.gz

4.4.二 、下载安装包:wget

  tar -xvf fastdfs-5.11.tar.gz -C /usr/local/fastdfs

tar xf pcre-8.37.tar.gz

http://zlib.net/zlib-1.2.10.tar.gz

编译

tar xf php-5.5.34.tar.gz

4.4.三 、解压安装包:tar -zvxf zlib-1.2.10.tar.gz

  cd /usr/local/fastdfs/fastdfs-5.11

rm -f nginx-1.9.12.tar.gz pcre-8.37.tar.gz php-5.5.34.tar.gz

4.4.④ 、切换至该目录:cd zlib-1.2.10

  ./make.sh

⑥ 、编写翻译安装nginx:

4.4.⑤ 、写入配置文件:./configure

  ./make.sh install

1)创建nginx用户

4.4.6、编译:make

 

groupadd -r nginx

4.4.7、安装:make install

四 安装fastdfs-nginx-module

useradd -r -g nginx nginx

4.5、下载openssl并安装openssl:

解压

2)编写翻译安装nginx

4.5.① 、切换至安装包目录:cd /home/soft

  cd fastdfs-nginx-module压缩包所在目录

cd nginx-1.9.12/

4.5.贰 、下载安装包:wgethttp://www.openssl.org/source/openssl-1.0.1c.tar.gz

  tar -xvf fastdfs-nginx-module.tar.gz -C /usr/local

./configure –prefix=/usr/local/nginx –user=nginx –group=nginx
–with-http_ssl_module –with-http_stub_status_module
–with-pcre=/usr/local/src/pcre-8.37
make && make install
echo “daemon off;” >> /usr/local/nginx/conf/nginx.conf
#在nginx的配置文件里拉长这一行很重点,那样nginx能够在docker运行的时候在后台运维!

wget

 

七 、编写翻译安装php

4.5.三 、解压安装包:tar -zvxf openssl-1.0.1c.tar.gz,待会配置nginx用到

五 安装Nginx

1)准备php的重视包

4.5.4、安装openssl:yum -y install openssl openssl-devel

新建目录

yum install -y bison bison-devel zlib-devel libmcrypt-devel mcrypt
mhash-devel libxml2-devel libcurl-devel bzip2-devel readline-devel
libedit-devel sqlite-devel
yum -y install libjpeg-devel
yum -y install libpng-devel
yum -y install freetype-devel
yum install libc-client-devel

5、安装nginx

  mkdir /usr/local/nginx

2)编写翻译安装php,假使经过中报错,提醒缺少什么安装包,就用yum安装。ps:可参考文章()

5.一 、切换至安装包目录:cd /home/soft

  mkdir -p /var/temp/nginx

cd php-5.5.34/

5.② 、下载安装包:wgethttp://nginx.org/download/nginx-1.4.2.tar.gz提示不安全的话就换来wget
–no-check-certificatehttp://nginx.org/download/nginx-1.4.2.tar.gz

解压

./configure –prefix=/usr/local/php –with-zlib-dir –with-freetype-dir
–enable-mbstring –with-libxml-dir=/usr/local/libxml –enable-soap
–enable-calendar –with-curl –with-mcrypt –with-zlib –with-gd
–disable-rpath –enable-inline-optimization –with-bz2 –with-zlib
–enable-sockets –enable-sysvsem –enable-sysvshm –enable-pcntl
–enable-mbregex –enable-exif –enable-bcmath –with-mhash –enable-zip
–with-pcre-regex –with-mysql –with-pdo-mysql –with-mysqli
–with-jpeg-dir=/usr/local/libjpeg –with-png-dir=/usr/local/libpng
–enable-gd-native-ttf –with-openssl –with-fpm-user=www
–with-fpm-group=www –with-libdir=lib64 –enable-ftp –with-imap
–with-imap-ssl –with-kerberos –with-gettext –with-xmlrpc –with-xsl
–enable-opcache –enable-fpm –enable-xml –enable-shmop
–enable-session –enable-ctype –with-iconv-dir –with-iconv

最新版   
wgethttp://nginx.org/download/nginx-1.9.9.tar.gz

  cd nginx压缩包所在目录

make && make install

5.③ 、解压安装包:tar -zvxf nginx-1.4.2.tar.gz

  tar -xvf nginx-1.14.0.tar.gz

3)假若编写翻译安装进程中报错,依照报错提醒的去用yum化解依赖关系;假若当前的yum源化解不了,那么能够尝试:

5.四 、切换至该目录:cd nginx-1.4.2

采取configure命令创设Makefile文件 将下边发号施令拷贝进去

wget
http://www.atomicorp.com/installers/atomic

5.伍 、写入配置文件(将nginx安装到/usr/local/nginx目录下):

  cd nginx解压包内部 -> cd /hy/nginx-1.14.0

chmod +x atomic

./configure –sbin-path=/usr/local/nginx \

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src

./atomic

–conf-path=/usr/local/nginx/nginx.conf \

编译

yum install -y XXX XXX

–pid-path=/usr/local/nginx/nginx.pid \

  make

4)准备php配置文件

–with-http_ssl_module \

  make install

cp php.ini-production /etc/php.ini

–with-pcre=/home/soft/pcre2-10.22\

 

cd /usr/local/php/etc

–with-openssl=/home/soft/openssl-1.0.1c

六 配置文件准备

cp php-fpm.conf.default php-fpm.conf

–with-zlib=/home/soft/zlib-1.2.10 \

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

5)修改php配置文件,跟nginx里加一行的效能等同,为了运行docker时,php能够在后台运转

./configure –sbin-path=/usr/local/nginx \

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

;daemonize = yes的笺注去掉,并把yes改为no

–conf-path=/usr/local/nginx/nginx.conf \

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

6)安装php扩展,php的壮大很多,安装方式也都玉溪小异,一下以memcached扩大为例

–pid-path=/usr/local/nginx/nginx.pid \

cp /usr/local/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/

wget
https://pecl.php.net/get/memcache-2.2.7.tgz

–with-pcre=/home/soft/pcre2-10.22\

cp /usr/local/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/

tar xf memcache-2.2.7.tgz

5.6、编译:make

cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

cd memcache-2.2.7

5.7、安装:make install

 

/usr/local/php/bin/phpize

5.8、启动nginx:/usr/local/nginx/nginx

七 配置Tracker

./configure –enable-memcache
–with-php-config=/usr/local/php/bin/php-config –with-zlib-dir

5.玖 、关闭防火墙:

新建目录

在php.ini里添加一行extension=/usr/local/php/lib/php/extensions/memcache.so

5.9.一 、权且(重启失效):service iptables stop

  mkdir -p /home/fastdfs/tracker

7)测试php-fpm启动

5.9.2、永久:chkconfig iptables off

编辑(根据key修改value)

/usr/local/php/sbin/php-fpm -c /etc/php.ini -y
/usr/local/php/etc/php-fpm.conf

5.十 、检查和测试是或不是已正确安装:访问CentOS的IP彰显Welcome to nginx即安装成功!

  vim /etc/fdfs/tracker.conf

ps -ef | grep php-fpm

6、安装php-fpm

# tracker服务器端口(默认22122 一般不修改)
port=22122  
# 存储tracker跟踪服务器日志和数据的根目录
base_path=/home/fastdfs/tracker

8、整合nginx跟php

6.一 、中期安装一堆类库:

启动

修改nginx.conf;这一个能够参考各类网上的素材;上边会给三个事例

yum -y install mhash-devel libxslt-devel \

  /etc/init.d/fdfs_trackerd start

/usr/local/nginx/sbin/nginx -t #自小编批评没布置文件

libjpeg libjpeg-devel libpng libpng-devel \

安装开机自动运营

/usr/local/nginx/sbin/nginx #启动nginx

freetype freetype-devel libxml2 libxml2-devel \

  chkconfig fdfs_trackerd on

玖 、整理,删除,清理yum缓存,退出容器

zlib zlib-devel glibc glibc-devel glib2 glib2-devel \

澳门金沙国际 2

cd /usr/local/src/

bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel \

 

rm -fr *

e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn \

八 配置Storage

make clean

libidn-devel openssl openssl-devel

新建目录

yum clean all

6.2、安装mcrypt:

  mkdir -p /home/fastdfs/storage

exit

6.2.壹 、切换至安装包目录:cd /home/soft

编辑(根据key修改value)

十 、提交容器

6.2.② 、下载安装包:wget
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz(点击下载)

  vim /etc/fdfs/storage.conf

docker commit -m “nginx-php” nginx Tom/nginx:v1

6.2.叁 、解压安装包:tar -vxf libmcrypt-2.5.7.tar.gz

# storage服务器端口(默认23000 一般不修改)
port=23000
# 存储storage存储服务器日志和数据的根目录
base_path=/home/fastdfs/storage
# 第一个存储目录
store_path0=/home/fastdfs/storage
# tracker服务器IP和端口
tracker_server=192.168.0.xxx:22122
# http访问文件的端口(默认8888 看情况修改 和nginx中保持一致)
http.server_port=8888

到此,容器基本就早已构建实现了,接下去正是最关键的地方了,docker奉行的是2个容器跑3个历程的思索,所以运营容器的时候一般也只能运营三个进度大概一个本子;而nginx跟php要能同时工作,需求再在此基础上做些工作!

6.2.④ 、切换至该目录:cd libmcrypt-2.5.7

启动

貌似有二个格局,一种是写剧本,不过自身从不马到成功。。所以笔者用了supervisor,一个方可管理过程的工具。接下来小编会使用Dockefile实现最终的办事

6.2.五 、写入配置文件(将mcrypt安装到/usr/local目录下):./configure
–prefix=/usr/local

  /etc/init.d/fdfs_storaged start

三 、让这些镜像能够跑起来!

6.2.6、编译:make

安装开机自动运转

一 、Dockefile如下:在宿主机下创办多少个nginx目录,并到目录下vim Dockefile

6.2.7、安装:make install

  chkconfig fdfs_storaged on

FROM Tom/nginx:v1

6.3、安装php-fpm:

澳门金沙国际 3

# Install supervisor
  RUN yum install -y python-setuptools
  RUN easy_install supervisor
  ADD supervisor.conf /etc/supervisord.conf
  EXPOSE 80 443
  CMD [“/usr/bin/supervisord”]

6.3.一 、切换至安装包目录:cd /home/soft

 

只要出错换到那些:

FROM Tom/nginx:v1
  # Install supervisor
  RUN yum install -y supervisor
  ADD supervisor.conf /etc/supervisord.conf
  EXPOSE 80 443
  CMD [“/usr/bin/supervisord”]

2、其中supervisor.conf内容为:

[supervisord]
  nodaemon=true

[program:nginx]
  command=/usr/local/nginx/sbin/nginx

[program:php-fpm]
  command=/usr/local/php/sbin/php-fpm -c /etc/php.ini -y
/usr/local/php/etc/php-fpm.conf

3、运行Dockerfile

docker build -t Tom/nginx-php .

到此地,那个镜像就形成了,能够大约的测试一下:

docker run -d –name nginx-php -p 80:80 Tom/nginx-php

下一场用命令docker ps -a
查看下那几个容器是或不是健康运维,要是有毛病,能够docker logs -f nginx-php
查看下那个容器运维在哪儿出了难点。

③ 、nginx-php容器的选用技巧

壹 、创立多少个新的目录

mkdir /data/nginx/{log,php.conf,data,conf} -p

其间log目录小编打算把nginx的日记映射到这一个目录下,php.cof目录作者打算把php的计划文件映射到那么些目录下,data目录笔者打算把网页文件映射到这几个目录下,conf笔者打算把nginx的配置文件映射到那几个目录下

2、nginx.conf示例

worker_processes 1;

events {
    worker_connections 1024;
  }

http {

server {
      listen 80 default_server ;
      server_name test.lala.com ;

location / {
        root /usr/share/nginx/web;
        index index.html index.htm index.php api/login.php;
      }

error_page 500 502 503 504 /50x.html;
      location = /50x.html {
        root /usr/share/nginx/web;
      }

location ~ .php$ {
        root html;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME
/usr/share/nginx/web/$fastcgi_script_name;
        include fastcgi_params;
      }

}

}

daemon off;

叁 、在/data/nginx/conf下准备好nginx.conf 在/data/nginx/php.conf
目录下准备好php.ini和php-fpm.conf ;之后运营容器的时候能够用命令:

docker run -d –name nginx-php -v /etc/localtime:/etc/localtime:ro
–restart=always -p 80:80 -v /data/nginx/log:/usr/local/nginx/logs/ -v
/data/nginx/php.conf/php.ini:/etc/php.ini -v
/data/nginx/php.conf/php-fpm.conf:/usr/local/php/etc/php-fpm.conf -v
/data/nginx/data:/usr/share/nginx/web -v
/data/nginx/conf:/usr/local/nginx/conf/ Tom/nginx-php

④ 、更新nginx下的web文件,直接更新宿主机上/data/nginx/data/目录下的公文

五 、假若要修改nginx的配备文件,直接在宿主机上的/data/nginx/conf目录下修改nginx.conf
;修改形成后,你能够使用下边发号施令:

docker exec nginx-php /usr/local/nginx/sbin/nginx -t
 #自小编批评安排文件是还是不是科学

docker exec nginx-php /usr/local/nginx/sbin/nginx -s
reload        #让容器里的nginx重新读取nginx配置文件

⑥ 、假如要修改php的布署文件,直接在宿主机上的/data/nginx/php.conf目录下修改php.ini恐怕修改php-fpm.conf
;修改达成后要重启容器才能立见成效

docker restart nginx-php

七 、容器里的nginx日志输出映射到了宿主机上的/data/nginx/log目录下

6.3.二 、下载安装包:wget

九 配置Nginx

6.3.叁 、解压安装包:tar -zvxf php-5.4.7.tar.gz

编辑(根据key修改value)

6.3.肆 、切换至该目录:cd php-5.4.7

  vim /etc/fdfs/mod_fastdfs.conf

6.3.⑤ 、写入配置文件(将php安装到/usr/local/php目录下):

# tracker服务器IP和端口
tracker_server=192.168.0.xxx:22122
# url中包含group名称
url_have_group_name=true
# storage.conf -> store_path0
store_path0=/home/fastdfs/storage

./configure –prefix=/usr/local/php –enable-fpm –with-mcrypt \

布局nginx服务器 将下边配置拷贝进去(与原有的server节点同级)

–enable-mbstring –disable-pdo –with-curl –disable-debug \

  vim /usr/local/nginx/conf/nginx.conf

–disable-rpath –enable-inline-optimization –with-bz2 –with-zlib \

    server {
        listen       8888;    #storage.conf -> http.server_port
        server_name  localhost;

        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

–enable-sockets –enable-sysvsem –enable-sysvshm –enable-pcntl \

进入sbin目录

–enable-mbregex –with-mhash –enable-zip –with-pcre-regex \

  cd /usr/local/nginx/sbin

–with-mysql –with-mysqli –with-gd –with-jpeg-dir

启动

6.3.6、编译:make

  ./nginx

6.3.7、安装:make install

澳门金沙国际 4

6.④ 、修改nginx配置文件:

 

6.4.壹 、修改nginx.conf配置文件:vi /usr/local/nginx/nginx.conf

十 测试

//找到该配置音信

编辑(根据key修改value)

#location ~ .php$ {

  vim /etc/fdfs/client.conf

# root html;

# tracker.conf -> store_path
base_path=/home/fastdfs/tracker
# tracker服务器IP和端口
tracker_server=192.168.0.xxx:22122

# fastcgi_pass 127.0.0.1:9000;

利用格式

# fastcgi_index index.php;

  fdfs_upload_file 客户端配置文件地方 上传文件

# fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;

  fdfs_upload_file /etc/fdfs/client.conf
/usr/local/fastdfs/fastdfs-5.11/conf/anti-steal.jpg

# include fastcgi_params;

回去ID表示成功

#}

  group1/M00/00/00/rBJeP1s4PoCAGfkiAABdrZgsqUU790.jpg

//去掉注释,并将”/script” 改为 “$document_root”

澳门金沙国际 5

location ~ .php$ {

用外表浏览器访问

root html;

  

fastcgi_pass 127.0.0.1:9000;

 

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

6.5、配置php-fpm文件:

6.5.1、切换至php目录:cd /usr/local/php/etc

6.5.② 、复制1个安顿音信:cp php-fpm.conf.default php-fpm.conf

7、重启nginx并启动php-fpm

7.1、重启nginx:/usr/local/nginx/nginx -s reload

7.2、启动php-fpm:/usr/local/php/sbin/php-fpm

捌 、测试是或不是安装正确

8.一 、编写测试文件:vi /usr/local/nginx/html/index.php

8.2、写入:

8.3、访问

九 、为nginx和php-fpm添加系统服务

9.1、累加nginx系统服务|添加php-fpm系统服务

相关文章