---
title: Ubuntu 22.04
slug: ubuntu-2204
createdAt: 2024-04-05T12:42:13.341Z
---

# 在 Ubuntu 22.04 中安装 Passwork

## 最低系统要求

Passwork 对服务器资源的要求不高。资源（RAM、CPU、HDD）的数量和服务器的数量取决于活跃用户的数量、存储数据的量以及对系统容错能力的要求。

## 获取 root 权限并重新加载本地包数据库

```shell
sudo -i 
apt-get update
```

将服务器主机名更改为 "passwork"。

```shell
hostnamectl set-hostname passwork
```

自动本地网络配置和发现。

```shell
apt-get install -y avahi-daemon libnss-mdns
```

将 AVAHI\_DAEMON\_DETECT\_LOCAL 从 1 改为 0

```shell
nano /etc/default/avahi-daemon
```

设置：

```shell
AVAHI_DAEMON_DETECT_LOCAL = 0
```

重启 avahi-daemon：

```shell
service avahi-daemon restart
```

## 安装 Git 和 Apache2

```shell
apt-get install -y git apache2
```

## 安装 MongoDB

安装 gnupg 和 wget

```shell
apt-get install -y gnupg wget
```

下载并将收到的数据转换为单独的文件

```shell
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | gpg --dearmor > packages.mongodb.gpg
```

安装收到的文件

```shell
install -D -o root -g root -m 644 packages.mongodb.gpg /etc/apt/keyrings/packages.mongodb.gpg
```

将 MongoDB 6 仓库添加到 apt 包列表

```shell
echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/packages.mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
```

删除之前收到的文件

```shell
rm -f packages.mongodb.gpg
```

更新本地包数据库

```shell
apt-get update
```

安装 MongoDB 6

```shell
apt-get install -y mongodb-org
```

启动 mongod.service

```shell
systemctl start mongod.service
```

激活服务

```shell
systemctl enable mongod.service
```

## 安装 PHP 8.2

必须安装 PHP 版本 8.2。

不支持更新的版本。

添加 PPA 仓库

```shell
apt-get install -y software-properties-common
add-apt-repository -y ppa:ondrej/php

```

安装 PHP 8.2 和附加扩展

```shell
apt-get update
apt-get install -y php8.2 php8.2-dev php8.2-ldap php8.2-xml php8.2-bcmath php8.2-mbstring php8.2-xml php8.2-curl php8.2-opcache php8.2-readline php8.2-zip
```

选择 PHP 的主要版本

```shell
a2enmod php8.2
update-alternatives --set php /usr/bin/php8.2
update-alternatives --set phar /usr/bin/phar8.2
update-alternatives --set phar.phar /usr/bin/phar.phar8.2
update-alternatives --set phpize /usr/bin/phpize8.2
update-alternatives --set php-config /usr/bin/php-config8.2

```

## 安装 PHP MongoDB 驱动

```shell
apt install php8.2-mongodb -y
echo "extension=mongodb.so" | tee /etc/php/8.2/apache2/conf.d/20-mongodb.ini
echo "extension=mongodb.so" | tee /etc/php/8.2/cli/conf.d/20-mongodb.ini
```

## 安装 PHP Phalcon 框架

```shell
apt install unzip -y
mkdir /tmp/install && cd /tmp/install && curl -LOf https://github.com/phalcon/cphalcon/releases/download/v5.3.1/phalcon-php8.2-nts-ubuntu-gcc-x64.zip && unzip phalcon-php8.2-nts-ubuntu-gcc-x64.zip && cp phalcon.so /usr/lib/php/20220829 && cd / && rm -rf /tmp/install
echo "extension=phalcon.so" | tee /etc/php/8.2/apache2/conf.d/30-phalcon.ini
echo "extension=phalcon.so" | tee /etc/php/8.2/cli/conf.d/30-phalcon.ini
```

重启 Apache2 网络服务器

```shell
systemctl restart apache2.service
```

## 下载并安装 Passwork

使用您的用户名和密码克隆仓库

```shell
cd /var/www
git config --global --add safe.directory /var/www 
git init
git remote add origin https://passwork.download/passwork/passwork.git
git fetch

git checkout v6
```

系统将要求输入仓库的登录名和密码，您可以在您的客户门户中找到这些信息。如果您无法访问客户门户，请联系我们。

设置文件夹和文件的权限。

```shell
find /var/www/ -type d -exec chmod 755 {} \;
find /var/www/ -type f -exec chmod 644 {} \;
chown -R www-data:www-data /var/www/
```

**配置您的 Apache2**

打开 Apache 配置文件。

```shell
nano /etc/apache2/sites-enabled/000-default.conf
```

将文件内容修改为以下形式：

```shell
<VirtualHost *:80>
   #ServerName .....
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/public
   <Directory /var/www/public>
       Options FollowSymLinks MultiViews
      AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
VirtualHost>

```

启用重写模块并重启 Apache。

```shell
a2enmod rewrite
service apache2 restart
```

打开[ http://passwork.local](http://passwork.local/) 或[ http://127.0.0.1](http://127.0.0.1/) 以访问网站。

## 安装

当您首次打开Passwork时，您将看到一个安装向导，它将检查服务器配置是否正确，并允许您输入基本参数。

如果您正在安装Passwork的新副本，请将所有字段保留为默认值

请注意，设置页面的随机生成的密钥用于加密数据库。

**注册一个管理员**

输入第一个用户的用户名和密码。该用户将自动成为管理员和组织的所有者。

