最新更新 A domain ordered with hosting is checked, priced and registered

运行 PNLCS

PNLCS 是一个 Laravel 应用,只要有 PHP 8.4、MySQL 或 MariaDB 和 Web 服务器就能运行。想先看看的话, 在线演示 就是一套真实的安装。

Docker Hub 上的官方镜像
docker pull panelica/pnlcs-runtime

三种安装方式

方式适用场景耗时指南
Docker试用 PNLCS,或以单个容器运行约 5 分钟命令
自己的服务器没有 Docker 的 VPS 或独立服务器:Ubuntu、Debian、AlmaLinux 或 Rocky Linux约 30 分钟命令
装在主机面板中已经运行 Panelica、cPanel 或类似面板的服务器约 20 分钟指南

使用 Docker 快速开始

官方镜像内置 PHP-FPM 8.4、nginx、Node.js 20 和 supervisor,首次启动时会拉取最新代码。

  1. 启动容器先将 changeme 替换为你自己的密码。
  2. 等待 3 到 5 分钟首次启动会安装依赖并构建前端。
  3. 打开 /install安装向导会检查环境要求、创建管理员账户,然后自动锁定。
终端
$ docker network create pnlcs-net

$ docker run -d --name pnlcs-db --network pnlcs-net \
  -e MYSQL_ROOT_PASSWORD=changeme \
  -e MYSQL_DATABASE=pnlcs -e MYSQL_USER=pnlcs \
  -e MYSQL_PASSWORD=changeme \
  mariadb:11

$ docker run -d --name pnlcs --network pnlcs-net \
  -p 8090:80 \
  -e DB_HOST=pnlcs-db -e DB_DATABASE=pnlcs \
  -e DB_USERNAME=pnlcs -e DB_PASSWORD=changeme \
  -e APP_URL=http://localhost:8090 \
  panelica/pnlcs-runtime:1.4

不用 Docker,安装到自己的服务器

PNLCS 作为普通的 Laravel 应用运行在 PHP-FPM 8.4、MySQL 或 MariaDB 以及 Nginx 上。下面的命令适用于 Ubuntu 24.04、Debian 13 和 AlmaLinux 9;Rocky Linux 9 使用 AlmaLinux 的命令。请将 example.com 替换为你自己的地址。

完整指南
  1. 准备服务器

    PHP 8.4 及其扩展、数据库、Nginx、用于构建前端的 Node.js 20,以及 Composer。如果已经安装,可跳过此步。

    Ubuntu 24.04 自带 PHP 8.3,因此 PHP 8.4 来自 ondrej PPA。Debian 13 自带 PHP 8.4,用 MariaDB 代替 MySQL,并且没有 php8.4-imap 软件包。在 AlmaLinux 和 Rocky 上,PHP 8.4 来自 Remi 软件源。

    终端
    $ sudo apt update
    $ sudo apt install -y software-properties-common git unzip curl cron
    $ sudo add-apt-repository -y ppa:ondrej/php
    $ sudo apt update
    $ sudo apt install -y php8.4-fpm php8.4-cli php8.4-mysql php8.4-mbstring \
      php8.4-xml php8.4-curl php8.4-zip php8.4-gd php8.4-bcmath php8.4-intl php8.4-imap
    $ sudo apt install -y mysql-server nginx
    
    $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    $ sudo apt install -y nodejs
    
    $ curl -sS https://getcomposer.org/installer | php
    $ sudo mv composer.phar /usr/local/bin/composer
  2. 安装应用

    PNLCS 目录归 Web 服务器用户所有,每一条 composer、 artisan 和 npm 命令都以该用户身份运行。 pn 辅助命令会替你完成这一点。如果目录归 root 所有,安装向导和之后的更新都会失败。

    只选定一个数据库密码,并在 CREATE USER 语句和 .env 行中都使用它。 pn 辅助命令只在当前 shell 会话中有效;重新登录后需要再次定义。

    不要运行 db:seed。安装向导会填充数据库,并创建你指定的管理员。

    终端
    $ sudo git clone https://github.com/Panelica/pnlcs.git /var/www/pnlcs
    $ sudo chown -R www-data:www-data /var/www/pnlcs
    $ cd /var/www/pnlcs
    $ pn() { sudo -u www-data HOME=/tmp/pnlcs-home COMPOSER_HOME=/tmp/pnlcs-home/composer "$@"; }
    
    $ pn composer install --no-dev --optimize-autoloader --no-interaction
    
    $ sudo mysql -e "CREATE DATABASE pnlcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      CREATE USER 'pnlcs'@'localhost' IDENTIFIED BY 'choose-a-strong-password';
      GRANT ALL PRIVILEGES ON pnlcs.* TO 'pnlcs'@'localhost'; FLUSH PRIVILEGES;"
    
    $ pn cp .env.example .env
    $ pn sed -i 's|^APP_URL=.*|APP_URL=http://example.com|; s|^DB_PASSWORD=.*|DB_PASSWORD=choose-a-strong-password|' .env
    $ sudo chmod 640 .env
    
    $ pn php artisan key:generate
    $ pn php artisan migrate --force
    $ pn npm ci
    $ pn npm run build
    $ pn php artisan storage:link
    $ pn php artisan optimize
  3. 将 Nginx 指向 public/

    文档根目录是 public/ 目录,绝不能是项目根目录:项目根目录中存放着 .env。请删除默认站点,否则服务器地址会一直显示 Nginx 欢迎页。

    Apache 和 Caddy 也可以使用,规则相同:文档根目录为 public/,PHP 通过 PHP-FPM 8.4 运行,所有不是文件的请求都重写到 index.php。

    终端
    $ sudo tee /etc/nginx/sites-available/pnlcs > /dev/null <<'EOF'
    server {
        listen 80;
        server_name example.com;
        root /var/www/pnlcs/public;
        index index.php;
        charset utf-8;
        client_max_body_size 64M;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.4-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
        location ~ /\.(?!well-known).* { deny all; }
    }
    EOF
    $ sudo ln -s /etc/nginx/sites-available/pnlcs /etc/nginx/sites-enabled/
    $ sudo rm -f /etc/nginx/sites-enabled/default
    $ sudo nginx -t && sudo systemctl reload nginx
  4. 在浏览器中完成安装,然后配置计划任务和安全

    打开 http://example.com/install。向导会检查运行要求,创建管理员,然后自行关闭。

    为 Web 服务器用户添加一行 cron,即可驱动账单、提醒、暂停、SSL 检查和备份。队列任务不需要单独的 worker,同一行 cron 会一并处理。

    终端
    $ cd /var/www/pnlcs
    $ WEB_USER=www-data   # AlmaLinux, Rocky: apache
    $ (sudo crontab -u $WEB_USER -l 2>/dev/null; echo '* * * * * cd /var/www/pnlcs && php artisan schedule:run >> /dev/null 2>&1') | sudo crontab -u $WEB_USER -
    
    $ sudo apt install -y certbot python3-certbot-nginx   # Ubuntu, Debian
    $ sudo certbot --nginx -d example.com
    $ pn sed -i 's|^APP_URL=http://|APP_URL=https://|' .env
    $ pn php artisan optimize

系统要求

小规模安装时,数据库和应用在同一台机器上,2 GB 内存就很宽裕。

完整系统要求

PHP8.4 或更高版本
数据库MySQL 8.0 或 MariaDB 10.6+
Web 服务器Nginx 或 Apache,搭配 PHP-FPM
Node.js18+(推荐 20 LTS),仅用于构建前端
Composer2.x
内存小规模安装 1 GB 即可运行;2 GB 更宽裕
磁盘应用本身约 130 MB;考虑到数据增长,至少预留 2 GB 空闲空间

安装之后