從零開始搭建網站環境(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)第一章

相關文章
相關標籤/搜索