有了unRiad后,不停的折腾,因很多应用需要Http服务和PHP环境,也用到MariaDB数据库,之前用了宝塔也用了Apache+PHP这类一体的docker程序,多多少少出现了不匹配的情况,加上搭建在这些环境下的应用每个配置都不一样,没有办法像在非docker环境下开启多端口配置多站点,所以摸索了很长一段时间,终于解决了。现在将搭建过程重现如下。

       因为unRaid的docker应用和插件服务器都在国外,所以不得已还是用了旁路由(作用你懂的),这个时候发现只要一用旁路由,所有设置网络链接是bridge或者新建的bridge的docker程序统统在外网访问不了,所以这里我们所有的docker程序的网络链接均为br0,这样我们可以为每个docker程序指定一个新的单独的IP地址,特别对于nginx来说,内网直接一个ip地址搞定,不需要带任何的端口。
      1、搭建PHP

      首先我们打开unRaid的Docker界面,然后点击“ADD CONTAINER”按钮,这是出现一个新建容器的设置界面,我们可以用附件中的模板导入进去安装,也可以如下图设置:

image.png

      设置好后,我们点击Apply将会弹出一个安装的进度窗体,如果没有任何错误的话,就安装完成了。

      PHP7.3版本安装模板下载:my-php73.rar

      我们发现这时候的PHP没有带pdo_mysql驱动和gd图片功能。我们需要在docker下开启他,因为安装PHP利用指定的版本,一般情况下系统稳定的话我们也不会更新,只要不重新安装PHP,那在docker里面进行的修改也不会问题。

我们打开unRaid的webterminal界面,在里面输入

docker ps

       如下图:
image.png

       在这里我们可以发现php安装后的容器编号或者容器名称,这两个后面都可以用到。接着我们输入命令进入PHP容器内部,

docker exec -it php73 /bin/bash

       这里的php73就是容器的名字,我们也可以换成php容器编号。这个命令运行完,我们就已经进入php的容器内部的bash了
       因为docker版的php内置没有vim,所以我们要先安装一个,如果不安装,也可以用docker cp命令从容器内拷贝到宿主机里修改后再拷贝进去。这里我们就安装vim,以便后面万一要做设置修改使用方便。

apt-get update
apt-get install -y vim

       执行完毕后,如果没有错误,我们的vim就安装好了。
       接着我们安装pdo_mysql、mysqli和gd以及他们需要的依赖包,命令如下

apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
docker-php-ext-install -j$(nproc) gd
docker-php-ext-install pdo_mysql mysqli
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
docker-php-source delete

       以上命令执行完毕后,一般情况下只要不输入错误或无网络故障,都没有任何问题。
       我们可以执行来查看pdo_mysql和gd有没有安装成功。

php -m

      在界面中,我们可以找到pdo_mysql和gd,表示已经安装成功了。
image.png

       接着开始设置php,

cd /usr/local/etc/php
ls

       在这里我们发现没有php.ini文件,里面有php.ini-development和php.ini-production两个文件,顾名思义,一个配置文件是用来开发的,一个配置文件是用来生产的,所以我们用生产的环境,先复制一个php.ini,命令如下:

cp php.ini-production php.ini

       image.png       因为默认的php.ini已经满足要求了,所以我们不需要做任何的设置就ok了。
       文章一开始就说,我们要涉及的每个docker都单独一个ip地址,而php默认的监听端口是9000,地址是本机也就是127.0.0.1,对于外部的IP地址无法监听到,所以我们这里要改监听地址范围。

cd /usr/local/etc/php-fpm.d
ls

       image.png

       我们要编辑的就是www.conf这个文件

vi www.conf

       找到下图中的那行,将listen=127.0.0.1:9000改成0.0.0.0:9000或者9000保存退出。这样对于php部分我们已经完全搞定了。我们输入exit退回到unraid下。
       image.png       2、搭建Nginx

       安装步骤同上面的PHP,我们如下图模仿设置:(注意下图中IP地址可以指定,也可以由系统自动生成,因为后面需要调用这个IP,所以我们根据自己的需要指定IP地址即可。同时网站的根目录wwwroot的路径也根据自己的实际情况设定) 

       image.png

       设置好后,我们点击Apply等待安装。

       Nginx最新版本安装模板下载:my-Nginx.rar 。

       安装好后,我们继续用开unRaid的webterminal界面,在里面输入

cd /mnt/user/appdata/nginx/nginx/site-confs/
ls

       image.png

       图片中的default就是我们要修改的php站点配置。同样我们用vi编辑。该配置文件默认配置一般情况下就可以了,但是对于我们来说,需要有两处修改的地方,如下图
       image.png       第一个圈出来的就是上面我们设置的php的ip地址以及php的监听端口,第二个圈出来的我们要输入php里面wwwroot的绝对路径,上面php安装的时候,我们已经对/var/www/html进行了映射,所以其实就是指向宿主机我们的网页目录。
       这个时候我们就可以的Nginx和php环境就搭建好了,大家可以测试下哦。