上一章咱們講了如何購買域名及與IP的綁定,這一章我打算說說服務器的環境配置
系統:CentOS 7php
個人環境依賴於Docker
,什麼?不知道Docker
?百度去……html
注:
我這裏開啓防火牆
會致使 nginx 502錯誤,爲了避免影響後續的操做,建議先關閉防火牆
。
操做防火牆狀態後須要重啓Docker服務
Docker
開始:首先切到root
用戶下:python
[zeronofreya@vultr ~]$ su Password: [root@vultr zeronofreya]#
安裝 Docker
mysql
yum -y install docker
啓動 Docker
服務nginx
systemctl start docker.service
配置 Docker
開機自啓動sql
systemctl enable docker.service
至此,Docker已經安裝完畢……但爲了更好地玩耍,我建議一併安裝docker-compose
docker
安裝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 "$_"
在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
在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
STATUS的狀態爲Up即表明啓動成功。
讓咱們到瀏覽器中看一下效果吧:
訪問 http://你的域名地址
看到下圖就表示成功了
進入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
,若是顯示下圖,就說明成功了
在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
好了,環境大體上搭完了。
未完待續……