跳转到内容

安装 Elgg

你需要通过 Composer 安装 Elgg 的完整代码与依赖,不要只下载压缩包——压缩包方式在升级时会带来额外负担。

前置条件

  • PHP 8.3 或更高版本,且启用 pdo_mysql、gd、mbstring、xml 扩展
  • MariaDB 10.6+ 或 MySQL 8.4+
  • Composer 2.x
  • 一个可写的独立数据目录(见下文安全提醒)

Composer 安装

Terminal window
composer create-project elgg/starter-project:^6.3 elgg-site
cd elgg-site

该命令创建的 elgg-site 目录包含 Elgg 核心与一个干净的启动项目。安装过程会生成 composer.json 与 vendor/,后续升级通过 composer update 完成。

数据目录:必须放在 Web 根目录之外

Elgg 需要一个数据目录存放用户上传的文件、缓存与临时数据。这个目录必须位于 Web 根目录之外,否则用户上传的内容可能被直接以 URL 访问到。

以站点根目录为 /var/www/elgg-site/public 为例:

Terminal window
mkdir -p /var/www/elgg-data
chown www-data:www-data /var/www/elgg-data
chmod 750 /var/www/elgg-data

安装向导中把数据目录填写为 /var/www/elgg-data。

Web 服务器配置

Elgg 的所有请求需要路由到 public/ 目录下的 index.php(除静态文件外)。

Nginx

server {
listen 80;
server_name your-site.example;
root /var/www/elgg-site/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /(vendor|engine|actions|views|languages|mod)/ {
deny all;
}
}

Apache(mod_rewrite)

<VirtualHost *:80>
ServerName your-site.example
DocumentRoot /var/www/elgg-site/public
<Directory /var/www/elgg-site/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

确保 mod_rewrite 已启用:a2enmod rewrite && systemctl reload apache2。

运行安装向导

浏览器访问站点域名,Elgg 会进入安装向导,依次填写数据库信息、站点信息与数据目录路径。完成后删除安装缓存并登录后台确认插件状态。

下一步