Исходный код файла «.htaccess» DirectoryIndex index.php <FilesMatch "\.(gif|jpg|jpeg|png)$"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA] </FilesMatch> Исходный код файла «_watermark.php» <?php waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']); function waterMark($original) { $original = urldecode($original); $info_o = @getImageSize($original); if (!$info_o) return false; $info_w = @getImageSize('watermark.png'); if (!$info_w) return false; header("Content-Type: ".$info_o['mime']); $original = @imageCreateFromString(file_get_contents($original)); $watermark = @imagecreatefrompng("watermark.png"); $out = imageCreateTrueColor($info_o[0],$info_o[1]); […]
Как обнулить ID инкремент в базе
ALTER TABLE имятаблицы AUTO_INCREMENT = 0;
Случайный юзер агент php curl
Случайный юзер агент php curl <?php // Updated 9/12/2013 function random_user_agent() { $browser_freq = array ( "Internet Explorer" => 11.8, "Firefox" => 28.2, "Chrome" => 52.9, "Safari" => 3.9, "Opera"=>1.8 ); $browser_strings = array ( "Internet Explorer" => array ( "Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR […]
Изменить кодировку сравнения mysql таблиц на utf8_general_ci
SELECT CONCAT('ALTER TABLE ', t.TABLE_SCHEMA, '.', t.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as sqlcode FROM information_schema.TABLES t WHERE 1 AND t.TABLE_SCHEMA = 'ИМЯВАШЕЙТАБЛИЦЫ' ORDER BY 1 И в параметрах не забудьте выставить галку Полные тексты Также в файле /etc/phpmyadmin/config.inc.php не мешало бы прописать $cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
Идеальный конфиг mysql
У меня в свое время после нескольких дней оптимизации по каждому параметру для MyISAM на средненагруженном сервере в итоге вышел такой конфиг (по возможности убрано всё лишнее и оставлены лишь необходимые мне настройки): [mysqld] default-storage-engine=MyISAM innodb=OFF skip-symbolic-links skip-networking skip-name-resolve skip-federated bind-address = 127.0.0.1 max_connect_errors = 1K max_join_size=200M max_allowed_packet=16M key_buffer_size=128M query_cache_size = 256M max_heap_table_size=256M tmp_table_size=256M max_connections […]
Возникла ошибка при подключении сервера баз данных
Долго боролся с этой проблемой, но так и не понял как вылечил. Все же склоняюсь к тому что в базе данных присутствовали одновременно два типа таблиц InnoDB и myISAM. Нужно все перевести в один тип. И по умолчанию для вновь создаваемых поставить MyISAM(в моем случае). Еще проблема может быть в синтаксической ошибке в конфиге Список […]
Проверить взломан ли сервер Ubuntu через ssh
Ищем новые php файлы за последние 7 дней командой find / -type f -name '*.php' -mtime -7
Ubuntu сервер жрет всю память? Не, не слышал
На всех серверах частенько проверяю свободный рамм командой top и заметил что занято более 80% почти всегда, но не паникуйте. На самом деле все кешируется, а если мем память действительно кончается, то кэш удаляется. Реально доступную память нужно проверять командой free -m Вторая строка там где буфер кэш фрии Подробнее тут
Защита от скачивания файлов по прямым ссылкам
Также решает проблему переполнения буфера при скачивании больших файлов function file_force_download($file) { if (file_exists($file)) { // сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт // если этого не сделать файл будет читаться в память полностью! if (ob_get_level()) { ob_start(); ob_end_clean(); } // заставляем браузер показать окно сохранения файла header('Content-Description: File Transfer'); header('Content-Type: […]
Очистка mem памяти Ubuntu через ssh
sync; echo 3 > /proc/sys/vm/drop_caches