从零开始搭建网站环境(php-yaf nginx mariadb)第二章

上一章咱们讲了如何购买域名及与IP的绑定,这一章我打算说说服务器的环境配置

系统:CentOS 7php

个人环境依赖于Docker,什么?不知道Docker?百度去……html

注:
我这里开启 防火墙会致使 nginx 502错误,为了避免影响后续的操做,建议先 关闭防火墙
操做防火墙状态后须要重启Docker服务

先从安装Docker开始:

  • 首先切到root用户下:python

    [zeronofreya@vultr ~]$ su
    Password:
    [root@vultr zeronofreya]#
  • 安装 Dockermysql

    yum -y install docker
  • 启动 Docker 服务nginx

    systemctl start docker.service
  • 配置 Docker 开机自启动sql

    systemctl enable docker.service

至此,Docker已经安装完毕……但为了更好地玩耍,我建议一并安装docker-composedocker

  • 安装pip工具segmentfault

    yum -y install epel-release
    yum install -y python-pip
  • 升级pip版本浏览器

    pip install --upgrade pip
  • 安装docker-composebash

    pip install -U docker-compose

OK,准备工做作好了

安装环境

在根目录新建文件夹docker方便管理(固然你也能够在你喜欢的地方创建)

mkdir /docker && cd "$_"

安装php

  • 在docker文件夹下创建php文件夹并进入

    mkdir php && cd "$_"
  • 新建并编辑 docker-compose.yml 文件

    vi docker-compose.yml

    内容为:

version: "3.5"

networks:
  zf_site_network:
    name: zf_site_network

services:
  php:
    container_name: php
    image: php:7.2-fpm
    privileged: true
    ports:
      - "9000:9000"
    restart: always
    volumes:
      - /docker/www:/usr/share/nginx/www
    networks:
      - zf_site_network
    environment:
      - TZ=Asia/Shanghai
  • 启动php容器

    docker-compose up -d
  • 挂载配置文件(php.ini)

    • 新建conf文件夹

      mkdir conf
    • 复制php.ini到conf

      docker cp php:/usr/local/etc/php/php.ini /docker/php/conf
    • 挂载conf目录——编辑docker-compose.yml

      vi docker-compose.yml
volumes:
    - /docker/www:/usr/share/nginx/www

改成:

volumes:
  - /docker/www:/usr/share/nginx/www
  - /docker/php/conf:/usr/local/etc/php
  • 从新建立php容器

    docker-compose up -d

安装Nginx

  • 在docker文件夹下创建nginx文件夹并进入

    cd /docker
    mkdir nginx && cd "$_"
  • 新建并编辑 docker-compose.yml 文件

    vi docker-compose.yml

    内容为:

version: "3.5"

networks:
    zf_site_network:
        name: zf_site_network

services:
    nginx:
        container_name: nginx
        image: nginx
        privileged: true
        ports:
            - "80:80"
            - "443:443"
        restart: always
        volumes:
            - /docker/www:/usr/share/nginx/www
            - /docker/nginx/conf:/etc/nginx/conf.d
        networks:
            - zf_site_network
        environment:
            - TZ=Asia/Shanghai
  • 编辑nginx配置文件

    • 在nginx文件夹下创建conf文件夹并进入

      mkdir conf && cd "$_"
    • 新建配置文件

      vi 你的域名_80.conf
      好比 vi zeronofreya.online_80.conf, 文件名能够随意起,但为了查找方便,建议统一格式

      内容为:(注意修改)

server {
    listen        80;
    server_name  你的域名;
    root   网站根目录;
    location / {
        index index.php index.html;
    }
     if (!-e $request_filename) {
         rewrite ^/(.*)  /index.php/$1 last;
    }
    location ~ \.php(.*)$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}
  • 创建网站目录

    cd /docker
    mkdir www && cd "$_"
    echo "<?php phpinfo(); ?>" > info.php
    网站目录能够随意选位置
  • 启动nginx容器

    docker-compose up -d
注:php必定要先于nginx启动,由于nginx配置文件中用到了 fastcgi_pass php:9000;,这个php指的就是容器名(container_name)

不出意外的话,php及nginx应该都启动成功了,能够查看一下:

docker ps -a

09.png
STATUS的状态为Up即表明启动成功。

让咱们到浏览器中看一下效果吧:
访问 http://你的域名地址
看到下图就表示成功了
10.png

安装Yaf扩展 (总归要有一个框架吧)

  • 进入php容器

    docker exec -it php /bin/bash
  • 安装Yaf

    pecl install yaf
  • 退出容器

    exit
  • 编辑php.ini 在最底部(头部)添加Yaf配置,注意格式

    vi /docker/php/conf/php.ini
    [Yaf] 
    extension=yaf.so 
    yaf.environ="product"
  • 重启php容器

    docker restart php

刷新下浏览器,按Ctrl+F查找yaf,若是显示下图,就说明成功了
11.png

安装mariadb

  • 在docker文件夹下创建mariadb文件夹并进入

    cd /docker
    mkdir mariadb && cd "$_"
    mkdir db
  • 新建并编辑 docker-compose.yml 文件

    vi docker-compose.yml

    内容为:(注意修改密码)

version: "3.5"

networks:
  zf_site_network:
    name: zf_site_network

services:
  mariadb:
    container_name: mariadb
    image: mariadb
    privileged: true
    ports:
      - "3306:3306"
    restart: always
    volumes:
      - /docker/mariadb/db:/var/lib/mysql
    networks:
      - zf_site_network
    environment:
      - MYSQL_ROOT_PASSWORD=密码
      - TZ=Asia/Shanghai
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • 启动mariadb容器

    docker-compose up -d

好了,环境大体上搭完了。

未完待续……

目录:
从零开始搭建网站环境(php-yaf nginx mariadb)第一章

相关文章
相关标签/搜索