2023年2月

1.安装 iptables-persistent

`apt install -y iptables-persistent`

2.按需编辑 /etc/iptables/rules.v4 文件添加规则。

    #  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
    -A INPUT -i lo -j ACCEPT
    -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
    
    #  Accept all established inbound connections
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #  Allow all outbound traffic - you can modify this to only allow certain traffic
    -A OUTPUT -j ACCEPT
    
    #  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
    -A INPUT -p tcp --dport 80 -j ACCEPT
    -A INPUT -p tcp --dport 443 -j ACCEPT
    
    #  Allow SSH connections
    #  The -dport number should be the same port number you set in sshd_config
    -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
    
    #  Allow ping
    -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    
    # Allow destination unreachable messages, especially code 4 (fragmentation required) is required or PMTUD breaks
    -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
    
    #  Log iptables denied calls
    -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
    
    #  Reject all other inbound - default deny unless explicitly allowed policy
    -A INPUT -j REJECT
    -A FORWARD -j REJECT
    
    COMMIT
  1. 重载规则iptables-restore < /etc/iptables/rules.v4

ipv6规则

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d ::1/128 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#  The -dport number should be the same port number you set in sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmpv6 -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

在共享主机上搭建friendica入住联邦宇宙是最方便和省钱的办法。

前提

根据我的经验,在共享主机上部署friendica需要一些条件。

  1. 需要支持Mariadb数据库。mysql虽然能成功运行,后续升级会出错。
  2. 共享主机需要支持网页Terminal或者允许ssh连接操作。如果没有将无法成功安装
  3. 共享主机支持添加Cron后台计划任务。friendica的发帖更新,好友状态同步等都需要后台任务定时运行。

如果是基于cpanel的共享主机应该都能满足以上条件,购买前需要跟供应商客服联系确认。
本人使用RackNred的一年/15美元的共享主机运行良好,推荐单人或者几个人使用没有太大问题。

购买

选择一个合适的套餐,推荐硬盘大一点的。然后填写您的域名 点USE。进行下单付款。
1
成功购买后系统会给你邮箱发送共享IP,登录等信息。你需要把自己的域名指向这个共享IP地址或者直接把NS记录改成邮件里的地址。

开始部署:

1.创建用于friendica的数据库:
打开控制面板 选择mysql数据库。屏幕截图 2022-12-05 191104.png

创建数据库用户名 请记住密码。然后创建数据库。
11
向数据库添加用户并给对数据库操作权限。
12

2.下载friendica的最新版到网站根目录。
可以点这里下载到电脑然后通过文件管理器上传,然后解压。
屏幕截图_20230222_195948.png
也可以通过ssh连接通过命令下载。

cd /home/xxx/html_public/
git clone https://github.com/friendica/friendica.git -b stable

此时如果打开域名会提示 运行bin/composer.phar install --no-dev命令。
3.安装
首先确保网站根目录可写入。
连接ssh

cd /home/xxx/html_public/
bin/composer.phar install --no-dev

这样就开始安装完成。不过此时打开网页应该是500错误或者404.
4.配置
1.在config文件夹的local-sample.config.php文件改名为local.config.php
并配置您的数据库信息,网站基本信息。管理员邮箱等信息。请注意,邮箱必须可以收到邮件。您的登录信息系统通过邮件发送给您。
以下根据您的需要替换内容:

<?php

return [
    'database' => [
        'hostname' => 'localhost',
        'username' => '数据库用户名',
        'password' => '数据库密码',
        'database' => '数据库名',
        'charset' => 'utf8mb4',
    ],

    'config' => [
        'php_path' => '/usr/local/bin/php', //php目录
        'admin_email' => '邮箱',
        'sitename' => 'Friendica Social Network',
        'hostname' => '域名',
        'register_policy' => \Friendica\Module\Register::OPEN,
        'max_import_size' => 200000,
    ],
    'system' => [
        'urlpath' => '',
        'pidfile' => '',
        'url' => '域名',
        'ssl_policy' => 1,
        'basepath' => '网站根目录',
        'default_timezone' => 'Asia/Shanghai',
        'language' => 'zh-cn',
    ],
];

保存后退出。
此时如果顺利应该可以访问安装页面了。如果提示404,在网站根目录的.htaccess-dist文件改名为.htaccess就可以了。
会检测php扩展安装情况,如果没有安装在控制面板里安装相应的扩展。
注册时候一定要填写在config里的邮箱。不然管理面板进不去。

5.设置后台任务
在控制面板 Cron 里添加一个定时后台任务。它会定时执行帖子同步,联系人更新等任务。

/usr/local/bin/php /home/fedibar/public_html/bin/worker.php

2
到此安装过程基本完成了。

故障排查:

未写完