























基本上,安装、维护Monica PRM(笔者安装的是v4.0.0)的时候,循着官方教程,不会出什么错。不过由于不同的自托管环境条件之复杂,每个人都可能遇到各不一样的问题:此官方文档之不能备也。是故笔者姑将自己所遇到的,陈诸此文,幸能为博雅网友参考而已。
先简单介绍下Monica这款软件。
Monica是一个开源的个人关系管理系统(PRM),可以由用户自托管。它帮助用户通过记录与他们生活中的人有关的信息和交互来管理他们的个人关系。用户可以记录重要的日期,如生日和纪念日,以及与朋友和家人的交往,包括他们的偏好和生活中的重大事件。
Monica的目的是帮助用户保持与他们关心的人的联系,并通过提供有意义的个人互动来增强这些关系。通过一个中心化的在线平台,Monica旨在成为用户社交互动的可靠记录和提醒系统。
循官方文档而安装Monica的过程中遇到的问题,基本可以通过阅读报错信息而解决。例如在本桩例子中,运行完composer install --no-interaction --no-dev报错:
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- Root composer.json requires PHP extension ext-gmp * but it is missing from your system. Install or enable PHP's gmp extension.
Problem 2
- Root composer.json requires PHP extension ext-redis * but it is missing from your system. Install or enable PHP's redis extension.
To enable extensions, verify that they are enabled in your .ini files:
(从略)
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-gmp --ignore-platform-req=ext-redis` to temporarily ignore these required extensions.
以上段报错文字为例,则说明在运行Composer安装命令时遇到了一些问题,提示缺少ext-gmp和ext-redis这两个PHP扩展。下面是一些可能的解决步骤:
gmp和redis这两个 PHP 扩展。在Ubuntu上,可以通过下面的命令来安装它们:bash sudo apt-get install php-gmp php-redisphp.ini文件中启用。可以通过运行php --ini命令来找到php.ini文件的位置,然后在文件中查看extension=gmp和extension=redis是否存在并取消注释。php -m来检查这些扩展是否已被正确加载。--ignore-platform-req选项来临时忽略这些扩展要求:bash composer install --no-interaction --no-dev --ignore-platform-req=ext-gmp --ignore-platform-req=ext-rediscomposer update来更新composer.lock文件和依赖关系。但是,请注意,这可能会更新依赖库到新的版本,可能会有破坏性的变更。另外,在运行Composer安装命令时会收到提示信息:
Do not run Composer as root/super user! See https://getcomposer.org/root for details
它的意思是说,最好不要以root用户身份运行Composer,因为这可能会导致安全问题。可以创建一个新的用户,或者使用现有的非root用户来运行Composer。
yarn run production不顺利首先要强调的是,一定要在yarn install命令顺利运行以后再运行yarn run production。
然后,该命令运行的不顺利可能由以下原因导致:
运行yarn run production后,报错信息如包括:
Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
则说明Browserslist数据库过时了,可以按照提示运行以下命令来更新它:
npx update-browserslist-db@latest
运行yarn run production后,报错信息如包括:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
则说明在构建过程中,JavaScript堆内存耗尽了。可以尝试增加Node.js的堆内存限制来解决这个问题。
例如,可以在运行yarn run production命令前设置NODE_OPTIONS环境变量来增加内存限制:
export NODE_OPTIONS="--max-old-space-size=4096"
yarn run production
这会将Node.js的堆内存限制设置为4GB。
.env生效网站的配置,在服务器上Monica项目的根目录中的.env这一配置文件内进行修改。
而通常,在Laravel(Monica所用的框架)项目中,当.env文件被修改后,可能需要清除配置缓存以使更改生效。这可以通过运行以下命令来完成:
php artisan config:clear
在一些情况下,可能还需要重新启动web服务器(例如Apache或Nginx)和/或PHP-FPM服务来确保新的配置被正确加载。不过笔者所做的大部分修改,执行完php artisan config:clear后都能够立即生效。
.env变量在设置S3的时候,官方文档与GitHub repo的issue区里所提及的变量名时有出入。不过经过检查软件源代码(v4.0.0)发现:
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID', env('AWS_KEY')),
'secret' => env('AWS_SECRET_ACCESS_KEY', env('AWS_SECRET')),
'region' => env('AWS_DEFAULT_REGION', env('AWS_REGION')),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT', env('AWS_SERVER', '') ? 'https://'.env('AWS_SERVER') : null),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', env('S3_PATH_STYLE', false)),
'throw' => true,
],
不同名称都能指向各自的同一个设定。所以确保每个必要的设定都得到妥善的填写即可。
Also on / Aussi sur / También en / Cē̤-sē̤ iâ ô / 亦可見於 / こちらも:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。