2013-09-12 2 views
0

Я изучаю как Yii, так и Git в то же время, и я нахожу проблемы с моими коммитами. Я использую BitBucket, если это имеет значение.Yii и Git Repos

В принципе, если я создаю проект и передаю репо, когда я попытаюсь вытащить это репо на другую машину, я начну с целой кучи ошибок конфигурации времени Yii.

Я нашел способ обойти его, но он кажется грязным. Если я загружаю более старую фиксацию репо сразу после добавления проекта и удаляю проект вручную, то повторно добавьте его через инструменты yii (yiic), я могу перезаписать его с помощью обновлений от последнего фиксации, чтобы вернуть все обратно ,

Это кажется грязным и, как будто он просит неприятностей. Что-то я здесь делаю с Yii?

Редактировать Ниже приводится точное сообщение об ошибке, как представляется:

CException 

Application runtime path "/Applications/MAMP/htdocs/yii-sandbox/projects/trackstar/protected/runtime" is not valid. Please make sure it is a directory writable by the Web server process. 

/Applications/MAMP/htdocs/yii-sandbox/framework/base/CApplication.php(289) 

277    return $this->_runtimePath; 
278   } 
279  } 
280 
281  /** 
282  * Sets the directory that stores runtime files. 
283  * @param string $path the directory that stores runtime files. 
284  * @throws CException if the directory does not exist or is not writable 
285  */ 
286  public function setRuntimePath($path) 
287  { 
288   if(($runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath)) 
289    throw new CException(Yii::t('yii','Application runtime path "{path}" is not valid. Please make sure it is a directory writable by the Web server process.', 
290     array('{path}'=>$path))); 
291   $this->_runtimePath=$runtimePath; 
292  } 
293 
294  /** 
295  * Returns the root directory that holds all third-party extensions. 
296  * @return string the directory that contains all extensions. Defaults to the 'extensions' directory under 'protected'. 
297  */ 
298  public function getExtensionPath() 
299  { 
300   return Yii::getPathOfAlias('ext'); 
301  } 
+0

Вы можете обновить свой вопрос с более подробной информацией об этих ошибках? Сначала предположим. Это происходит, потому что вы добавили в свой каталог репозитория личные файлы – Alik

+0

. Я не уверен, что вы подразумеваете под частными файлами temp - снова новый для yii и .git - есть ли какой-то конкретный каталог, который я должен игнорировать? – TH1981

ответ

2

Вы добавили файл конфигурации main.php в репозиторий git. Этот файл содержит параметры конфигурации для каждого хоста, которые, вероятно, не будут действительны, если файл будет перенесен на другой компьютер, как вы узнаете.

Решение состоит в том, чтобы не содержать файл конфигурации в реальном времени в репозитории. Вместо этого включите ссылочный файл конфигурации (который не будет загружен Yii) и скопируйте его содержимое в новый main.php при развертывании. Вот что вам нужно сделать, как первый шаг:

git mv main.php main.reference.php 
git commit -m "renamed configuration file" 

После этого также необходимо добавить имя /protected/config/main.php в список файлов, которые GIT игнорирования, так что это не будет беспокоить вас о неверсионных файлах ваш каталог развертывания. Чтобы сделать это, создайте файл с именем .gitignore в корневой директории вашей проверки и добавьте строку

protected/config/main.php 
+1

Еще одна вещь для добавления - даже после выключения вам нужно будет установить правильные права на папку времени и ресурсы. – ineersa

+0

спасибо - это сработало. Пути были несколько отличны от одной машины к другой. Я также использовал этот процесс для управления текущей версией, поскольку каталоги 'framework' и' requirements' не находятся в папках 'public_html'. Это требует немного жонглирования для настройки, но как только там намного проще управлять. – TH1981

0

пытаются использовать gitignore поместить зависимые пользовательские файлы там, так что эти файлы не будут переписаны при натяжении и подталкивая

Смежные вопросы