Добавьте псевдоним php и composer при запуске QNAP

Я столкнулся с несколькими проблемами с моим QNAP NAS TS-251+ при разработке нового проекта:

1) Псевдоним php отсутствует, и когда я добавляю его через командную строку, он удаляется при перезапуске NAS.

2) С Composer происходит то же самое, но при перезапуске он также удаляет Composer из системы.

Как я могу предотвратить это или обойти это так, чтобы при перезапуске моего NAS псевдоним php и composer уже был установлен.

1 ответ

Мне удалось решить эту проблему, добавив новый скрипт, который запускается при запуске моего NAS. QNAP предоставил несколько основных инструкций о том, как добавить скрипт запуска на своей вики-странице в разделе Запуск собственного приложения при запуске. Однако я добавил еще пару шагов к

Эти шаги довольно просты:

  1. Войдите в свой сервер NAS через SSH.
  2. Запустите следующую команду mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config (Бег ls /tmp/config даст вам что-то похожее ниже)

Вывод команды <code>vi /tmp/config/autorun.sh</code> это позволит вам редактировать / создавать файл с именем autorun.sh **</p></li><li><p>Для меня я хотел, чтобы этот файл был как можно более простым, чтобы мне не нужно было сильно его менять, поэтому скрипт вызывается из этого сценария оболочки. Поэтому добавьте следующее <code>autorun.sh</code>,</p></li></ol><p>Пример кода autorun.sh:</p><pre><code> #!/bin/sh
 # autorun script for Turbo NAS
 /share/CACHEDEV1_DATA/.qpkg/autorun/autorun_startup.sh start
 exit 0
</code></pre><p>Вы заметите путь <code>/share/CACHEDEV1_DATA/.qpkg/autorun/</code> это то место, где содержится мой новый скрипт, который я хочу запустить, вам не нужно иметь свой здесь, если вы этого не хотите, однако я знаю, что скрипт не будет удален, если он будет размещен здесь. <code>autorun_startup.sh</code> это имя скрипта, который я хочу запустить, и <code>start</code> это команда в сценарии, которую я хочу запустить.</p><ol start=

  • Бежать chmod +x /tmp/config/autorun.sh чтобы убедиться, что autorun.sh на самом деле работает

  • Сохраните файл и запустите umount /tmp/config (Важный).

  • Перейдите к папке, которую вы положили в autorun.sh (скрипт в моем случае /share/CACHEDEV1_DATA/.qpkg/autorun/) и создайте любые нужные вам папки.

  • Создайте свой новый файл оболочки, используя vi и называйте это как хотите (опять же в моем случае это называется 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 "$1" 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: $0 {start|stop|restart}"
            exit 1
    
    esac
    
    exit $RETVAL
    
    1. Бежать chmod +x /share/CACHEDEV1_DATA/.qpkg/autorun/autorun_startup.sh чтобы убедиться, что ваш скрипт работает.

    2. Перезагрузите систему NAS, чтобы убедиться, что скрипт запущен. После перезапуска для моего скрипта я просто сделал php -version через терминал, чтобы убедиться, что псевдоним php работает, и он сделал.

    (*) С шагами 3 и 8 вы можете сделать это с помощью WinSCP или продолжить с помощью командной строки (SSH). Для меня я решил сделать это через WinSCP, но здесь команда все еще для SSH

    Я довольно новичок в вопросах, связанных с сервером, так что если у кого-то есть способ лучше.

    Другие вопросы по тегам