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 someArgumentsve someArgumentsparametre olarak benim komut dosyası ile çalışır . Kullanıcı deployeruid = 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 directorykomutta rapor verir /bin/composer install( Composer kullanarak ). Bu senaryoya baktığımda işler daha garip. Bu hat önce, orada da denir /bin/composer self-updateve /bin/composer -Vhem doğru çıktı düzgün çalışır ve görüntülediği.
Aşağıdaki şeyleri kontrol ettim:
/usr/bin/env php -vdoğru PHP sürümünü görüntüler (ile aynı/usr/bin/php -v)whereis phpgörüntülerphp: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gzphp5-clipaket yüklü ve en yeni sürüm$PATHiçeren/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gameswhich envgörüntüler/usr/bin/env
Ben de aşağıdaki şeyleri denedim:
- betiği doğrudan
bash deploy.shroot 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 deployve bash deployher ikisi de aynı sonuçları veriyor
/usr/bin/env > environment.txt

sh deployyerinebash 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.