上一篇《使用JAIL自建服务教程之一:JAIL创建和优化》,我们讲到如何创建一个jail,本篇介绍如何在jail里创建一个web服务器,运行环境为apache+mysql+php,并使用https访问。

  一、创建一个jail。

  具体操作按上一篇文章。

  二、安装mysql(以下操作均为ssh连接jail进行)

  1.查看mysql-server最新版本:

pkg search mysql

  2.在这些列出的版本里面选一个你想安装的。我这里选择安装最新的“mysql80-server-8.0.18”。

pkg install mysql80-server-8.0.18

  输入“y”确认安装。

  3.添加开机自动启动

  打开系统配置文件:

nano /etc/rc.conf

  添加mysql_enable=”YES” 然后保存退出。

  4.启动mysql服务

service mysql-server start

  5.设置密码

  进入mysql:

mysql -uroot -p

  默认密码为空,直接按“ENTET”键进入。

    设置密码:

SET PASSWORD FOR 'root'@'localhost' = '**';  //**为你设置的密码

  然后使用“exit”命令退出mysql。

  三、安装apache

  1.安装:

pkg install apache24

  输入“y”确定安装

  2.添加开机自动启动

  打开系统配置文件:

nano /etc/rc.conf

  添加apache24_enable=”YES” 然后保存退出

  3.启动apache服务:

service apache24 start

  这时候会出现一些错误提示,先不用管它。在浏览器中输入网址,能够看到“It works!”说明安装成功。

  四、安装php7

  1.安装:

pkg install php74  mod_php74    //可以用pkg search php7查看最新版本号

  输入“y”后确认安装。

  2.添加开机自动启动

  打开系统配置文件:

nano /etc/rc.conf

  添加php_fpm_enable="YES" 然后保存退出。

  3.启动php服务:

service php‐fpm start

  4.复制php.ini配置文件:

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

  5.修改http配置文件,使apache支持php:

nano /usr/local/etc/apache24/httpd.conf

  查找DirectoryIndex,然后添加成如下样子:

DirectoryIndex index.php index.html 
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

  保存退出。

  6.安装php组件

pkg install php74-curl php74-dom php74-extensions-1.0 php74-fileinfo  php74-gd php74-iconv php74-json php74-mbstring php74-mysqli  php74-opcache php74-openssl php74-pdo_mysql php74-xml php74-zip php74-zlib

  注意:这里的版本号需要改成你安装的php一致的版本。

  7.重启apache

service apache24 restart

  现在在/usr/local/www/apache24/data下编写测试文件info.php文件如下:

<?php  phpinfo()  ?>

  在浏览器输入http://ip/info.php能看到php信息说明配置成功。

  五、配置https

  1.准备证书。网上有免费的证书申请,请自行查找相关教程。我用sslforfree,配合阿里云的域名,很方便,还支持泛域名。唯一不足的是证书有效期只有180天,到期了需要重新申请。下载下来的证书有三个文件:

  使用WinSCP将证书上传到jail中,我放在目录/usr/local/etc/ssl下。

  2.编辑配置文件

  ①编辑“/usr/local/etc/apache24/httpd.conf”文件,找到以下内容并去掉每句前面的“#”。由于此配置文件比较长,在WinSCP中编辑更方便一些。

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include etc/apache24/extra/httpd-ssl.conf
#LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

  ②编辑 “/usr/local/etc/apache24/extra/httpd-ssl.conf” 文件,找到<VirtualHost _default_:443>,修改如下几处:

  3.重启apache24

service apache24 start

  这时候再用https://+域名访问你的站点,就可以看到安全连接了。

  到这里,一个基于apache+mysql+php的web服务器就搭建完成了。

  最后提一下,最后https访问的实现,需要你有一个公网ip和域名,并进行端口转发。如果没有固定公网ip,可以在路由器上使用ddns,这样就可以在外网访问你的站点了。如果这些都没有,你也没有在外网访问的需求,那么也可以使用自签名证书,只不过浏览器会提示不安全连接。

声明:本文为本站【NASGEEK】原创文章,未经许可不得转载!

8 对 “使用JAIL自建服务教程之二:创建web服务器”的想法;

    1. 一般来说应该是要在主路由上设置的。挂在主路由下的设备上使用ddns应该是要看它的程序能不能获取到你的wan口IP,可能各个设备程序不一样吧。

  1. 你好。 请问 service php-fpm start这一步 ,php-fpm始终无法启动。提示如下:
    Performing sanity check on php-fpm configuration:
    [19-Aug-2020 22:59:50] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful

    Starting php_fpm.
    /usr/local/sbin/php-fpm: Undefined symbol “setproctitle_fast@FBSD_1.5”
    [19-Aug-2020 22:59:50] ERROR: no data have been read from pipe
    /usr/local/etc/rc.d/php-fpm: WARNING: failed to start php_fpm
    查了挺多地方,没能找到解决方法。 求教。

    1. 我从来没有遇到你的这个问题。不过我上网搜索了一下,有人跟你出现一样的问题,似乎是创建jail时选择发行版本的问题,你可以重新建立一个jail试试。

      1. 请问下, Freenas.con local.conf 这样的系统文件修改后不能重启系统,不然会被还原,怎么才能不让还原。

  2. 安装的zerotier软件 重启也会没有 更改写入模式 mount -uw / 也还是不行 楼主大人该如何处理

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注