Uygulamamın dağıtımında .sh komut dosyasını kullanmak istiyorum. Bu komut dosyası ev sunucumda (Ubuntu 15.10 Sunucu) yürütülebilir olarak işaretlendi. Bu komut dosyasına erişim, bu öğreticiyi kullanarak ssh aracılığıyla yapılır , bu komut dosyasını çalıştıran ssh girişini ayarladım. Yani temelde ben sadece aramak ssh deployer@XXX.com someArguments
ve someArguments
parametre olarak benim komut dosyası ile çalışır . Kullanıcı deployer
uid = 0 vardır, bu yüzden temelde root
(bu gelecekte değişecektir, ben sadece düzgün çalışana kadar izin sorunlarını ortadan kaldırmak için ayarladım).
Ve işlerin zorlaştığı yer burası. Komut dosyası /usr/bin/env: php: No such file or directory
komutta rapor verir /bin/composer install
( Composer kullanarak ). Bu senaryoya baktığımda işler daha garip. Bu hat önce, orada da denir /bin/composer self-update
ve /bin/composer -V
hem doğru çıktı düzgün çalışır ve görüntülediği.
Aşağıdaki şeyleri kontrol ettim:
/usr/bin/env php -v
doğru PHP sürümünü görüntüler (ile aynı/usr/bin/php -v
)whereis php
görüntülerphp: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gz
php5-cli
paket yüklü ve en yeni sürüm$PATH
içeren/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
which env
görüntüler/usr/bin/env
Ben de aşağıdaki şeyleri denedim:
- betiği doğrudan
bash deploy.sh
root altında çalıştırmak (bu kullanıcı ile aynı olduğundan) hatasız mükemmel çalışır - doğrudan başarısız komutları çalıştırmak - ayrıca hatasız mükemmel
Bu bana çok özel bir durum gibi geliyor, bu komutun neden çalışmadığı. Hata ayıklamak için 12 saat harcadım ve burada fikirlerim kalmadı.
Not: Benzer hata ( /usr/bin/env: node: No such file or directory
) olduğunda meydana gelir bower install
(kullanarak Bower ), ancak değil çalıştırırken npm install
(kullanarak UÖM'sini ).
sh deploy
ve bash deploy
her ikisi de aynı sonuçları veriyor
/usr/bin/env > environment.txt
sh deploy
yerinebash deploy
(belki biraz bashizm). " Aşağıdaki şeyleri " nasıl kontrol ettiniz ? Onları envanterin geçersiz kılmalarını ve sağlık önlemlerini keşfedebilmeniz için komut dosyasında kontrol etmenizi öneririm.