上一章我们讲了如何购买域名及与IP的绑定,这一章我打算说说服务器的环境配置
系统:CentOS 7
我的环境依赖于Docker
,什么?不知道Docker
?百度去……
注:
我这里开启防火墙
会导致 nginx 502错误,为了不影响后续的操作,建议先关闭防火墙
。
操作防火墙状态后需要重启Docker服务
先从安装Docker
开始:
-
首先切到
root
用户下:[zeronofreya@vultr ~]$ su Password: [root@vultr zeronofreya]#
-
安装
Docker
yum -y install docker
-
启动
Docker
服务systemctl start docker.service
-
配置
Docker
开机自启动systemctl enable docker.service
至此,Docker已经安装完毕……但为了更好地玩耍,我建议一并安装docker-compose
-
安装pip工具
yum -y install epel-release yum install -y python-pip
-
升级pip版本
pip install --upgrade pip
-
安装docker-compose
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
STATUS的状态为Up即代表启动成功。
让我们到浏览器中看一下效果吧:
访问 http://你的域名地址
看到下图就表示成功了
安装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
,如果显示下图,就说明成功了
安装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)第一章
从零开始搭建网站环境(php-yaf nginx mariadb)第二章
从零开始搭建网站环境(php-yaf nginx mariadb)第三章
从零开始搭建网站环境(php-yaf nginx mariadb)番外篇——跨域
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。