<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Записки программиста &#187; MySQL</title>
	<atom:link href="http://anton.bukarev.org/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://anton.bukarev.org</link>
	<description>Web-программирование и не только</description>
	<lastBuildDate>Thu, 05 Nov 2009 08:50:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Защита даных в MySQL</title>
		<link>http://anton.bukarev.org/web/mysql/zashhita-danyx-v-mysql/</link>
		<comments>http://anton.bukarev.org/web/mysql/zashhita-danyx-v-mysql/#comments</comments>
		<pubDate>Wed, 27 May 2009 18:41:21 +0000</pubDate>
		<dc:creator>Антон</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[защита данных]]></category>

		<guid isPermaLink="false">http://anton.bukarev.org/?p=412</guid>
		<description><![CDATA[В MySQL есть функции для хранения данных в зашифрованом виде. Речь пойдет о DES_ENCRYPT, DES_DESCRYPT и AES_ENCRYPT, AES_DECRYPT.

Функции DES_ENCRYPT и DES_DESCRYPT
В этом случае данные шифруются при помощи алгоритма Triple-DES. Правда, для работы с этими функциями MySQL должен быть собранным с поддержкой SSL. Используются эти функции следующим образом:



DES_ENCRYPT&#40;&#8216;строка для шифрования&#8217;, &#8216;ключ&#8217;&#41;







DES_DECRYPT&#40;&#8216;зашифрованная строка&#8217;, &#8216;ключ&#8217;&#41; 



Функции AES_ENCRYPT и [...]]]></description>
			<content:encoded><![CDATA[<p>В MySQL есть функции для хранения данных в зашифрованом виде. Речь пойдет о DES_ENCRYPT, DES_DESCRYPT и AES_ENCRYPT, AES_DECRYPT.</p>
<p><span id="more-412"></span></p>
<h2>Функции DES_ENCRYPT и DES_DESCRYPT</h2>
<p>В этом случае данные шифруются при помощи алгоритма Triple-DES. Правда, для работы с этими функциями MySQL должен быть собранным с поддержкой SSL. Используются эти функции следующим образом:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">DES_ENCRYPT<span class="br0">&#40;</span><span class="st0">&#8216;строка для шифрования&#8217;</span>, <span class="st0">&#8216;ключ&#8217;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">DES_DECRYPT<span class="br0">&#40;</span><span class="st0">&#8216;зашифрованная строка&#8217;</span>, <span class="st0">&#8216;ключ&#8217;</span><span class="br0">&#41;</span> </div>
</li>
</ol>
</div>
<h2>Функции AES_ENCRYPT и AES_DECRYPT</h2>
<p>Эти функции позволяют шифровать и расшифровывать данные с использованием официального алгоритма AES (”Расширенный стандарт шифрования”). Шифрование выполняется с длинной ключа в 128 бит. Впрочем, как написано в официальной документации MySQL, можно увеличить длину до 256 бит, повозившись с исходниками. Пример использования:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">AES_ENCRYPT<span class="br0">&#40;</span><span class="st0">&#8216;строка для шифрования&#8217;</span>, <span class="st0">&#8216;ключ&#8217;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">AES_DECRYPT<span class="br0">&#40;</span><span class="st0">&#8216;зашифрованная строка&#8217;</span>, <span class="st0">&#8216;ключ&#8217;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p></p>
 <img src="http://anton.bukarev.org/wp-content/plugins/feed-statistics.php?view=1&post_id=412" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://anton.bukarev.org/web/mysql/zashhita-danyx-v-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Создаем сервис коротких ссылок</title>
		<link>http://anton.bukarev.org/web/php/sozdaem-servis-korotkix-ssylok/</link>
		<comments>http://anton.bukarev.org/web/php/sozdaem-servis-korotkix-ssylok/#comments</comments>
		<pubDate>Sat, 23 May 2009 18:50:06 +0000</pubDate>
		<dc:creator>Антон</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[tinyurl.com]]></category>

		<guid isPermaLink="false">http://anton.bukarev.org/?p=269</guid>
		<description><![CDATA[Вероятно Вы уже знакомы с сервисом коротких ссылок tinyurl.com. Давайте создадим свой собственный сервис коротких ссылок.

Как работает сервис коротких ссылок
Например Вы залили файл на narod.ru/disk и получили ссылку вида http://narod.ru/disk/9036797010/somefile.html. Запомнить ее будет затруднительно, а записывать долго для этого и существуют сервисы коротких ссылок. Вы заходите на tinyurl.com,  копируете в специальную форму ссылку и [...]]]></description>
			<content:encoded><![CDATA[<p>Вероятно Вы уже знакомы с сервисом коротких ссылок tinyurl.com. Давайте создадим свой собственный сервис коротких ссылок.</p>
<p><span id="more-269"></span></p>
<h2>Как работает сервис коротких ссылок</h2>
<p>Например Вы залили файл на narod.ru/disk и получили ссылку вида http://narod.ru/disk/9036797010/somefile.html. Запомнить ее будет затруднительно, а записывать долго для этого и существуют сервисы коротких ссылок. Вы заходите на tinyurl.com,  копируете в специальную форму ссылку и получаете короткую ссылку вида http://tinyurl.com/8fp ее и запомнить, и записать намного быстрее.</p>
<h2>Приступим</h2>
<p>Для этого нам понадобится:</p>
<ul>
<li>PHP</li>
<li>MySQL</li>
<li>mod_rewrite</li>
</ul>
<p>
Для начала создадим новую базу данных, назвав ее url (для этого можете воспользоваться phpmyadmin). Теперь приступим к созданию таблицы. Назовем ее short_urls.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">CREATE TABLE</span> `short_urls` <span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">`id` <span class="kw2">INT</span><span class="br0">&#40;</span> <span class="nu0">11</span> <span class="br0">&#41;</span> <span class="kw3">NOT NULL</span> <span class="kw3">AUTO_INCREMENT</span> <span class="kw1">PRIMARY KEY</span> ,</div>
</li>
<li class="li1">
<div class="de1">`short` <span class="kw2">VARCHAR</span><span class="br0">&#40;</span> <span class="nu0">6</span> <span class="br0">&#41;</span> <span class="kw3">NOT NULL</span> ,</div>
</li>
<li class="li1">
<div class="de1">`url` <span class="kw2">VARCHAR</span><span class="br0">&#40;</span> <span class="nu0">1000</span> <span class="br0">&#41;</span> <span class="kw3">NOT NULL</span> ,</div>
</li>
<li class="li2">
<div class="de2">`stamped` <span class="kw2">DATETIME</span> <span class="kw3">NOT NULL</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span> ENGINE = MYISAM ;</div>
</li>
</ol>
</div>
<p>Первый столбец будет идентификатором. В столбце short будет храниться короткая часть ссылки (будет генерироваться ссылка вида http://yoursite.ru/xxxxxx, где xxxxxx короткая часть ссылки, xxxxxx будет состоять из цифр и букв это даст нам 2176782336 комбинаций). В столбце url будет храниться «укорачиваемая» ссылка. Последний столбец будет содержать в себе даты добавления ссылок.</p>
<p>Теперь создадим html шаблон сервиса. Создайте файл index.php и скопируйте в него следующий код</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;form id=&quot;shorten_form&quot; name=&quot;shorten_form&quot; method=&quot;post&quot; action=&quot;shorten.php&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;label&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div align=&quot;center&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;text&quot; name=&quot;url&quot; id=&quot;url&quot; /&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/label&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;label&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div align=&quot;center&quot;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;input type=&quot;submit&quot; name=&quot;submit&quot; id=&quot;submit&quot; value=&quot;укоротить&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/label&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>Пришло время для php. Создайе файл shuffle.php и вставте в него следующий код</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//функция для установки соединения с базой данных</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> dbconnect<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//HOST &#8211; адрес сервера баз данных (обычно localhost)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//USERNAME &#8211; имя пользователя</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="co1">//PASSWORD &#8211; пароль</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">$link</span> = <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">&#8216;HOST&#8217;</span>, <span class="st0">&#8216;USERNAME&#8217;</span>, <span class="st0">&#8216;PASSWORD&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//DB &#8211; имя базы данных (у меня url)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">$db_selected</span> = <a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">&#8216;DB&#8217;</span>, <span class="re0">$link</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Функция для генерирования уникальной ссылки длинны $numAlpha</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> generateurl<span class="br0">&#40;</span><span class="re0">$numAlpha</span>=<span class="nu0">6</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;dbconnect<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//соединяемся с базой данных</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="re0">$listAlpha</span> = <span class="st0">&#8216;abcdefghijklmnopqrstuvwxyz0123456789&#8242;</span>; <span class="co1">//символы из которых генерируется индентификатор</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <a href="http://www.php.net/str_shuffle"><span class="kw3">str_shuffle</span></a><span class="br0">&#40;</span><a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><a href="http://www.php.net/str_shuffle"><span class="kw3">str_shuffle</span></a><span class="br0">&#40;</span><span class="re0">$listAlpha</span><span class="br0">&#41;</span>,<span class="nu0">0</span>,<span class="re0">$numAlpha</span><span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="co1">//генерируем индентификатор и возвращаем</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//функция для «укорачивания» ссылок</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> geturl<span class="br0">&#40;</span><span class="re0">$in</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;dbconnect<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//соединяемся с базой</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//генерируем индентификатор и проверяем его уникальность</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="kw1">do</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">$out</span> = generateurl<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">$query</span> = <span class="st0">&quot;SELECT short &nbsp;FROM `short_urls` WHERE `short` = &#8216;$out&#8217;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$result</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a> &gt; <span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//добавляем данные в базу данных</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">$insert_query</span> = <span class="st0">&quot;INSERT INTO `short_urls` (`id`, `short`, `url`, `stamped`) VALUES (NULL, &#8216;$out&#8217;, &#8216;$in&#8217;, NOW());&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">$result</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$insert_query</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="kw1">return</span> <span class="st0">&quot;http://yoursite.ru/&quot;</span>.<span class="re0">$out</span>; <span class="co1">//генерируем и возвращаем короткую ссылку</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Последняя функция проверяет присутствует ли сгенерированый индентификатор в таблице, если присутствует, то генерируется новый, пока не сгенерируется уникальный индентификатор, затем генерируется ссылка.</p>
<p>Теперь соберем все вместе. Создайте файл forward.php и вставте в него следующий код</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">include</span> <span class="st0">&#8217;shuffle.php&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$i</span> = <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#8216;QUERY_STRING&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">//проверяем формат индентификатора</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st0">&quot;/^[0-9a-z]{6}$/&quot;</span>, <span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; dbconnect<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//соединяемся с базой</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$result</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT short, url FROM `short_urls` WHERE `short` = &#8216;$i&#8217;&quot;</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">//проверка на наличие индентификатора в базе данных</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span> &lt; <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location: http://yoursite.ru&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$row</span> = <a href="http://www.php.net/mysql_fetch_row"><span class="kw3">mysql_fetch_row</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location: &quot;</span>.<span class="re0">$row</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span>; <span class="co1">//переадресация по хранимому адресу</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location: http://yoursite.ru&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>В файл .htaccess вставте</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">XBitHack &nbsp; &nbsp; &nbsp;Off</div>
</li>
<li class="li1">
<div class="de1">RewriteEngine On</div>
</li>
<li class="li1">
<div class="de1">RewriteCond &nbsp; %{REQUEST_URI} \/([0-9a-z]{4})$ [NC]</div>
</li>
<li class="li1">
<div class="de1">RewriteRule &nbsp; ^(.*) http://www.yoursite.ru/forward.php?%1 [L]</div>
</li>
</ol>
</div>
<p>Теперь создайте файл shorten.php и вставте в него следующий код.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span> <span class="kw1">include</span> `<a href="http://www.php.net/shuffle"><span class="kw3">shuffle</span></a>.php`; <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;p align=<span class="st0">&quot;center&quot;</span>&gt;Ваша ссылка:</div>
</li>
<li class="li1">
<div class="de1">&lt;p align=<span class="st0">&quot;center&quot;</span>&gt;&lt;?php <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;url&#8217;</span><span class="br0">&#93;</span>; <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;p align=<span class="st0">&quot;center&quot;</span>&gt;Была уменьшена до:</div>
</li>
<li class="li2">
<div class="de2">&lt;p align=<span class="st0">&quot;center&quot;</span>&gt;&lt;?php <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> geturl<span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;url&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>shorten.php будет отображать короткую ссылку</p>
<p>Сервис коротких ссылок готов. Как Вы уже заметили в этом нет ничего сложного. Если возникли трудности, задавайте свои вопросы в комментариях</p>
<p><br class="spacer_" /></p>
 <img src="http://anton.bukarev.org/wp-content/plugins/feed-statistics.php?view=1&post_id=269" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://anton.bukarev.org/web/php/sozdaem-servis-korotkix-ssylok/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Установка MAMP (Apache, PHP и MySQL для Mac OS)</title>
		<link>http://anton.bukarev.org/mac-os/ustanovka-mamp-apache-php-i-mysql-dlya-mac-os/</link>
		<comments>http://anton.bukarev.org/mac-os/ustanovka-mamp-apache-php-i-mysql-dlya-mac-os/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 18:34:29 +0000</pubDate>
		<dc:creator>Антон</dc:creator>
				<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://anton.bukarev.org/?p=185</guid>
		<description><![CDATA[В статье Настройка Apache, PHP, MySQL в Mac OS 10.5 я рассказал как настроить установленные по умолчанию Apache и PHP. В этой статье расскажу об альтернативном варианте.

В этом случае все еще проще. Итак, приступим.
Установка MAMP
Скачайте дистрибутив MAMP (140 Мб), откройте образ и скопируйте каталог MAMP в папку Applications.

Запуск
Откройте каталог с приложениями, выберете папку MAMP и запустите [...]]]></description>
			<content:encoded><![CDATA[<p>В статье <a href="http://anton.bukarev.org/mac-os/config_apache_php_mysql/" target="_blank">Настройка Apache, PHP, MySQL в Mac OS 10.5</a> я рассказал как настроить установленные по умолчанию Apache и PHP. В этой статье расскажу об альтернативном варианте.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamplogo.png"><img class="alignnone size-full wp-image-190" title="mamplogo" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamplogo.png" alt="" width="374" height="103" /></a></div>
<p>В этом случае все еще проще. Итак, приступим.<span id="more-185"></span></p>
<h2>Установка MAMP</h2>
<p>Скачайте дистрибутив <a title="скачать MAMP" href="http://kent.dl.sourceforge.net/sourceforge/mamp/MAMP_1.7.2.dmg.zip" target="_blank">MAMP</a> (140 Мб), откройте образ и скопируйте каталог MAMP в папку Applications.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_dmg.png"><img class="alignnone size-full wp-image-191" title="mamp_dmg" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_dmg.png" alt="" width="500" height="419" /></a></div>
<h2>Запуск</h2>
<p>Откройте каталог с приложениями, выберете папку MAMP и запустите MAMP.app</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_folder.png"><img class="alignnone size-full wp-image-193" title="mamp_folder" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_folder.png" alt="" width="500" height="270" /></a></div>
<p>Откроется окно управления MAMP, запустятся Apache и MySQL. Если Вы увидите две зеленых иконки (как на скриншоте), то запуск прошел успешно.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_control.png"><img class="alignnone size-full wp-image-194" title="mamp_control" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_control.png" alt="" width="423" height="344" /></a></div>
<p>Также откроется браузер по умолчанию с адресом http://localhost:8888/MAMP/?language=ru.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_safari.png"><img class="alignnone size-full wp-image-195" title="mamp_safari" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_safari.png" alt="" width="500" height="389" /></a></div>
<p>На этой же странице можно посмотреть настройки MySQL и PHP, тут же есть доступ к встроенным утилитам: phpinfo, phpMyAdmin и SQLiteManager.</p>
<h2>Настройки</h2>
<p>В панели управления MAMP и нажмите там кнопку Настройки. В закладке Start/Stop можно задавать будут ли сервера запускаться при запуске MAMP и останавливаться при выходе из него, а также будет ли загружаться страница приветствия и ее место нахождение.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_ss.png"><img class="alignnone size-full wp-image-202" title="mamp_ss" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_ss.png" alt="" width="394" height="236" /></a></div>
<p>В закладка Порты можно поменять порты серверов Apache и MySQL.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_ports.png"><img class="alignnone size-full wp-image-198" title="mamp_ports" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_ports.png" alt="" width="394" height="236" /></a></div>
<p>В закладке PHP можно задать версию интерпретатора PHP, настройки кэша и использовать ли оптимизатор Zend.</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_php.png"><img class="alignnone size-full wp-image-199" title="mamp_php" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_php.png" alt="" width="394" height="236" /></a></div>
<p>Ну и наконец в закладке Apache остался последний параметр &#8211; Document Root (путь к корневому каталогу веб-сервера). По-умолчанию, это /Applications/MAMP/htdocs</p>
<div style="text-align: center;"><a href="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_dr2.png"><img class="alignnone size-full wp-image-201" title="mamp_dr2" src="http://anton.bukarev.org/wp-content/uploads/2009/02/mamp_dr2.png" alt="" width="394" height="236" /></a></div>
<p>Как и обещал, тут все проще, чем в ручной настройке. Ваши вопросы Вы всегда можете задать в комментариях <img src='http://anton.bukarev.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://anton.bukarev.org/wp-content/plugins/feed-statistics.php?view=1&post_id=185" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://anton.bukarev.org/mac-os/ustanovka-mamp-apache-php-i-mysql-dlya-mac-os/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Настройка Apache, PHP, MySQL в Mac OS 10.5</title>
		<link>http://anton.bukarev.org/mac-os/config_apache_php_mysql/</link>
		<comments>http://anton.bukarev.org/mac-os/config_apache_php_mysql/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 23:40:17 +0000</pubDate>
		<dc:creator>Антон</dc:creator>
				<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://anton.bukarev.org/?p=3</guid>
		<description><![CDATA[Сразу предупрежу, что на полное изложение темы не претендую. В этой статье хочу показать самое основное, чтобы у Вас все заработало.
В Mac OS X уже установлен Apache и PHP, только поумолчанию PHP не активирован совместно с Apache. Распишу по пунктам необходимые действия.
1. Выбираем Finder. Жмем Command+Shift+G. Вводим /etc/apache2
2. Скачиваем оттуда файл httpd.conf на Рабочий стол
3. [...]]]></description>
			<content:encoded><![CDATA[<p>Сразу предупрежу, что на полное изложение темы не претендую. В этой статье хочу показать самое основное, чтобы у Вас все заработало.<span id="more-3"></span></p>
<p>В Mac OS X уже установлен Apache и PHP, только поумолчанию PHP не активирован совместно с Apache. Распишу по пунктам необходимые действия.</p>
<p>1. Выбираем Finder. Жмем Command+Shift+G. Вводим <strong>/etc/apache2</strong><a href="http://anton.bukarev.org/wp-content/uploads/2008/11/finder.jpg"><img class="alignnone size-full wp-image-5" title="Переход к папке" src="http://anton.bukarev.org/wp-content/uploads/2008/11/finder.jpg" alt="" width="431" height="134" /></a><br />
2. Скачиваем оттуда файл httpd.conf на Рабочий стол<br />
3. Открываем его в TextEdit, жмем Command+F и вводим &#8220;<strong>LoadModule php5_module libexec/apache2/libphp5.so</strong>&#8220;. TextEdit найдет строчку: #LoadModule php5_module libexec/apache2/libphp5.so<a href="http://anton.bukarev.org/wp-content/uploads/2008/11/texedit.jpg"><img class="alignnone size-full wp-image-6" title="httpd.conf" src="http://anton.bukarev.org/wp-content/uploads/2008/11/texedit.jpg" alt="" width="475" height="442" /></a><br />
4. Убираем символ &#8220;#&#8221; в самом ее начале. Сохраняем файл<br />
5. Перетаскиваем файл обратно в начальную директорию (/etc/apache2). Вводим пароль пользователя root.<br />
Это все действия, которые нужно сделать, чтобы связать Apache и PHP.<br />
Теперь приступим к настройке MySQL.<br />
Для начала нужно загрузить последнюю версию MySQL Community Server. (на момент написания статьи mysql-5.0.67-osx10.5-x86.dmg)</p>
<p>Далее</p>
<p>1. Монтируем образ mysql-5.0.67-osx10.5-x86.dmg<br />
2. Устанавливаем mysql-5.0.67-osx10.5-x86.pkg<br />
3. Откройте приложение Терминал (Программы->Служебные программы->Терминал)<br />
4. Выполните команду <strong>sudo mkdir /var/mysql/</strong><br />
5. Создадим символьную ссылку командой <strong>sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock</strong><br />
6. Чтобы запустить MySQL нужно выполнить <strong>команду sudo /usr/local/mysql/bin/safe_mysqld</strong><a href="http://anton.bukarev.org/wp-content/uploads/2008/11/terminal-3.jpg"><img class="alignnone size-full wp-image-7" title="start mysqld" src="http://anton.bukarev.org/wp-content/uploads/2008/11/terminal-3.jpg" alt="" width="500" height="363" /></a></p>
<p>Настройка закончена. Чтобы запустить Apche</p>
<p>1. Зайдите в системные настройки (Программы->Системные настройки)<br />
2. В разделе Интернет и сеть зайдите в Общий доступ<br />
3. Поставьте галочку напротив Общий веб-доступ<a href="http://anton.bukarev.org/wp-content/uploads/2008/11/sys-3.jpg"><img class="alignnone size-full wp-image-8" title="start Apache" src="http://anton.bukarev.org/wp-content/uploads/2008/11/sys-3.jpg" alt="" width="500" height="409" /></a></p>
<p>Вы увидите уведомление, что общий доступ включен &#8211; это значит, что Apache запущен.</p>
<p>Теперь проверим наши действия, для этого запустите Safari и введите http://localhost/<a href="http://anton.bukarev.org/wp-content/uploads/2008/11/safari.jpg"><img class="alignnone size-full wp-image-9" title="localhost" src="http://anton.bukarev.org/wp-content/uploads/2008/11/safari.jpg" alt="" width="500" height="539" /></a></p>
<p>Если Вы видите такую страницу, то Apache запустился удачно.</p>
<p>Теперь проверим php, выполнив функцию phpinfo().</p>
<p>Откройте TextEdit и набейте следующий код:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/phpinfo"><span class="kw3">phpinfo</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p><a href='http://anton.bukarev.org/wp-content/uploads/2008/11/phpinfo.php.zip'>Скачать phpinfo.php</a></p>
<p>Найдите в своей домашней папке папку Сайты и сохраните в ней файл под именем phpinfo.php</p>
<p>Теперь выполним код. В Safari введите http://localhost/~имя вашего пользователя/phpinfo.php (в моем случае адрес такой http://localhost/~r00t/phpinfo.php)<a href="http://anton.bukarev.org/wp-content/uploads/2008/11/safari-2.jpg"><img class="alignnone size-full wp-image-10" title="phpinfo" src="http://anton.bukarev.org/wp-content/uploads/2008/11/safari-2.jpg" alt="" width="500" height="407" /></a></p>
<p>Если Вы видите что-то похожее на мой скриншот, то Apache с PHP Вы успешно связали.</p>
<p>Теперь проверим MySQL. Для этого напишем маленький скриптик на php.</p>
<p>В TextEdit наберите следующий код</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$mysql_server</span>=<span class="st0">&quot;localhost&quot;</span>; <span class="co1">//Адрес сервера</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$mysql_user</span>=<span class="st0">&quot;&quot;</span>; <span class="co1">//Имя пользователя</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$mysql_pass</span>=<span class="st0">&quot;&quot;</span>; <span class="co1">//Пароль</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//В данном случае имя и пароль пустые, так как в базе не создан пользователь</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$link</span> = <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$mysql_server</span>,<span class="re0">$mysql_user</span>,<span class="re0">$mysql_pass</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Could not connect: &quot;</span> . <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="br0">&#40;</span><span class="st0">&quot;Connected successfully&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$link</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p><a href='http://anton.bukarev.org/wp-content/uploads/2008/11/mysql.php.zip'>Скачать mysql.php</a></p>
<p>Сохраните его в той же папке, где сохранили phpinfo.php, под именем mysql.php. И запустите. Если Вы все сделали по инструкции, то увидите надпись «MySQL работает».</p>
<p>Если что-то не получилось, задавайте вопросы в коментариях, обязательно отвечу</p>
<p><strong><a href="http://anton.bukarev.org/mac-os/ustanovka-mamp-apache-php-i-mysql-dlya-mac-os/">Продолжение статьи</a></strong></p>
 <img src="http://anton.bukarev.org/wp-content/plugins/feed-statistics.php?view=1&post_id=3" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://anton.bukarev.org/mac-os/config_apache_php_mysql/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
