前言

Monica 是在Github上 Star 18.7k 的项目,是一款开源的 联系人通讯录 辅助程序。

如果你觉得这个对你帮助不大,那么大可不必。

安装步骤

Ubuntu 22.04 安装为例,更多的信息可以参考官方文档

依赖

  • Apache httpd webserver

    1
    sudo apt install apache2

    也可以使用nginx

  • Git

    1
    sudo apt install git
  • PHP 8.1+

    1
    2
    3
    4
    sudo add-apt-repository ppa:ondrej/php
    apt install php8.2-fpm libapache2-mod-php8.2 php8.2-bcmath php8.2-cli php8.2-curl php8.2-common \
    php8.2-fpm php8.2-gd php8.2-gmp php8.2-intl php-json php8.2-mbstring \
    php8.2-mysql php8.2-opcache php8.2-redis php8.2-xml php8.2-zip
  • Composer

    1
    2
    3
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php
    sudo mv composer.phar /usr/local/bin/composer
  • Node.js

    1
    sudo apt-get install -y nodejs  #暂时只支持node 18.x,不支持 19.x
  • Yarn

    1
    sudo npm install --global yarn
  • MySQL

    1
    sudo apt install mysql-server

程序安装

1.克隆镜像

1
2
cd /var/www
git clone https://github.com/monicahq/monica.git

确保安装的是稳定版本或者指定版本,可以通过Github Release查询:

命令为:

1
2
3
4
5
cd /var/www/monica
# Get latest tags from GitHub
git fetch
# Clone the desired version
git checkout tags/v2.18.0

2.创建数据库

根据自己的情况创建数据库:

1
2
3
4
5
6
mysql -u root -p
CREATE DATABASE monica CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'monica'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL ON monica.* TO 'monica'@'localhost';
FLUSH PRIVILEGES;
exit

3.配置Monica

进入程序目录 cd /var/www/monica

  1. 创建环境变量 cp .env.example .env

  2. 根据自己需求更新变量 .env ,任意工具打开 .env 文件进行修改

    • 设置数据库的账户和密码

      1
      2
      3
      DB_DATABASE=monica
      DB_USERNAME=homestead
      DB_PASSWORD=secret
    • 配置邮件服务器

      1
      2
      3
      4
      5
      6
      7
      8
      MAIL_MAILER=smtp
      MAIL_HOST=mailtrap.io #邮箱服务器地址
      MAIL_PORT=2525 #邮箱服务器端口
      MAIL_USERNAME= #邮箱账户
      MAIL_PASSWORD= #邮箱密码
      MAIL_ENCRYPTION= #邮箱加密方式
      MAIL_FROM_ADDRESS= #邮箱地址
      MAIL_FROM_NAME="Monica instance" #邮箱名称
    • 设置 APP_ENVproduction

      1
      APP_ENV=production

      如果 APP_ENV 设置为 production,那么要强制HTTPS,必须配置SSL证书了。

  3. 运行 composer install --no-interaction --no-dev 安装所有包

  4. 运行 yarn install 安装前端包,然后运行 yarn run production

  5. 运行 php artisan key:generate 创建应用秘钥

  6. 运行 php artisan setup:production -v 迁移数据库和链接文件夹,输入 yes 继续

    强烈建议:使用邮箱账号和密码安装 php artisan setup:production --email=your@email.com --password=yourpassword -v,不然到时候你都不知道登录账号密码是什么。

4.创建cron任务

1
crontab -u www-data -e

在最后其中添加如下内容:

1
* * * * * php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

然后运行 php artisan schedule:run 启动。

5.配置Apache2

  1. 提升目录权限

    1
    2
    sudo chown -R www-data:www-data /var/www/monica
    sudo chmod -R 775 /var/www/monica/storage
  2. 开启Apache2 Rewrite模块

    1
    sudo a2enmod rewrite
  3. 配置网站

    1
    sudo vim /etc/apache2/sites-available/monica.conf

    配置如下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <VirtualHost *:80>
    ServerName **YOUR IP ADDRESS/DOMAIN**

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/monica/public

    <Directory /var/www/monica/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  4. 启动

    1
    2
    sudo a2ensite monica.conf
    sudo service apache2 restart

如果是HTTPS再配置ssl即可。

网站访问

正常显示,一次成功。

仪表盘界面

最后

说实话,在安装前,我觉得这个程序应该比较鸡肋,不是很看好,毕竟现在很多东西都一体化,手机上有各类软件都可以使用。

但是在实际使用后,还是觉得有点意思的,优点是界面简单,功能多样,给联系人添加各种标签、通话记录等等,还有WebDav,创建API外部连接访问等等。也可以在上面写日记,比较有意思。

日记界面

缺点也是有的,配置稍显复杂,对新手不是很友好。后续如果要其他程序接入API的话,又是一项偏繁琐的过程。

我本来只是在本地测试一下,我觉得有必要上线测试一下,它应该可以给我一些惊喜。