You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QNAP TS-251+开机自动保留PHP及Composer别名问题求助

我之前在TS-251+上也碰到过类似的问题,QNAP的系统确实会在重启后重置不少用户自定义的配置——毕竟系统分区是只读设计,临时修改的别名、脚本很容易丢失。下面给你两个问题的针对性解决方案:

1. 让PHP别名重启后自动生效

QNAP支持通过/etc/profile.d/目录加载用户自定义的环境配置,这个目录下的脚本会在每次系统启动、用户登录时自动执行,完美解决别名持久化问题:

  1. 先找到PHP的实际路径
    临时手动添加别名后,执行which php就能拿到PHP的绝对路径(比如可能是/usr/local/bin/php,或者App Center安装的PHP在/share/CACHEDEV1_DATA/.qpkg/PHP8.0/bin/php,根据你装的版本调整)。如果没临时加过,也可以用find / -name php搜索。

  2. 创建自定义别名脚本
    用编辑器创建一个脚本文件,比如:

    vi /etc/profile.d/php_alias.sh
    

    写入以下内容(替换成你找到的PHP路径):

    alias php='/share/CACHEDEV1_DATA/.qpkg/PHP8.0/bin/php'
    
  3. 给脚本添加执行权限

    chmod +x /etc/profile.d/php_alias.sh
    
  4. 测试生效
    执行source /etc/profile.d/php_alias.sh,然后输入php -v验证版本,重启NAS后再重复验证即可。

2. 解决Composer被移除+别名持久化问题

Composer消失是因为你可能装在了系统临时目录(比如/tmp或系统分区),重启后会被清理。要把它装在数据盘的持久目录里:

  1. 安装Composer到数据盘
    先切换到你的数据盘根目录(比如默认是/share/CACHEDEV1_DATA,可以通过QTS的“存储与快照总管”确认):

    cd /share/CACHEDEV1_DATA
    

    然后下载并安装Composer到当前目录:

    curl -sS https://getcomposer.org/installer | php -- --install-dir=/share/CACHEDEV1_DATA --filename=composer
    

    如果QNAP没装curl,换成wget:

    wget -O - https://getcomposer.org/installer | php -- --install-dir=/share/CACHEDEV1_DATA --filename=composer
    
  2. 给Composer添加持久化别名
    打开刚才创建的/etc/profile.d/php_alias.sh,追加一行:

    alias composer='/share/CACHEDEV1_DATA/composer'
    

    保存后执行source /etc/profile.d/php_alias.sh,输入composer -V验证。

  3. 确保Composer不被清理
    因为数据盘是独立于系统分区的,重启、系统更新都不会删除这里的文件,所以Composer会一直保留。

额外提醒:防止系统更新覆盖配置

如果担心QNAP系统更新会重置/etc/profile.d/目录,可以把别名脚本放在数据盘,然后修改/etc/profile文件,追加一行:

source /share/CACHEDEV1_DATA/scripts/php_alias.sh

(前提是你把脚本移到了/share/CACHEDEV1_DATA/scripts/目录下)这样即使系统更新重置了系统分区的配置,数据盘里的脚本还能正常加载。

内容的提问来源于stack exchange,提问作者Popeye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:36