安装 Elgg
你需要通过 Composer 安装 Elgg 的完整代码与依赖,不要只下载压缩包——压缩包方式在升级时会带来额外负担。
前置条件
- PHP 8.3 或更高版本,且启用
pdo_mysql、gd、mbstring、xml扩展 - MariaDB 10.6+ 或 MySQL 8.4+
- Composer 2.x
- 一个可写的独立数据目录(见下文安全提醒)
Composer 安装
composer create-project elgg/starter-project:^6.3 elgg-sitecd elgg-site该命令创建的 elgg-site 目录包含 Elgg 核心与一个干净的启动项目。安装过程会生成 composer.json 与 vendor/,后续升级通过 composer update 完成。
数据目录:必须放在 Web 根目录之外
Elgg 需要一个数据目录存放用户上传的文件、缓存与临时数据。这个目录必须位于 Web 根目录之外,否则用户上传的内容可能被直接以 URL 访问到。
以站点根目录为 /var/www/elgg-site/public 为例:
mkdir -p /var/www/elgg-datachown www-data:www-data /var/www/elgg-datachmod 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 会进入安装向导,依次填写数据库信息、站点信息与数据目录路径。完成后删除安装缓存并登录后台确认插件状态。