И так. хотим чтоб поля в таблице с auto_increment в Mysql начинался например со 100
Всё просто
[cc lang=”mysql”]
ALTER TABLE tbl_name AUTO_INCREMENT = 100
[/cc]
И так. хотим чтоб поля в таблице с auto_increment в Mysql начинался например со 100
Всё просто
[cc lang=”mysql”]
ALTER TABLE tbl_name AUTO_INCREMENT = 100
[/cc]
PHP Fatal error: [Zend Optimizer] Zend Optimizer 3.3.3 is incompatible with eAccelerator 0.9.5.3 in Unknown on line 0
Вот что мне выдал апач и убился 🙂
Гугл долго ничего толкового сказать не мог. оказалось что
1 зенд оптимизер в конфиг php.ini надо включать последним в конце файла.
eaccelerator.ini надо подключать не в отдельном файле как я писал ранее а в php.ini
выше всех остальных расширений я первую строку из eaccelerator.ini перенёс в php.ini
потом идёт ioncube потом зенд
в итоге имеем шаятан машину.
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with the ionCube PHP Loader v3.1.32, Copyright (c) 2002-2007, by ionCube Ltd., and
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
После очередного обновления ubuntu 8.04 LTS, Апач начал вываливаться с ошибкой
ALERT – canary mismatch on efree() – heap overflow detected
Долгие поиски выявили что баг описан уже и я не первый.
Для меня это первый баг, который повлиял на стабильность работы сервера
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.Thank you for the report, and for helping us make PHP better.
Собирать свежий пхп из сорцов мне не хотелось(суровое детсво, где я много компилил..), я слил с ubuntu 8.10 sources.list
сделал
apt-get update
apt-get install php5-common
после чего установилась php 5.2.6
После ночи работы пока всё работает
продолжаю облегчать жизнь серверу.
eAccelerator – все мы знаем что при обращении к файлу пхп вэб сервер компилирует пхп файл в некую программу, которая в дальнейшем, что-то делает и выдаёт нам результат в виде html, ну и кто-то задумался(может отбукился 🙂 ): “а зачем постоянно делать одну и туже работу – компилировать при каждом обращении один и тот же файл”, и вот eAccelerator берёт откомпилированный php файл и складывает во временную папку и когда пользователь обращается к очередному пхп файлу в дело вступает eAccelerator, который проверяет есть ли уже “готовый” запрашиваемый файл, если находит готовый то сразу запускает его, тем самым облегчает жизнь серверу (значительно снижает нагрузку на процессор) например у меня нагрузка в часы пик с 70% упала до 7-25%
ставим php5-dev
apt-get install php5-dev
берём свежий дистрибутив с http://eaccelerator.net/
распаковываем, заходим в извлечённый каталог
phpize
./configure –enable-eaccelerator=shared
make
make install
cd /etc/php5/conf.d
Создаём конфигурационный файл для акселератора
touch eacclerator.ini
вставляем в него содержимое
zend_extension = “/usr/lib/php5/20060613+lfs/eaccelerator.so”
eaccelerator.shm_size = “0”
eaccelerator.cache_dir = “/var/cache/eaccelerator”
eaccelerator.enable = “1”
eaccelerator.optimizer = “1”
eaccelerator.check_mtime = “1”
eaccelerator.debug = “0”
eaccelerator.filter = “”
eaccelerator.shm_max = “0”
eaccelerator.shm_ttl = “0”
eaccelerator.shm_prune_period = “0”
eaccelerator.shm_only = “0”
eaccelerator.compress = “1”
eaccelerator.compress_level = “7”
eaccelerator.allowed_admin_path = “/var/www/”
создаю каталог для кэша
mkdir /var/cache/eaccelerator
chmod 777 /var/cache/eaccelerator
теперь можно перезапустить apache
для контроля над тех процессом есть файл control.php
в нём находим логин пароль и перекидываем в нужную нам папку на территории вэб сервера ну и заходим 🙂
Пришёл мне заказ написать пхп бота обучаемого 🙂
и дали конкретный сайт с самописным форумом %)
загвоздка там была в работе с куками. долго искал как максимально упростить этот процесс. вот получилось так
function send_get($get_url,$refer)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, “http://111.133.11.17:8080”);
curl_setopt($ch, CURLOPT_URL, $get_url);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_COOKIEJAR, “1.txt”);
curl_setopt($ch, CURLOPT_COOKIEFILE, “1.txt”);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla Firefox 3 (compatible; MSIE 6.0; LAS Linux)”);
curl_setopt($ch, CURLOPT_VERBOSE,1);
return $data = curl_exec($ch);
}
function send_post($post_url,$post_data,$refer)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, “http://111.133.11.17:8080”);
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_COOKIEJAR, “1.txt”);
curl_setopt($ch, CURLOPT_COOKIEFILE, “1.txt”);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla Firefox 3 (compatible; MSIE 6.0; LAS Linux)”);
curl_setopt($ch, CURLOPT_VERBOSE,1);
echo $data = curl_exec($ch);
curl_close($ch);
return $type;
}
Главное:
curl_setopt($ch, CURLOPT_COOKIEJAR, “1.txt”);
curl_setopt($ch, CURLOPT_COOKIEFILE, “1.txt”);
Все куки сваливаются в файл 1.txt и отправляются благополучно в нужный момент нужной страничке
Возможные траблы:
ФАйл с кукаи создаётся в томже каталоге где работает скрипт поэтому либо в каталоге парва должны быть полные либо сами созадём файл и даём к нему права 🙂