静看光阴荏苒
不管不顾不问不说也不念

Pixelfed:一个开源免费的照片分享平台

这个程序最大的特点应该就是支持ActivityPub了,其他还有很多地方需要完善。

想搭建一个玩玩的话,建议VPS内存2G。下面是在Debian10的安装步骤。

首先安装nginx/mariadb/redis/以及一些常用软件和程序需要用到的图像处理工具:

apt -y install nginx python-certbot-nginx mariadb-server redis-server \
curl git unzip imagemagick jpegoptim optipng pngquant

安装PHP7.3(必须7.3):

apt -y install php7.3-common php7.3-cli php7.3-fpm php7.3-mysql \
php7.3-gd php7.3-bcmath php7.3-curl php7.3-intl php7.3-mbstring php7.3-xml

安装composer:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer

因为这个程序特别吃内存,这里把PHP-FPM的进程调少点,让其能勉强在1G的VPS内运行:

nano /etc/php/7.3/fpm/pool.d/www.conf

修改的部分:

pm = dynamic
pm.max_children = 120
pm.start_servers = 2
pm.min_spare_servers = 4
pm.max_spare_servers = 6
pm.max_requests = 200 # 解决内存泄漏问题

调整php.ini:

nano /etc/php/7.3/fpm/php.ini

主要修改下面的参数:

post_max_size = 50M
upload_max_filesize = 50M
max_file_uploads = 100
max_execution_time = 600

重启PHP-FPM:

systemctl restart php7.3-fpm.service

初始化MySQL:

mysql_secure_installation

登录到MySQL内:

mysql -u root -p

创建数据库/用户/授权:

CREATE DATABASE pixelfed CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'pixelfed'@'127.0.0.1' IDENTIFIED BY '设置你的数据库用户密码';
GRANT ALL PRIVILEGES ON pixelfed.* TO 'pixelfed'@'127.0.0.1';
FLUSH PRIVILEGES;
quit

拉取项目文件/给予正确的权限:

cd /var/www
git clone -b dev https://github.com/pixelfed/pixelfed.git pixelfed && cd pixelfed
chown -R www-data:www-data .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

安装依赖:

composer install --no-dev --optimize-autoloader

复制一份配置文件并编辑:

cp .env.example .env
nano .env

主要需要修改的部分:

APP_URL=https://photo.koko.cat
APP_DOMAIN="photo.koko.cat"
ADMIN_DOMAIN="photo.koko.cat"
SESSION_DOMAIN="photo.koko.cat"

配置MySQL连接信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pixelfed
DB_USERNAME=pixelfed
DB_PASSWORD=你的数据库用户密码

因为我没配置SMTP,所以把强制验证新用户邮箱的功能关掉:

ENFORCE_EMAIL_VERIFICATION=false

开启ActivityPub:

ACTIVITY_PUB=true
REMOTE_FOLLOW=true
ACTIVITYPUB_INBOX=true
ACTIVITYPUB_SHAREDINBOX=true

修改好配置之后,依次执行下面的命令:

php artisan key:generate
php artisan config:cache
php artisan storage:link
php artisan migrate --force
php artisan route:cache

接着新建一个systemd服务文件:

nano /etc/systemd/system/pixelfed.service

写入:

[Unit]
Description=Pixelfed task queueing via Laravel Horizon
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/php /var/www/pixelfed/artisan horizon
User=www-data
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动Laravel Horizon:

systemctl start pixelfed
systemctl enable pixelfed

新建一个Nginx站点配置文件:

nano /etc/nginx/conf.d/pixelfed.conf

写入:

server {
    listen       80;
    server_name  photo.koko.cat;
    index        index.html index.htm index.php;
    root         /var/www/pixelfed/public;
    client_max_body_size 50m;

    location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php7.3-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

签发SSL证书:

certbot --nginx --agree-tos --no-eff-email

之后打开你的域名应该可以看到这个程序的主页:

注册一个账号,注意这里有个天坑,我之前注册的时候一直都填写的QQ邮箱,但是TMLGB就是注册不了,排错了半天就是找不到问题出在哪里,后来TM灵光一闪,想到不会是这个程序限制某些后缀的邮箱注册吧?结果我换成其他邮箱直接注册成功,我也是佛了。。

注册成功之后回到终端,执行下面的命令把你自己的账号提升为管理员:

php artisan user:admin imlala

我简单测试了一下使用,上传图片,还有个调色的功能:

图片页面可以提交评论等:

然后是ActivityPub,我在Mastodon实例内可以搜索到Pixelfed的用户:

赞(4)
未经允许不得转载:荒岛 » Pixelfed:一个开源免费的照片分享平台
分享到: 更多 (0)

评论 9

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    lala能不能来一期新的django-sspanel的后端教程鸭。django的作者的ss后端换新的了

    QQ1个月前 (08-20) Google Chrome 76.0.3809.100 Google Chrome 76.0.3809.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 有空我折腾看看。

      LALA1个月前 (08-20) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    老铁,,,你的小鸡这样折腾不合适吧。
    我提供服务器和域名,演示就一直留着如何。。。
    以后每一个。。程序。
    对你仰慕,最近天天看

    50281个月前 (08-20) Maxthon 5.2.7.5000 Maxthon 5.2.7.5000 Windows 7 x64 Edition Windows 7 x64 Edition回复
    • 我的小鸡这样折腾怎么不合适了?小时计费,不就是拿来折腾的吗?在你的服务器上装程序,我可以理解为免费打工?

      LALA1个月前 (08-20) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 付费付费

        50281个月前 (08-21) Maxthon 5.2.7.5000 Maxthon 5.2.7.5000 Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 求求你,纸飞机回复我。。。。

        50281个月前 (08-21) Maxthon 5.2.7.5000 Maxthon 5.2.7.5000 Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 小时计费,小时计费。。。。555555555 有空帮帮我

        50281个月前 (08-21) Maxthon 5.2.7.5000 Maxthon 5.2.7.5000 Windows 7 x64 Edition Windows 7 x64 Edition回复
  3. #3

    大佬你好,能否出个宝塔安装该程序的教程?! :!:

    jackypiero2周前 (09-05) Sogou Explorer Sogou Explorer Windows 7 x64 Edition Windows 7 x64 Edition回复
    • 宝塔很简单的,基本照着这篇文章只需要改几个路径就OK了。。

      LALA2周前 (09-06) Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿