在unraid下搭建Nginx+PHP环境
有了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”按钮,这是出现一个新建容器的设置界面,我们可以用附件中的模板导入进去安装,也可以如下图设置:
设置好后,我们点击Apply将会弹出一个安装的进度窗体,如果没有任何错误的话,就安装完成了。
PHP7.3版本安装模板下载:my-php73.rar。
我们发现这时候的PHP没有带pdo_mysql驱动和gd图片功能。我们需要在docker下开启他,因为安装PHP利用指定的版本,一般情况下系统稳定的话我们也不会更新,只要不重新安装PHP,那在docker里面进行的修改也不会问题。
我们打开unRaid的webterminal界面,在里面输入
docker ps
在这里我们可以发现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,表示已经安装成功了。
接着开始设置php,
cd /usr/local/etc/php ls
在这里我们发现没有php.ini文件,里面有php.ini-development和php.ini-production两个文件,顾名思义,一个配置文件是用来开发的,一个配置文件是用来生产的,所以我们用生产的环境,先复制一个php.ini,命令如下:
cp php.ini-production php.ini
因为默认的php.ini已经满足要求了,所以我们不需要做任何的设置就ok了。
文章一开始就说,我们要涉及的每个docker都单独一个ip地址,而php默认的监听端口是9000,地址是本机也就是127.0.0.1,对于外部的IP地址无法监听到,所以我们这里要改监听地址范围。
cd /usr/local/etc/php-fpm.d ls
我们要编辑的就是www.conf这个文件
vi www.conf
找到下图中的那行,将listen=127.0.0.1:9000
改成0.0.0.0:9000
或者9000
保存退出。这样对于php部分我们已经完全搞定了。我们输入exit退回到unraid下。
2、搭建Nginx
安装步骤同上面的PHP,我们如下图模仿设置:(注意下图中IP地址可以指定,也可以由系统自动生成,因为后面需要调用这个IP,所以我们根据自己的需要指定IP地址即可。同时网站的根目录wwwroot的路径也根据自己的实际情况设定)
设置好后,我们点击Apply等待安装。
Nginx最新版本安装模板下载:my-Nginx.rar 。
安装好后,我们继续用开unRaid的webterminal界面,在里面输入
cd /mnt/user/appdata/nginx/nginx/site-confs/ ls
图片中的default就是我们要修改的php站点配置。同样我们用vi编辑。该配置文件默认配置一般情况下就可以了,但是对于我们来说,需要有两处修改的地方,如下图
第一个圈出来的就是上面我们设置的php的ip地址以及php的监听端口,第二个圈出来的我们要输入php里面wwwroot的绝对路径,上面php安装的时候,我们已经对/var/www/html进行了映射,所以其实就是指向宿主机我们的网页目录。
这个时候我们就可以的Nginx和php环境就搭建好了,大家可以测试下哦。