пятница, 24 января 2014 г.

YII. PHP Error[2]: Error while sending QUERY packet

Это лечиться пингом сервера.
Для yii в коде пропишите:

Yii::app()->db->active = true;

Или в настройках main.php:

'class' => 'system.db.CDbConnection',
'connectionString' => 'mysql:host=localhost;dbname=some_db',
'emulatePrepare' => true,
'charset' => 'utf8',
 'active' => true, // <= Вот оно

среда, 22 января 2014 г.

angularjs Не отправляет данные через $http.post

Столкнулся с тем, что ангуляр отказывается  отправлять данные вот таким образом:

$scope.data = [];

$http.post('/url', {data: $scope.data}).success(function(response){
      console.log(response);
});


Оказалось, что отправлять данные он не отказывался. Он не мог правильно упаковать $scope.data, который является массивом. Если заменить массив на объект, то все заработает:

$scope.data = {}; // <=== вот оно

$http.post('/url', {data: $scope.data}).success(function(response){
      console.log(response);
});

понедельник, 6 января 2014 г.

mysql Не удаляется внешний ключ

Если внешний ключ не удаляется, а ошибка ни о чём вам не говорит можно выполнить команду SHOW ENGINE INNODB STATUS и посмотреть, что написано после заголовка LATEST FOREIGN KEY ERROR. Там должна быть более внятная информация о том что пошло не так.

Ещё можно посмотреть информацию в SHOW CREATE TABLE tableName, что бы уточнить какие ключи существуют.

пятница, 3 января 2014 г.

nginx Автоматическая генерация поддоменов

Вот конфиг для /etc/nginx/sites-available/default

server {
listen 80;

index index.php;

    server_name example.com *.example.com;
    root /www/$subdomain;
    set $subdomain "";

    if ($host ~* ^([a-z0-9-\.]+)\.localhost$) {
        set $subdomain $1;
    }
    if ($host ~* ^localhost$) {
        set $subdomain "";
    }

charset utf-8;

location / {
try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}



Теперь можно просто создавать в www папки и они будут доступны как поддомены *.localhost

Например:
/www/some
some.localhost


Разумеется предварительно нужно будет поправить /etc/hosts