CREATE TABLE newtable LIKE oldtable; INSERT newtable SELECT * FROM oldtable;
Заметки веб-разработчика*
* заметки о разработке сайтов на PHP/Javascript/MySQL, использовании библиотеки JQuery, работе с социальными движками и базами данных. В целом обо всем, с чем приходится сталкиваться обычному веб-программисту
Ярлыки
ubuntu
(20)
javascript
(7)
php
(7)
jquery
(6)
mysql
(6)
elgg
(5)
video
(5)
NetBeans
(4)
Apache
(3)
IDE
(3)
php5
(3)
программирование
(3)
юмор
(3)
SexyBookmark
(2)
XDebug
(2)
css3
(2)
ftp
(2)
mod-rewrite
(2)
nginx
(2)
plugins
(2)
postgres
(2)
социальные сети
(2)
Datepicker
(1)
Firefox
(1)
Google
(1)
Google Font API
(1)
Google Font Directory
(1)
JDK
(1)
SQL
(1)
SilverStripe
(1)
TrueType fonts
(1)
UI
(1)
add-on
(1)
bash
(1)
blogger.com
(1)
blogspot.com
(1)
bug
(1)
bugs
(1)
chrome
(1)
curl
(1)
curlftps
(1)
database
(1)
filezilla
(1)
global menu
(1)
gmailm google
(1)
htaccess
(1)
mail
(1)
mod
(1)
mount
(1)
mysqldump
(1)
pem-key
(1)
profile
(1)
safari
(1)
sendmail
(1)
sftp
(1)
smtp
(1)
ssh
(1)
trim
(1)
unity
(1)
url
(1)
web 2.0
(1)
widgets
(1)
word-wrap
(1)
валидация
(1)
веб-сервер
(1)
графика
(1)
дизайн
(1)
инъекции
(1)
истории
(1)
метаданные
(1)
музыка
(1)
ошибки
(1)
подсветка кода
(1)
создание плагинов
(1)
старые девайсы
(1)
уязвимости
(1)
фон
(1)
21 июля 2015 г.
Копируем таблицу MySQL из консоли
Ярлыки:
mysql
19 ноября 2013 г.
Как в Ubuntu запустить виртуальные хосты Apache под разными пользователями
Ярлыки:
Apache
Зачем нужно запускать виртуальные хосты под разными пользователями?
По-умолчанию Apache работает “от имени и по поручению” юзера www-data. Это значит что для веб-сервера будут доступны только те ресурсы (файли и каталоги), которые доступны для юзера www-data, соответственно и изменить он сможет только их. Как правило, на одном веб-сервере может располагаться сразу несколько виртуальных хостов (несколько сайтов), по-умолчанию все они будут доступны для юзера www-data и в случае взлома или поражения одного из ресурсов, остальные также могут быть поражены. Поэтому с целью обеспечения дополнительной безопастности существет возможность запуска виртуальных хостов от имени разных юзеров.
Как запустить виртуальные хосты от имени разных юзеров в Apache2?
Организовать работу виртуальных хостов под разными пользователями достаточно просто.
Для начала установим дополнительный модуль для апача apache2-mpm-itk. Так как этот модуль скомпилирован внутри apache2, во время установки появляется сообщение о том, чтотекущая версия apache и некоторые установленные модули могут быть удалени. Для установки запускаем следующую команду:
Для начала установим дополнительный модуль для апача apache2-mpm-itk. Так как этот модуль скомпилирован внутри apache2, во время установки появляется сообщение о том, чтотекущая версия apache и некоторые установленные модули могут быть удалени. Для установки запускаем следующую команду:
$ sudo apt-get install apache2-mpm-itk
В последующем перезапуске веб-сервера необходимости нет.
Теперь создадим новую группу
$ sudo addgroup GROUP_NAME
и юзера, под которыми будет работать один из наших виртуальных хостов
$ sudo useradd -g GROUP_NAME USER_NAME $ sudo passwd USER_NAME
Далее открываем файл конфигурации виртуального хоста и добавляем туда диррективы:
<IfModule mpm_itk_module> AssignUserId USER_NAME GROUP_NAME </IfModule>
Перед перезагрузкой apache установим соответствующие права на каталоги и файлы для нашего виртуального хоста
$ sudo chown USER_NAME:GROUP_NAME /var/www/some-virtualhost/ -R
Осталось только перезагрузить веб-сервер:
$ sudo service apache2 restart
Источник
10 декабря 2012 г.
Отключаем глобальное меню в Ubuntu 12.04
Ярлыки:
global menu,
ubuntu,
unity
Наверно не я один задаюсь вопросом, зачем разработчики Unity Desktop создали глобальное меню. Возможно в этом было чтото глубокое и хорошее, но в результате очень не удобно постоянно переключаться между окнами и искать нужный тебе пункт меню, при этом не всегда очевидно к какому из окон это меню относится.
И скорее всего, не у меня одного, появилась мысль его отключить :) Сделать это, к счастью, очень просто. Достаточно зайти в терминал и выполнить не хитрую комманду:
В результате было:
стало:
И скорее всего, не у меня одного, появилась мысль его отключить :) Сделать это, к счастью, очень просто. Достаточно зайти в терминал и выполнить не хитрую комманду:
sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt
В результате было:
стало:
1 ноября 2012 г.
Улучшаем производительность веб-ресурса. Установка mod_pagespeed в Ubuntu
Для начала загружаем пакет с сайта Google
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb
или для 32-битной системы
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.deb
Терь устанавливаем пакет (обезательно с правами root):
dpkg -i mod-pagespeed-*.deb
apt-get -f install
Настройка модуля осуществляется в файле /etc/apache2/mod-available/peagespeed.conf
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb
или для 32-битной системы
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.deb
Терь устанавливаем пакет (обезательно с правами root):
dpkg -i mod-pagespeed-*.deb
apt-get -f install
Настройка модуля осуществляется в файле /etc/apache2/mod-available/peagespeed.conf
5 октября 2012 г.
Как сделать редирект черз .htaccess если браузер IE6
Ярлыки:
Apache,
htaccess,
mod-rewrite
Иногда приходится разрабатывать проекты, работающий с ограниченным количеством браузеров, либо же без потдержки старых версий (IE6 к примеру).
В таких случаях логично организовать редирект на страницу с соответствующим текстом. Сделать это можно как при помощи Javasript-а, так и на стороне PHP. Но как по мне, более элегантным решением будет редирект на стороне веб-сервера Apache, а точнее при помощи фала .htaccess.
Создаем файл .htaccess в корне сайта либо же открываем существующий, и добписываем следующие директивы:
RewriteCond %{REQUEST_FILENAME} !^.png [nc] RewriteCond %{REQUEST_FILENAME} !^.css [nc] RewriteCond %{REQUEST_FILENAME} !^.jpg [nc] RewriteCond %{REQUEST_FILENAME} !^.js [nc] RewriteCond %{REQUEST_FILENAME} !^.gif [nc] RewriteCond %{HTTP_USER_AGENT} "Firefox/2" [or] RewriteCond %{HTTP_USER_AGENT} "Firefox/1" [or] RewriteCond %{HTTP_USER_AGENT} "Flock/1" [or] RewriteCond %{HTTP_USER_AGENT} "Camino/1" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/9" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/8" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/7" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/6" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/5" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/4" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/3" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/2" [or] RewriteCond %{HTTP_USER_AGENT} "Opera/1" [or] RewriteCond %{HTTP_USER_AGENT} "Safari/4" [or] RewriteCond %{HTTP_USER_AGENT} "Safari/3" [or] RewriteCond %{HTTP_USER_AGENT} "Safari/2" [or] RewriteCond %{HTTP_USER_AGENT} "Safari/1" [or] RewriteCond %{HTTP_USER_AGENT} "Navigator/" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 6" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 5" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 4" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 3" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 2" [or] RewriteCond %{HTTP_USER_AGENT} "MSIE 1" RewriteRule . upgrade.html [L]Конечно же работать все это будет только при условии подключеного модуля mod_rewrite.
20 августа 2012 г.
Как правильно установить NetBeans на Ubuntu 12.04
Я конечно не претендую, что описанный ниже метод асболютно правильный,
но он простой и обеспечивает мне стабильную работу приложения уже
достаточно долгое время...
Если устанавливать NetBeans сразу после установки системы, а я именно так всегда и делаю, то для начала понадобится установить JDK. Я много встречал негативных комментариев и "камней" в сторону дефолтного JDK, что решил воспользоваться альтернативным, а точнее Oracle JDK.
Порядок установки Oracle JDK следующий:
1. Удаляем OpenJDK:
sudo apt-get purge openjdk*
2. Открываем терминал и запускаем следующую последовательность комманд:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Теперь идем на сайт NetBeans и качаем последнюю версию IDE:
http://netbeans.org/downloads/index.html
Находим сохраненный файл (я обычно сохраняю его на Рабочий стол), открываем свойсва файла, находим вкладку Permissions и ставим галочку в поле Allow executing file as programm. Закрываем окно, запускаем файл и устанавливаем NetBeans.
Если после первого запуска IDE вы заметили что главное меню сливается с заголовком окна, то необходимо еще выполнить следующее: ищем файлик /usr/share/themes/Ambiance/gtk-2.0/gtkrc, открываем его для редактирования от имени админа
sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc
... находим строку 338 с текстом
style "menu" {
и меняем ее на
style "menu" = "dark" {
Сохраняем и перезапускаем NetBeans (если он был запущен)...
Если устанавливать NetBeans сразу после установки системы, а я именно так всегда и делаю, то для начала понадобится установить JDK. Я много встречал негативных комментариев и "камней" в сторону дефолтного JDK, что решил воспользоваться альтернативным, а точнее Oracle JDK.
Порядок установки Oracle JDK следующий:
1. Удаляем OpenJDK:
sudo apt-get purge openjdk*
2. Открываем терминал и запускаем следующую последовательность комманд:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
3. После успешной установки проверяем версию JDK
java -version
Теперь идем на сайт NetBeans и качаем последнюю версию IDE:
http://netbeans.org/downloads/index.html
Находим сохраненный файл (я обычно сохраняю его на Рабочий стол), открываем свойсва файла, находим вкладку Permissions и ставим галочку в поле Allow executing file as programm. Закрываем окно, запускаем файл и устанавливаем NetBeans.
Если после первого запуска IDE вы заметили что главное меню сливается с заголовком окна, то необходимо еще выполнить следующее: ищем файлик /usr/share/themes/Ambiance/gtk-2.0/gtkrc, открываем его для редактирования от имени админа
sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc
... находим строку 338 с текстом
style "menu" {
и меняем ее на
style "menu" = "dark" {
Сохраняем и перезапускаем NetBeans (если он был запущен)...
9 августа 2012 г.
Велосипеды на Javascript и jQuery
Ярлыки:
javascript,
jquery
Интересная статья с habra. Полезно знать каждому.
"В очередной раз открыв код коллег и ужаснувшись, я решил написать эту статью. Надеюсь для кого-нибудь это будет полезным, заодно и мне будет проще новичкам объяснять что у них в коде не так, просто кинув ссылку на эту статью.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми."
http://habrahabr.ru/post/149237/
"В очередной раз открыв код коллег и ужаснувшись, я решил написать эту статью. Надеюсь для кого-нибудь это будет полезным, заодно и мне будет проще новичкам объяснять что у них в коде не так, просто кинув ссылку на эту статью.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми."
http://habrahabr.ru/post/149237/
6 августа 2012 г.
Elgg: mod-rewrite для NGINX
Ярлыки:
elgg,
mod-rewrite,
nginx,
ubuntu
Сегодня развернул Elgg на веб-сервере NGINX, и первая проблема с которой столкнулся - это небходимость замены mod-rewrite директив, которые содержатся в файле .htaccess, на соответсвующие правила для NGINX (rewrite-rules).
И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.
Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:
И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.
Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:
server { listen 80; server_name elgg.domain.com; root /var/www-nginx/elgg/htdocs/; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; index index.php index.html; fastcgi_index index.php; client_max_body_size 8M; client_body_buffer_size 256K; rewrite ^/pg\/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1&$args; rewrite ^/pg\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2&$args; rewrite ^/tag\/(.+)\/?$ /engine/handlers/page_handler.php?handler=search&page=$1; rewrite ^/action\/([A-Za-z0-9\_\-\/]+)$ /engine/handlers/action_handler.php?action=$1&$args; rewrite ^/cache\/(.*)$ /engine/handlers/cache_handler.php?request=$1&$args; rewrite ^/services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/service_handler.php?handler=$1&request=$2&$args; rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/?$ /engine/handlers/export_handler.php?view=$1&guid=$2; rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4; rewrite /xml-rpc.php /engine/handlers/xml-rpc_handler.php; rewrite /mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php; rewrite ^/rewrite.php$ /install.php; if (!-d $request_filename){ set $rule_11 1$rule_11; } if (!-f $request_filename){ set $rule_11 2$rule_11; } if ($rule_11 = "21"){ rewrite ^/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1; } if (!-d $request_filename){ set $rule_12 1$rule_12; } if (!-f $request_filename){ set $rule_12 2$rule_12; } if ($rule_12 = "21"){ rewrite ^/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2; } location ~ \.php$ { include fastcgi_params; # Assuming php-fastcgi running on localhost port 9000 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } # Do not put CSS there or it will break simplecache location ~* \.(bmp|js|gif|ico|jpg|jpeg|png)$ { expires max; # log_not_found off; } }
Как установить и настроить NGINX+PHP+XDebug на Ubuntu 12.04
1. Установка NGINX-сервера:
sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx
2. Установка PHP:
sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql
В противном же случае достаточно установить пакет php5-fpm:
sudo apt-get install php5-fpm
3. Настройка виртуального хоста в NGINX
Открываем и редактируем файл /etc/nginx/sites-available/default:
sudo gedit /etc/nginx/sites-available/default
Для начала поменяем параметры root и index в секции server:
server{ ... root: /var/www;
index: index.php ... }
Если вы уже пользуетесь веб-сервером apache, то для правильной работы nginx нужно будет поменять номер порта с 80 на 8000:
server{ listen: 8000; ... }
Убираем комментарии со следующих строк:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }
4. Запускаем NGINX
sudo service nginx start
Также запускаем сервис, отвечающий за работу php:
sudo service php5-fpm start
5. Установка и настройка XDebug
Устанавливаем точно так же как описано в первой части статьи "Как настроить NetBeans для работы с XDebug"
Далее небходимо отредактировать файл /etc/php5/fpm/php.ini.
sudo gedit /etc/php5/fpm/php.ini
Перед тегом Date добавляем следующий код:
zend_extension="/usr/lib/php5/20090626/xdebug.so" xdebug.default_enable = On xdebug.var_display_max_depth=6 xdebug.remote_enable=on xdebug.remote_host=127.0.0.1 xdebug.remote_port=9900 xdebug.remote_handler=dbgp xdebug.idekey=netbeans-xdebug xdebug.remote_autostart=1 xdebug.remote_log=/tmp/xdebug.log xdebug.profiler_enable_trigger=1 xdebug.profiler_enable=0 xdebug.profiler_output_dir=/tmp/profiler xdebug.show_local_vars=1 xdebug.overload_var_dump=1... перезагружаем сервер
sudo service nginx restart
так как при перезагрузке сервера параметры php.ini автоматически не обновляются, необходимо также перезагрузить сервис php5-fpm:
sudo service php5-fpm restart
6. Настройка NetBeans
Открываем NetBeans Tools>Options>PHP>Debugging и в строке Debugger Port вводим значение 9900, нажимаем Ok.
На этом настройка завершена.
Осталось только поместить в /var/www тестовый файл index.php с кодом:
echo phpinfo();
26 июня 2012 г.
NetBeans: Что делать если цвет меню сливается с заголовком окна в Ubuntu 12.04
В Ubuntu 12.04 столкнулся с проблемой, когда меню моей любимой идешки сливается с цветом заголвка окна. Изза этого очень не удобно стало работать. Нашел простое решение данной проблемы, достаточно отредактировать файл netbeans.conf, который находится в директории установки netbeans (например: /home/user/netbeans7.2/etc)
В конец файл добавляем следующую диррективу:
-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
Более детальную информацию о решении проблмемы см:
http://hanynowsky.wordpress.com/2012/04/27/netbeans-ide-look-feel-under-ubuntu-12-04/
Не помогло?
Тогда ищем файлик /usr/share/themes/Ambiance/gtk-2.0/gtkrc, открываем его для редактирования от имени админа
sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc
Находим строку 338 с текстом
style "menu" {
и меняем ее на
style "menu" = "dark" {
Сохраняем и перезапускаем NetBeans (если он был запущен)...
В конец файл добавляем следующую диррективу:
-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
Более детальную информацию о решении проблмемы см:
http://hanynowsky.wordpress.com/2012/04/27/netbeans-ide-look-feel-under-ubuntu-12-04/
Не помогло?
Тогда ищем файлик /usr/share/themes/Ambiance/gtk-2.0/gtkrc, открываем его для редактирования от имени админа
sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc
Находим строку 338 с текстом
style "menu" {
и меняем ее на
style "menu" = "dark" {
Сохраняем и перезапускаем NetBeans (если он был запущен)...
Подписаться на:
Сообщения (Atom)