在 QNAP Startup 上添加 php 和 composer 别名

Add php and composer alias on QNAP Startup

我在开发新项目时遇到了 QNAP NAS TS-251+ 的几个问题,这些是:

1) 没有 php 别名,当我通过命令行添加别名时,它会在 NAS 重启时被删除。

2) Composer except on restart it removes Composer 和系统也会发生类似的事情。

我怎样才能阻止这种情况发生或绕过它,以便当我的 NAS 重新启动时 php 和作曲家别名已经设置好。

我设法通过添加一个新脚本解决了这个问题,该脚本会在我的 NAS 启动时 运行s。 QNAP 在 Running Your Own Application at Startup 下的维基页面上提供了一些关于如何添加启动脚本的基本说明。但是我又添加了几个步骤 t

这些步骤相当基本:

  1. 通过 SSH 登录您的 NAS 服务器。
  2. 运行 下面的命令 mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config (运行ning ls /tmp/config 会给你类似于下面的东西)

  1. 运行 vi /tmp/config/autorun.sh 这将允许您 edit/create 一个名为 autorun.sh **

  2. 的文件
  3. 对我来说,我想让这个文件尽可能简单,这样我就不必对它进行太多更改,因此只需使用此 Shell 脚本调用脚本即可。所以将以下内容添加到 autorun.sh.

autorun.sh 代码示例:

 #!/bin/sh
 # autorun script for Turbo NAS
 /share/CACHEDEV1_DATA/.qpkg/autorun/autorun_startup.sh start
 exit 0

您会注意到 /share/CACHEDEV1_DATA/.qpkg/autorun/ 的路径,这是包含我想要 运行 的新脚本的路径,如果您不想,则不必将您的脚本放在这里但是我知道如果放在这里脚本不会被删除。 autorun_startup.sh这是我要运行ning的脚本名称,start是我要运行ning的脚本中的命令。

  1. 运行 chmod +x /tmp/config/autorun.sh 以确保 autorun.sh 实际上是 运行nable.

  2. 保存文件并运行umount /tmp/config(重要)。

  3. 导航到您放在 autorun.sh 中的文件夹(在我的例子中是脚本 /share/CACHEDEV1_DATA/.qpkg/autorun/),然后根据需要创建任何文件夹。

  4. 使用 vi 创建新的 shell 文件并随意调用它(同样在我的例子中它被称为 autorun_startup.sh)并将脚本添加到文件。我添加的脚本在下面,但你可以添加任何你想要的启动脚本。

autorun_startup.sh 代码示例:

#!/bin/sh

RETVAL=0
QPKG_NAME="autorun"
APACHE_ROOT=`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f 
/etc/config/def_share.info`
QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f /etc/config/qpkg.conf)

addPHPAlias() {
    /bin/cat /etc/profile | /bin/grep "php" | /bin/grep "/usr/local/apache/bin/php" 1>>/dev/null 2>>/dev/null
    [ $? -ne 0 ] && /bin/echo "alias php='/usr/local/apache/bin/php'" >> /etc/profile
}

addComposerAlias() {
    /bin/cat /etc/profile | /bin/grep "composer" | /bin/grep "/usr/local/bin/composer" 1>>/dev/null 2>>/dev/null
    [ $? -ne 0 ] && /bin/echo "alias composer='/usr/local/bin/composer'" >> /etc/profile
}

addPHPComposerAlias() {
    /bin/cat /etc/profile | /bin/grep "php-composer" | /bin/grep "/usr/local/apache/bin/php /usr/local/bin/composer" 1>>/dev/null 2>>/dev/null
    [ $? -ne 0 ] && /bin/echo "alias php-composer='php /usr/local/bin/composer'" >> /etc/profile
}

download_composer() {
    curl -sS https://getcomposer.org/installer | /usr/local/apache/bin/php -- --install-dir=/usr/local/bin --filename=composer
}

case "" in
    start)
        /bin/echo "Enable PHP alias..."
            /sbin/log_tool -t 0 -a "Enable PHP alias..."
        addPHPAlias

        /bin/echo "Downloading Composer..."
        /sbin/log_tool -t 0 -a "Downloading Composer..."
        download_composer

        /bin/echo "Enable composer alias..."
        /sbin/log_tool -t 0 -a "Enable composer alias..."
        addComposerAlias

        /bin/echo "Adding php composer alias..."
        /sbin/log_tool -t 0 -a "Adding php composer alias..."
        addPHPComposerAlias

        /bin/echo "Use it: php-composer"
        /sbin/log_tool -t 0 -a "Use it: php-composer"

        ;;
stop)
        ;;

restart)
        ;;
*)
        echo "Usage: [=11=] {start|stop|restart}"
        exit 1

esac

exit $RETVAL
  1. 运行 chmod +x /share/CACHEDEV1_DATA/.qpkg/autorun/autorun_startup.sh 以确保您的脚本 运行 可用。

  2. 重新启动您的 NAS 系统以确保脚本已 运行。重新启动我的脚本后,我只是通过终端执行 php -version 以确保 php 别名有效并且确实有效。

(*) With steps 3 and 8 you can either do this via something like WinSCP or continue doing it via command line (SSH). For me I chose to do it via WinSCP but here is the command still for SSH

我对服务器相关的东西还很陌生,所以如果有人有更好的方法,那就太棒了。