shell — Добавление псевдонима php и composer при запуске QNAP

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

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

2) похожая вещь случается для Композитор кроме как при перезагрузке он удаляет Композитор а также из системы.

Как я могу предотвратить это или обойти это так, чтобы при перезапуске моего 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 даст вам что-то похожее ниже)

& lt; code & gt; mount / sbin / hal_app & lt; / code & gt; вывод команды

  1. Бежать vi /tmp/config/autorun.sh это позволит вам редактировать / создавать файл с именем autorun.sh **

  2. Для меня я хотел, чтобы этот файл был как можно более простым, чтобы мне не нужно было сильно его менять, поэтому сценарий просто вызывается из этого сценария оболочки. Поэтому добавьте следующее 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 это имя скрипта, который я хочу запустить, и start это команда в сценарии, которую я хочу запустить.

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

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

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

  4. Создайте свой новый файл оболочки, используя 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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]