原文地址:https://lala.im/6247.html,請支持原作者!該處僅作轉載。
这个程序最大的特点应该就是支持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的用户: