##前言 Waterhole是由Flarum创始人及前首席开发者"Toby"打造的全新论坛系统，所以二者在风格上十分相像。需要注意的是，Waterhole可免费在开发环境中使用，但您需要购买许可证才能在生产环境中使用它。费用为每个站点299美元，包含一年的更新与基础支持，此后的更新与支持费用为99美元/年。有关Flarum的搭建，请参照本博客文章：[宝塔面板（aaPanel）搭建Flarum][1]。 参考资料：[安装文档 - Waterhole Docs][2] ##环境要求 - 像 Nginx 或 Apache 这样的 Web 服务器 - PHP 8.2+ 具有以下扩展：dom、gd、json、mbstring、openssl、pdo_mysql、tokenizer - MySQL 8.0.23+ 若低版本MySQL不便卸载，则可使用`MySQL多版本管理(Docker应用)`，来同时运行多个版本MySQL。 ##PHP配置 ###扩展安装 在正式安装Waterhole前，先给PHP安装上fileinfo扩展。 否则在安装wh过程中会报错如下： ``` Problem 1 - waterhole/core[v0.4.0, ..., v0.4.7] require intervention/image ^2.5 -> satisfiable by intervention/image[2.5.0, ..., 2.7.2]. - intervention/image[2.5.0, ..., 2.7.2] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension. - waterhole/core v0.4.8 requires hotwired-laravel/turbo-laravel ^2.0.0-beta5 -> found hotwired-laravel/turbo-laravel[2.0.0-beta5, 2.x-dev] but it does not match your minimum-stability. - Root composer.json requires waterhole/core ^0.4 -> satisfiable by waterhole/core[v0.4.0, ..., v0.4.8]. ``` ---------- 安装fileinfo扩展过程中，可能出现错误： ``` configure: error: in `/www/server/php/83/src/ext/fileinfo': configure: error: C preprocessor "/lib/cpp" fails sanity check See `config.log' for more details ``` 解决办法是安装glibc-kernheaders ``` yum -y install glibc-kernheaders ``` 参考资料：[configure: error: C preprocessor “/lib/cpp“ fails sanity check错误解决办法][3] ###解除函数禁用 需要解除的三个函数为：putenv()、symlink、proc_open() 宝塔面板位置：软件商城——已安装的PHP——禁用函数 找到上述三个函数，并删除。 ##安装配置 ###网站创建 在宝塔中创建站点，同步创建Mysql。 ###创建Waterhole项目 Cd到站点根目录`/www/wwwroot/yourdomain.com` 通过运行以下Composer命令创建新的Waterhole项目： ``` composer create-project waterhole/waterhole . ``` ![2024-04-24T15:44:35.png][4] 创建完成。 ###配置数据库 上述命令运行完毕后，编辑新Waterhole安装根目录下.env文件。此文件包含环境配置设置，例如您的社区名称、URL 和数据库详细信息。有关详细信息，请参阅[配置][5]。若要启动并运行，请填写以下值： - APP_NAME ：您的社区名称 - APP_URL ：Waterhole安装的根URL - DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD等数据库详细信息 确保任何包含空格的值都用双引号括起来，例如： ``` APP_NAME="My Great Community" ``` ###配置Web服务器 ####设置运行目录 将网站运行根目录设置为/public目录 若为宝塔面板，则在`网站设置——网站目录——运行目录`中设置/public为运行目录。 或在`配置文件`中，修改root行为`root /www/wwwroot/yourdomain.com/public;` ####配置伪静态 配置Web服务器以将所有请求路由到该public/index.php文件。 对于Nginx服务器，Waterhole已有一个包含URL重写规则以及实践性能配置的文件`.nginx.conf`。 我们可以将下述代码直接添加在`配置文件`的root行下方： ``` include /path/to/waterhole/.nginx.conf; ``` ![屏幕截图 2024-04-24 235600.png][6] 详情：[有关伪静态配置更多说明 - Waterhole][7] ###配置权限 前往站点根目录`/www/wwwroot/yourdomain.com`，设置权限为755，并应用至全部子文件夹。 ![屏幕截图 2024-04-25 000904.png][8] 若仍有类似于权限或文件访问的错误，请尝试赋予/storage文件夹777权限。 ###运行安装程序 现在一切都已经配置好了，最后一步是运行Waterhole安装命令。这将创建Waterhole数据库表，设定一些初始数据的种子，并提示您创建管理员帐户。 ``` php artisan waterhole:install ``` ![屏幕截图 2024-04-25 003513.png][9] 安装过程会注册你的管理员账号，结束后，安装告成！ 此时你就可以通过URL访问waterhole站点了。 ![屏幕截图 2024-04-24 223225.png][10] [1]: https://bluish.net/archives/2041/ [2]: https://waterhole.dev/docs/main/installation [3]: https://blog.csdn.net/zhongguootngxu/article/details/120673363 [4]: https://bluish.net/usr/uploads/2024/04/2164220924.png [5]: https://waterhole.dev/docs/main/configuration [6]: https://bluish.net/usr/uploads/2024/04/3135394611.png [7]: https://waterhole.dev/docs/main/deploying#web-server-configuration [8]: https://bluish.net/usr/uploads/2024/04/3920033751.png [9]: https://bluish.net/usr/uploads/2024/04/3718765389.png [10]: https://bluish.net/usr/uploads/2024/04/3157391709.png