Paymenter 安装

创建时间
Mar 18, 2025 06:13 AM
编辑日期
Last updated March 18, 2025
属性
标签
宝塔部分信息可在另一篇文章了解到。需要自行安装。

1. Paymenter 安装

类似WHMCS,Paymenter是开源的销售服务器的平台。可以连接virtualizor, virtfusion, promox, convoy。
这个使用mariadb和宝塔,1panel环境不太兼容,尽量用官方提供的方法直接创建。
不推荐用docker安装,更新的速度远没有主库快。这里安装演示使用Ubuntu 22.04。

1.1 依赖项

apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php apt update apt -y install php8.2 php8.2-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server

1.2 安装Composer

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

1.3 从Github下载最新版

mkdir /var/www/paymenter cd /var/www/paymenter curl -Lo paymenter.tar.gz https://github.com/paymenter/paymenter/releases/latest/download/paymenter.tar.gz tar -xzvf paymenter.tar.gz chmod -R 755 storage/* bootstrap/cache/

1.4 安装和设置数据库

记得改密码yourPassword
notion image
# 需要使用系统的root密码 mysql -u root -p # Remember to change 'yourPassword' below to be a unique password CREATE USER 'paymenter'@'127.0.0.1' IDENTIFIED BY 'yourPassword'; CREATE DATABASE paymenter; GRANT ALL PRIVILEGES ON paymenter.* TO 'paymenter'@'127.0.0.1' WITH GRANT OPTION; exit
如果想要修改paymenter的密码
ALTER USER 'paymenter'@'127.0.0.1' IDENTIFIED BY 'newPassword'; # 刷新权限 FLUSH PRIVILEGES; # 删除用户 # DROP USER 'paymenter'@'127.0.0.1';
复制默认环境,安装核心依赖项。
cp .env.example .env composer install --no-dev --optimize-autoloader # Only run the command below if you are installing this Panel for # the first time and do not have any Paymenter Panel data in the database. php artisan key:generate --force php artisan storage:link
执行完上面命令后,nano .env 有效保存其中的APP_KEY,这是加密密钥,重要性不言而喻。然后添加数据库密码在DB_PASSWORD
notion image
创建数据库的所有基础数据,慢的话就等到完成。
php artisan migrate --force --seed
添加一个管理用户,交互式创建
php artisan p:user:create
notion image
Web服务器配置,带SSL的Nginx。nano /etc/nginx/sites-available/paymenter.conf
这里因为我要使用雷池,所以被监听的端口我改为8080和8443,ssl的文件位置改成自己的。
server { listen 8080; # 默认80 listen [::]:8080; # 默认80 server_name paymenter.org; # 改成自己域名 return 301 https://$host$request_uri; } server { listen 8443 ssl http2; # 默认443 listen [::]:8443 ssl http2; # 默认443 server_name paymenter.org; # 改成自己的域名 root /var/www/paymenter/public; index index.php; ssl_certificate /etc/letsencrypt/live/paymenter.org/fullchain.pem; # 修改路径 ssl_certificate_key /etc/letsencrypt/live/paymenter.org/privkey.pem; # 留意上传的密钥后缀 location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; } }
保存好后重启nginx
sudo ln -s /etc/nginx/sites-available/paymenter.conf /etc/nginx/sites-enabled/ sudo systemctl restart nginx

1.5 计划任务

sudo crontab -e
* * * * * php /var/www/paymenter/artisan schedule:run >> /dev/null 2>&1

1.6 队列worker

根据说明,paymenter是使用laravel内置的队列系统。
创建一个文件 nano /etc/systemd/system/paymenter.service
[Unit] Description=Paymenter Queue Worker [Service] # On some systems the user and group might be different. # Some systems use `apache` or `nginx` as the user and group. User=www-data Group=www-data Restart=always ExecStart=/usr/bin/php /var/www/paymenter/artisan queue:work StartLimitInterval=180 StartLimitBurst=30 RestartSec=5s [Install] WantedBy=multi-user.target
然后启动服务sudo systemctl enable --now paymenter.service
 

2. 安装tailscale + 雷池

教程参考另外一篇whmcs的文章。这里不重复介绍。
正确启动后能正常访问页面,下一步是使用雷池反代8443端口到443端口。
notion image
管理员界面
notion image
雷池简单配置就能使用了,如果无法访问则需要检查443端口是否打开。
notion image