Я пытаюсь запустить бэкэнд-процесс и столкнулся с проблемой, заставив выскочки запустить команду yiic.
Я использую сервер xampp
Вот мой сценарий выскочки:
#description "Sample upstart"
#start on stopped
start on startup
stop on shutdown
respawn
chdir /opt/lampp/htdocs/my_project/protected
setuid mad
setgid www-data
script
exec /opt/lampp/htdocs/my_project/protected/yiic project test
end script
Поэтому, когда я делаю
sudo start test-monitor
запуск начинается, и кажется, что он запускает команду для проекта yii, поскольку в файле журнала yii обнаружена ошибка. Ошибка в файле журнала yii:
2014/10/31 15:06:44 [error] [worker.*] CDbConnection failed to open the DB connection: could not find driver
2014/10/31 15:06:44 [error] [worker.*] CDbConnection failed to open the DB connection: could not find driver
2014/10/31 15:06:44 [error] [worker.*] CDbConnection failed to open the DB connection: could not find driver
2014/10/31 15:06:44 [error] [worker.*] CDbConnection failed to open the DB connection: could not find driver
Однако, если я делаю команду вручную:
./ тест проекта
Это работает нормально. Может кто-нибудь, пожалуйста, помогите мне.
Вот коды для команды консоли yii:
public function actionTest(){
try{
while(1){
TestManager::_MonitorTest();
usleep(1000000);
}
}catch(Exception $e){
Yii::log( $e->getMessage(), 'error', 'worker.*');
}
}
Вот файл журнала выскочки (это не тот случай, когда я вынул sudo):
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Mysql соединение работает нормально, и я проверил его
После некоторых настойчивых попыток и некоторой конфигурации мне удалось решить проблему.
Поскольку сервер был сервером xampp, php устанавливается в xampp, поэтому существует проблема с окружением. Таким образом, каталог bin в php должен быть указан в upstart как таковой:
Это было решение в сценарии выскочки:
script
exec /opt/lampp/bin/php -f /opt/lampp/htdocs/my_project/protected/yiic.php project test
end script
Других решений пока нет …