2026年free.fr免费空间的使用

2026年free.fr免费空间的使用

2026 年 9 月,我在一台法国机器上把 free.fr 的免费空间从头到尾跑了一遍:注册子号、开空间、开数据库、上 HTTPS、装了 WordPress、Typecho 和一个图床。这篇就是那次折腾的记录。2024 年那版指南里的三个核心结论——只支持 PHP 5.6、推荐用 SQLite、FTP 地址是ftpperso.free.fr——放到今天已经全部过期了,下面会一条条纠正。

先说变了的几件事

项目2024 年的情况现在
PHP只有 4.4.3 和 5.6.34,要手动开 php56 1全平台升到 PHP 8.5,.htaccess 里写 PHP85 1 就是 8.5.10,想留在 5.6 也还能写 php56 1
HTTPS没有有了,地址是 https://你的登录名.pages-perso.free.fr,Let's Encrypt 证书由 Free 自动续期
数据库MySQL 5.7MySQL 5.7.44,新开的库往 MariaDB 11.8 迁移,另有 PostgreSQL 17
资源限制上传 2M、内存 32MPHP 8.5 下上传 10M、内存 128M,单次执行 30 秒
FTP 地址ftpperso.free.fr那个地址现在连不上,必须用你的登录名.free.fr
能装什么WordPress 最高 6.1,Typecho 用 2013 年的 0.9WordPress 7.1.1 和 Typecho 1.3.0 都跑通了
容量10G / 3 万文件没变,还是 10G 和 3 万文件

开始之前要准备什么

一台能出法国 IP 的机器。后台登录、FTP、数据库管理都看来源国,法国的机房 IP 就行,OVH、Scaleway、AWS 巴黎都能过,有 IPv6 也支持。这套空间只给 Free 的用户开,注册早就限制在法国境内了。

国内访问一直有问题,可以用自己的域名挂个 Cloudflare Worker 反代回来,脚本在最后一节。

先分清你手上是哪种账号

登录 subscribe.free.fr,看控制台长什么样:

  • 同时有「GESTION DE VOS COMPTES MAILS」和「Gestion de vos pages perso」两块,还带一句 Créez vos comptes emails supplémentaires,这是有空间的主号,能建子号、能开空间、能开数据库。
  • 只有邮件那一块,pages perso 那边空着,这种主号开不了空间,只能管邮箱。
  • 只有一个关账号和改密码的界面,那是子号,得自己单独登录之后才能开自己的空间。

想知道某个号底下有几个子号,点控制台里的 Afficher vos coordonnées et vos comptes supplémentaires,那个页面会把主号邮箱和所有子号邮箱一次列出来,比翻邮件快。另外如果点改密码提示没有权限,说明这个主号被降级了,但空间本身还能照常用。

开空间和建子号

建子号在控制台首页点 Créez vos comptes emails supplémentaires,填个名字和两遍密码就行。名字只能用小写字母、数字和点,长度不超过 32,全球唯一,别人抢先注册了你就用不了。密码要 8 到 16 位,能用的字符是字母数字加上 # $ , ; . : * @ [ ] ( ) ? + = - _ %,注意带 $的密码会被系统直接拒掉。提交那一刻号就建好了,可用会提示两小时内生效,被占用会提示 existe déjà。这里没有只检查名字能不能用的接口,试一次要么建成要么被拒。

空间是单独开的,子号或主号登录控制台后点 Activer votre compte pour les pages personnelles,表单里选要不要数据库,勾上同意条款再提交。提交完会提示已经受理,接下来就是等,官方口径是几天,我这次等了十多个小时还没动静,有人说等过三天。

控制台的状态会一步步变,照着看就知道卡在哪:还显示 Activer votre compte pour les pages personnelles 说明还没提交;变成 Création de votre espace en cours... 说明已经在排队;等出现改 FTP 密码、销毁空间、看统计这些入口,才算真的能用。判断生效最直接的办法是看你的登录名.free.fr有没有 DNS 解析、FTP 能不能登进去。批量开号的话挂个每五分钟查一次的脚本,比手动刷新省事。

另外控制台上那条 Augmenter le quota à 10 Go 容易让人误会,它其实是架构迁移页,已经迁移过的账号点开只会告诉你已经在用新架构,跟配额没有关系。

空间里能跑什么

在该空间根目录放一个 .htaccess,写上下面的内容,就能用 PHP 8.5:

<IfDefine Free>
    PHP85 1
</IfDefine>

探针跑出来是这样:PHP 8.5.10,mysqli、pdo_mysql、pdo_sqlite、gd、curl、mbstring、xml、zip、openssl、exif、iconv、sodium 都在,imagick 和 gmp 没有;上传限制 10M,内存 128M,执行时间 30 秒,禁用函数列表是空的。

有几个地方跟普通虚拟主机不一样,很容易踩:

  • 不写 .htaccess 时默认落到很老的 PHP 4.4.3,短数组和 ?? 这种语法会直接报 Parse error。
  • .user.ini 在这个平台上不生效,用 php_value 或 php_flag 写进 .htaccess 会整个站 500。
  • 默认 display_errors 是开的,程序抛出的 warning 会直接印在页面上,还会把 header 搞坏,表现为 headers already sent。要么在程序入口先加 ini_set('display_errors','0'),要么就忍受页面被污染。

HTTPS 是今年才有的。证书是泛域名 *.pages-perso.free.fr,TLS 支持 1.3 和 1.2,你什么都不用申请。要注意站点其实有两个地址:http://你的登录名.free.fr 是老地址,没有 443 端口,仍然是明文 HTTP,新地址 https://你的登录名.pages-perso.free.fr 会自动把 HTTP 跳到HTTPS。登录名里带点的,新地址要把点换成连字符,比如 www.moe 对应 www-moe.pages-perso.free.fr。想让老地址也跳过去,在 .htaccess 里加这段:

<If "%{HTTPS} != 'on'">
    RedirectMatch 301 ^/(.*)$ https://你的连字符登录名.pages-perso.free.fr/$1
</If>

自备证书和绑定自己的域名都做不到,HSTS 也加不了,因为 mod_headers 被禁用了。

数据库这块记三条就够:主机是 sql.free.fr,用户名就是你的登录名原样,密码默认跟账号密码一样,另外登录名里有点的,库名要把点换成下划线,www.moe 对应 www_moe。版本是 MySQL 5.7.44。它只允许空间里的 PHP 连,从外面直连会被拒。想开库就去控制台点 Activer votre base de données MySQL,提交后提示已受理,等 24 到 48 小时。等库的这段时间其实可以考虑直接用 SQLite,pdo_sqlite 和 sqlite3 都能用,省掉等待。

.htaccess 里哪些能用

这份清单是反复试出来的,因为写错了不是报错提示而是整站 500:

能用的有 IfDefine 里切 PHP 版本、ExpiresActive 和 ExpiresByType 做静态缓存、用 If "%{HTTPS} != 'on'" 配合 Redirect 或 RedirectMatch 做跳转、ErrorDocument、Options All -Indexes,以及 FilesMatch 加 Require 做目录限制。

不能用的:Header set 这类自定义响应头、RewriteEngine 伪静态、SetEnvIfNoCase 防盗链、php_value 和 php_flag、DirectoryIndex,还有 AddOutputFilterByType。加上 .user.ini 本身也不生效。

后果就是三件事:伪静态做不了,Typecho 和 WordPress 只能用 index.php 形式的链接;防盗链做不了,图床只能靠程序自己的水印;HSTS 加不了。还有一点,空间根目录默认那个 22.9K 的 index.html 占位页必须删掉,否则它会抢走首页,而 DirectoryIndex 又不能用。

日常用的模板可以直接抄这份:

<IfDefine Free>
    PHP85 1
</IfDefine>

Options All -Indexes

ExpiresActive On
ExpiresByType text/css "access plus 30 days"
ExpiresByType application/javascript "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/svg+xml "access plus 30 days"
ExpiresByType font/woff2 "access plus 365 days"

ErrorDocument 404 /index.php

<If "%{HTTPS} != 'on'">
    RedirectMatch 301 ^/(.*)$ https://你的连字符登录名.pages-perso.free.fr/$1
</If>

FTP 怎么连

主机名写你的登录名.free.fr,端口 21,用户名就是登录名,密码就是账号密码,也可以在控制台单独改一个 FTP 密码。ftpperso.free.fr 这个老地址现在连不上,会直接断开。来源必须是法国 IP,机房 IP 也能过,住宅更稳。想查用量就在 FTP 里发 SITE QUOTA,会告诉你用了多少兆、多少个文件,上限就是 10240M 和 30000 个。

2024 年那篇推荐的 net2ftp 现在也还能用,不过既然后台 FTP 对法国机房 IP 放行,用 FileZilla 或者直接写脚本更方便。

传大包的办法

空间单次执行只有 30 秒,WordPress 那种四千多个文件的包直接解压会超时。我的做法是先用 FTP 传一个 zip 上去,再传一个会自动删除的 PHP 脚本,然后用 HTTP 分块调用它。

<?php
$tok = $_GET['t'] ?? ''; if ($tok !== '换成你自己的随机串') { http_response_code(403); exit; }
@set_time_limit(0);
$from = (int)($_GET['from'] ?? 0); $count = (int)($_GET['count'] ?? 800);
$strip = $_GET['strip'] ?? '';                     // 压缩包顶层目录,比如 wordpress/
$z = new ZipArchive(); if ($z->open(__DIR__.'/_pkg.zip') !== TRUE) exit("OPENFAIL");
$n = $z->numFiles; $done = 0;
for ($i = $from; $i < min($n, $from + $count); $i++) {
    $nm = $z->getNameIndex($i);
    if ($strip !== '' && strpos($nm, $strip) === 0) $nm = substr($nm, strlen($strip));
    if ($nm === '') continue;
    $t = __DIR__ . '/' . $nm;
    if (substr($nm, -1) === '/') { @mkdir($t, 0755, true); }
    else { @mkdir(dirname($t), 0755, true); file_put_contents($t, $z->getFromIndex($i)); }
    $done = $i + 1;
}
$z->close();
echo json_encode(["done" => $done, "total" => $n, "finished" => $done >= $n]);
if ($done >= $n) { @unlink(__DIR__.'/_pkg.zip'); @unlink(__FILE__); }

访问 https://你的连字符登录名.pages-perso.free.fr/zz.php?t=你的随机串&strip=wordpress/&from=0&count=800,每次返回进度,一直调到 finished 为 true 就完事,脚本和 zip 会自己删掉。WordPress 7.1.1 这个包有 4250 个条目、37M 的压缩包、解压后105M,六次调用二十四秒就解完了。

装什么程序

WordPress。 下载官方最新的包,用上面的脚本解压到根目录,删掉占位的 index.html,然后手写 wp-config.php。这里的重点是在文件最顶部先把 warning 关掉,不然 free.fr 默认的 display_errors 会让页面到处都是提示。数据库填sql.free.fr,用户名写登录名,库名把点换成下划线,密码就是账号密码。另外把站点地址固定成 https 那个新域名,FS_METHOD 设成 direct 方便后台直接写文件。装完有两个限制要知道:固定链接只能选朴素形式,会显示成 ?p=8 这样;要调 REST 接口必须走 /index.php?rest_route=/wp/v2/posts 这种写法,直接请求 /wp-json/ 会 404。上传受 10M 限制,主题和插件挑小一点的包。

装好的测试站可以直接点:https://www-moe.pages-perso.free.fr/

Typecho。 比 WordPress 轻得多,也更适合这个环境。安装时选 SQLite 就完全不用等数据库开通,安装器走到数据库那一步把适配器选成 Pdo_SQLite、文件名写 typecho.db 就行。有个坑要记住,Typecho 的登录令牌是放在表单 action 的查询串里的,用脚本登录必须打到那个带?_=令牌 的地址,否则会一直停在登录页而且不给任何提示。装完记得把 install.php 和 install 目录删掉。

测试站:https://coai.pages-perso.free.fr/

图床 EasyImage。 不需要数据库,装好就能用。但它有两处必须改,不然在这个平台上会出问题:一是在 app/function.php 和 app/header.php 顶部加一行关掉 display_errors;二是admin/index.php 里那句加载 header 的代码要挪到登录处理之后,否则设置 cookie的时候页面已经开始输出了,会出现登录成功却没登进去的怪事。后台密码框里要填密码的 SHA256 值,前端脚本会自动转。图片上传接口在 /app/upload.php,返回的删除链接是访问一次就删,别当验证链接点。

测试站:https://p88.pages-perso.free.fr/

用量和规矩

每个空间给 10G 空间和三万个文件,单文件上传 10M,内存 128M。这些空间只能放网站,不能当网盘或者备份盘用,空的、没有首页的目录长期放着会被判成未使用。如果只想先占着位置又不想放内容,社区的做法是根目录放个 index.html,再在 .htaccess 里写 Options+Indexes。另外不要短时间反复注册或者试密码,触发风控会影响整个账号。

绑定自己的域名

free.fr 不支持绑定自有域名,只能反代。现在源站有了 HTTPS,用 Cloudflare Worker 最简单:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    return fetch('https://你的连字符登录名.pages-perso.free.fr' + url.pathname + url.search, {
      method: request.method, headers: request.headers, body: request.body,
    });
  }
};

记得指向 https 的新域名,不要再用 http 的老域名,否则既慢又有混合内容警告。

出问题先查这张表

现象原因和处理
整站 500.htaccess 里写了被禁的指令,通常是 DirectoryIndex、Header、Rewrite 或 php_value
页面里冒出 Warning 或者 headers already sent主机 display_errors 是开的,在程序入口加 ini_set('display_errors','0')
首页一直是 Under Construction根目录的 index.html 没删
首页返回 403空的、没有首页的空间,属于正常现象
PHP 报 unexpected '['没开 PHP 8.5,.htaccess 里缺 PHP85 1
FTP 连不上或者直接断开主机名写成了 ftpperso.free.fr,或者来源不是法国 IP
请求 /wp-json/ 返回 404这个平台没有伪静态,改成 /index.php?rest_route= 的写法
数据库连不上空间还没生效,或者数据库没开通,或者库名没有把点换成下划线
控制台一直是 Création de votre espace en cours...在排队,等就行,不是出错
登录提示成功但页面又回到登录页程序在输出之后才设置 cookie,或者登录令牌放在表单 action 里

参考

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇