<?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>Xis' blog &#187; wamp</title>
	<atom:link href="http://xis.schowek.net/tag/wamp/feed/" rel="self" type="application/rss+xml" />
	<link>http://xis.schowek.net</link>
	<description>Mój wirtualny schowek</description>
	<lastBuildDate>Thu, 10 Mar 2011 18:41:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>NGINX z Symfony pod Windows</title>
		<link>http://xis.schowek.net/2009/08/24/nginx-z-symfony-pod-windows/</link>
		<comments>http://xis.schowek.net/2009/08/24/nginx-z-symfony-pod-windows/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 17:05:46 +0000</pubDate>
		<dc:creator>xis</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[wamp]]></category>

		<guid isPermaLink="false">http://xis.schowek.net/?p=358</guid>
		<description><![CDATA[NGINX to szybki i lekki serwer HTTP, który mimo faktu, że zajmuje jedynie ok. 2 MB dysku, posiada sporo mozliwości konfiguracyjnych, takich jak virtual-hosts, czy url-rewriting. Dzięki FastCGI pozwala na obsługę skryptów PHP, ale i innych języków. Pod windowsem, w domowej deweloperce króluje zestaw WAMP, w skład którego whodzi Windows, Apache, MySQL i PHP. Postanowiłem [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nginx.net/">NGINX</a> to szybki i lekki serwer <a href="http://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a>, który mimo faktu, że zajmuje jedynie ok. 2 MB dysku, posiada sporo mozliwości konfiguracyjnych, takich jak <em>virtual-hosts</em>, czy <em>url-rewriting</em>. Dzięki <a href="http://pl.wikipedia.org/wiki/FastCGI">FastCGI</a> pozwala na obsługę skryptów <a href="http://php.net">PHP</a>, ale i innych języków.<br />
Pod windowsem, w domowej <em>deweloperce</em> króluje zestaw <a href="http://pl.wikipedia.org/wiki/WAMP">WAMP</a>, w skład którego whodzi Windows, <a href="http://pl.wikipedia.org/wiki/Apache_(serwer)">Apache</a>, <a href="http://pl.wikipedia.org/wiki/MySQL">MySQL</a> i <a href="http://pl.wikipedia.org/wiki/PHP">PHP</a>. Postanowiłem wykonać coś, co możnaby określić <em>WNMP</em>, czyli starego, ciężkiego Apacza zamienić na jego nowszy i lżejszy odpowiednik.<br />
Całość jednak ma mi pozwalać kontynuwać prace nad kilkoma projektami, które tworzę z użyciem frameworka <a href="http://www.symfony-project.org/">Symfony</a>.</p>
<p>Jak uruchomić serwer NGINX ze wsparciem dla projektów Symfony pod Windows?</p>
<p>Ściągamy <a href="http://nginx.net">najnowszą wersję serwera NGINX</a> &#8211; od niedawna istnieje wersja natywna, a nie <a href="http://www.cygwin.com/">cygwinowa</a>, jakie były <a href="http://www.kevinworthington.com/nginx-for-windows/">niedawno popularne</a>. Natywna wersja powinnna być dużo szybsza od poprzedniczki. Serwer instalujemy w np. <strong>c:/dev/tools/nginx</strong>.</p>
<p>Zakładam, że system zarządzania bazą danych MySQL, framework Symfony, oraz sam PHP jest już zainstalowany na Twoim komputerze. Zakładam też, że zarówno MySQL, jak i PHP przygotowane są do współpracy z Symfony. Jeśli nie &#8211; w sieci jest <a href="http://www.poetryofprogramming.com/pl/symfony/install-symfony-framework-xp-vista-wamp/">mnóstwo opisów jak to zrobić</a>.</p>
<p>Aby łatwo było uruchamiać i zatrzymywać serwer NGINX, musimy utworzyć następujące skrypty i zapisać je w katalogu NGINXa:</p>
<p><strong>start-nginx.bat</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">echo</span> off
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">NGINX_HOME</span>=c:<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tools<span style="color: #000000; font-weight: bold;">/</span>nginx
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">PHP_HOME</span>=c:<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tools<span style="color: #000000; font-weight: bold;">/</span>php
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">FASTCGI_ADDR</span>=127.0.0.1
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">FASTCGI_PORT</span>=<span style="color: #000000;">9000</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Startujemy nginx&quot;</span>
start <span style="color: #000000; font-weight: bold;">%</span>NGINX_HOME<span style="color: #000000; font-weight: bold;">%/</span>nginx.exe
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Startujemy php-cgi&quot;</span>
start <span style="color: #000000; font-weight: bold;">/</span>B <span style="color: #000000; font-weight: bold;">%</span>PHP_HOME<span style="color: #000000; font-weight: bold;">%/</span>php-cgi.exe <span style="color: #660033;">-b</span> <span style="color: #000000; font-weight: bold;">%</span>FASTCGI_ADDR<span style="color: #000000; font-weight: bold;">%</span>:<span style="color: #000000; font-weight: bold;">%</span>FASTCGI_PORT<span style="color: #000000; font-weight: bold;">%</span> <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">%</span>PHP_HOME<span style="color: #000000; font-weight: bold;">%/</span>php.ini
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></div></div>

<p><strong>stop-nginx.bat</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">echo</span> off
taskkill <span style="color: #000000; font-weight: bold;">/</span>f <span style="color: #000000; font-weight: bold;">/</span>IM nginx.exe
taskkill <span style="color: #000000; font-weight: bold;">/</span>f <span style="color: #000000; font-weight: bold;">/</span>IM php-cgi.exe
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></div></div>

<p>Teraz wystarczy tylko skonfigurować NGINX tak, by </p>
<ul>
<li>pozwalał na wykonywanie skryptów PHP za pomocą fastCGI</li>
<li>pozwalał na uruchamianie skryptów napisanych we frameworku Symfony</li>
</ul>
<p>Edytujemy skrypt konfiguracyjny NGINXa (<strong>conf/nginx.conf</strong>):</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">worker_processes  <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
&nbsp;
events <span style="color: #00AA00;">&#123;</span>
    worker_connections  <span style="color: #cc66cc;">64</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
http <span style="color: #00AA00;">&#123;</span>
    include       mime.types<span style="color: #00AA00;">;</span>
    default_type  application/octet-stream<span style="color: #00AA00;">;</span>
&nbsp;
    client_header_timeout   10m<span style="color: #00AA00;">;</span>
    client_body_timeout     10m<span style="color: #00AA00;">;</span>
    send_timeout            10m<span style="color: #00AA00;">;</span>
&nbsp;
    connection_pool_size            <span style="color: #cc66cc;">256</span><span style="color: #00AA00;">;</span>
    client_header_buffer_size       1k<span style="color: #00AA00;">;</span>
    large_client_header_buffers     <span style="color: #cc66cc;">4</span> 2k<span style="color: #00AA00;">;</span>
    request_pool_size               4k<span style="color: #00AA00;">;</span>
&nbsp;
    gzip on<span style="color: #00AA00;">;</span>
    gzip_min_length <span style="color: #cc66cc;">1100</span><span style="color: #00AA00;">;</span>
    gzip_buffers    <span style="color: #cc66cc;">4</span> 8k<span style="color: #00AA00;">;</span>
    gzip_types      <span style="color: #993333;">text</span>/plain<span style="color: #00AA00;">;</span>
&nbsp;
    output_buffers  <span style="color: #cc66cc;">1</span> 32k<span style="color: #00AA00;">;</span>
    postpone_output <span style="color: #cc66cc;">1460</span><span style="color: #00AA00;">;</span>
&nbsp;
    sendfile        on<span style="color: #00AA00;">;</span>
    tcp_nopush      on<span style="color: #00AA00;">;</span>
    tcp_nodelay     on<span style="color: #00AA00;">;</span>
&nbsp;
    keepalive_timeout       <span style="color: #cc66cc;">75</span> <span style="color: #cc66cc;">20</span><span style="color: #00AA00;">;</span>
    ignore_invalid_headers  on<span style="color: #00AA00;">;</span>
&nbsp;
server <span style="color: #00AA00;">&#123;</span>
    set  $docroot     c<span style="color: #00AA00;">:</span>/dev/php/symfony/myproject<span style="color: #00AA00;">;</span>
    root $docroot/web<span style="color: #00AA00;">;</span>
    index  index.php<span style="color: #00AA00;">;</span>
&nbsp;
    listen       <span style="color: #cc66cc;">80</span><span style="color: #00AA00;">;</span>
    server_name  localhost<span style="color: #00AA00;">;</span>
&nbsp;
    log_format main
                <span style="color: #ff0000;">'$remote_addr - $remote_user [$time_local] '</span>
                <span style="color: #ff0000;">'&quot;$request&quot; $status $bytes_sent '</span>
                <span style="color: #ff0000;">'&quot;$http_referer&quot; &quot;$http_user_agent&quot; '</span>
                <span style="color: #ff0000;">'&quot;$gzip_ratio&quot;'</span><span style="color: #00AA00;">;</span> 
    access_log  $docroot/log/myproject<span style="color: #6666ff;">.access</span><span style="color: #6666ff;">.log</span>  main<span style="color: #00AA00;">;</span>
&nbsp;
    charset utf-<span style="color: #cc66cc;">8</span><span style="color: #00AA00;">;</span>
&nbsp;
    location / <span style="color: #00AA00;">&#123;</span>
        if <span style="color: #00AA00;">&#40;</span>-f $request_filename<span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
            expires max<span style="color: #00AA00;">;</span>
            break<span style="color: #00AA00;">;</span>
        <span style="color: #00AA00;">&#125;</span>
        rewrite <span style="color: #00AA00;">^</span><span style="color: #00AA00;">&#40;</span>.<span style="color: #00AA00;">*</span><span style="color: #00AA00;">&#41;</span>/index<span style="color: #6666ff;">.php</span> last<span style="color: #00AA00;">;</span>
    <span style="color: #00AA00;">&#125;</span>
&nbsp;
    location /sf/ <span style="color: #00AA00;">&#123;</span>
          root c<span style="color: #00AA00;">:</span>/dev/tools/php/data/symfony-1.2.7/data/web<span style="color: #00AA00;">;</span>
    <span style="color: #00AA00;">&#125;</span>            
&nbsp;
    location ~ \.php<span style="color: #00AA00;">&#40;</span>$|/<span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
        set $the_uri $uri<span style="color: #00AA00;">;</span>
        if <span style="color: #00AA00;">&#40;</span>$the_uri ~ <span style="color: #ff0000;">&quot;^(.+)/$&quot;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
            set $the_uri    $<span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
        <span style="color: #00AA00;">&#125;</span>
&nbsp;
        set  $script     $the_uri<span style="color: #00AA00;">;</span>
        set  $path_info  <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span>
&nbsp;
        if <span style="color: #00AA00;">&#40;</span>$uri ~ <span style="color: #ff0000;">&quot;^(.+<span style="color: #000099; font-weight: bold;">\.</span>php)(/.+)&quot;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span>
            set  $script     $<span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
            set  $path_info  $<span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span>
        <span style="color: #00AA00;">&#125;</span>
&nbsp;
        fastcgi_index   index.php<span style="color: #00AA00;">;</span>
        fastcgi_pass   127.0.0.1<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">9000</span><span style="color: #00AA00;">;</span>
        include fastcgi_params<span style="color: #00AA00;">;</span>
&nbsp;
        fastcgi_param  SCRIPT_FILENAME  $docroot/web$script<span style="color: #00AA00;">;</span>
        fastcgi_param  SCRIPT_NAME      $script<span style="color: #00AA00;">;</span>
        fastcgi_param  PATH_INFO        $path_info<span style="color: #00AA00;">;</span> 
        fastcgi_param  SERVER_NAME      $host<span style="color: #00AA00;">;</span>
    <span style="color: #00AA00;">&#125;</span>
&nbsp;
    location ~ /\<span style="color: #6666ff;">.ht</span> <span style="color: #00AA00;">&#123;</span>
        deny  all<span style="color: #00AA00;">;</span>
    <span style="color: #00AA00;">&#125;</span>
  <span style="color: #00AA00;">&#125;</span>    
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Pliczek konfiguracyjny NGINX&#8217;a jest dość czytelny i łatwo go zrozumieć (łatwo go też rozbudować i zoptymalizować jeśli np. używamy virtual-hostów). Na uwagę zasługuje jednak fakt, że przed przekazaniem argumentów do FastCGI musimy nieco &#8222;rozpracować&#8221; żądanie i wydobyć z niego zmienne $script i $path_info, ewentualnie usuwając zakańczający je znak slash (zmienna $the_uri). Warto też odnotować, że NGINX wspiera znane z Apacza aliasy &#8211; widoczna tu sekcja <strong>location /sf/</strong>.<br />
Zauważ, że port 9000 wspomniany jest także w skrypcie startującym NGINX &#8211; możesz wybrać dowolny inny większy niż 1024 (niższe wymagają roli administratora i są zarezerwowane dla tzw. <em>well-known-services</em>).</p>
<p>Gotowe, teraz możemy uruchamiać NGINX poleceniem <strong>start-nginx.bat</strong> (z katalogu NGINXa) i zatrzymywać poprzez <strong>stop-nginx.bat</strong>.<br />
Nasz projekt powinien być dostępny pod adresem <a href="http://localhost/">http://localhost/</a> &#8211; czy to zakończonym slashem, czy tez nie.</p>
<p>Oczywiście nie jest to konfiguracja idealna &#8211; wspiera tylko jeden projekt (<strong>myproject</strong>), ale daje dobre podstawy do zbudowania konfiguracji dla wielu projektów i osobnych virtual-hostów dla każdego z nich. Warto wiedzieć, że konfiguracja NGINXa wspiera dyrektywę <strong>include</strong>, dzięki której możliwe jest importowanie konfiguracji z zewnętrznych plików konfiguracyjnych (np. po jednym dla każdego virtual-hosta) np. z sekcjami <strong>server</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xis.schowek.net/2009/08/24/nginx-z-symfony-pod-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zen Cart w zgodzie z WAMP</title>
		<link>http://xis.schowek.net/2009/01/06/zen-cart-w-zgodzie-z-wamp/</link>
		<comments>http://xis.schowek.net/2009/01/06/zen-cart-w-zgodzie-z-wamp/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 21:24:05 +0000</pubDate>
		<dc:creator>xis</dc:creator>
				<category><![CDATA[Do zapamiętania]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[zen cart]]></category>

		<guid isPermaLink="false">http://xis.schowek.net/?p=174</guid>
		<description><![CDATA[Ostatnio miałem okazję wykonać kilka modyfikacji dla platformy sklepowej Zen Cart zainstalowanej na serwerze mojego klienta. Zen Cart to platforma sklepowa oparta o darmowy osCommerce. Istnieje dla niego dość sporo rozszerzeń i wtyczek, ale moje zlecenie było tak specyficzne, że niestety nie obyło się bez potrzeby modyfikacji kodu sklepu (czego, mówiąc szczerze, bardzo starałem się [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio miałem okazję wykonać kilka modyfikacji dla platformy sklepowej <a href="http://www.zencart.pl/">Zen Cart</a> zainstalowanej na serwerze mojego klienta. Zen Cart to platforma sklepowa oparta o darmowy <a href="http://pl.wikipedia.org/wiki/OsCommerce">osCommerce</a>. Istnieje dla niego dość sporo rozszerzeń i wtyczek, ale moje zlecenie było tak specyficzne, że niestety nie obyło się bez potrzeby modyfikacji kodu sklepu (czego, mówiąc szczerze, bardzo starałem się uniknąć).</p>
<p>Wersja produkcyjna sklepu działa pod kontrolą systemu <a href="http://pl.wikipedia.org/wiki/Unix">UNIX</a>&#8216;owego, a specyfika zlecenia polegała na tym, że musiałem dokonać kilku poważnych poprawek &#8211; co najważniejsze &#8211; działając na różnych platformach (czasem musiałem pracować na domowym Linuksie, czasem na Windows).</p>
<p>Przygotowanie środowiska roboczego pod Linuksem zajęło mi naprawdę niewiele czasu; szybko napisałem skrypty automatycznie pobierające bazę danych i synchronizujące pliki kodu z wersją produkcyjną. Gorzej, gdy zacząłem potrzebować możliwości modyfikacji kodu sklepu spod Windows. Muszę przyznać, że był to mój debiut w pisaniu czegokolwiek w php na tym systemie, ale w końcu postanowiłem dać mu szansę. Jako środowiska programistycznego użyłem <a href="http://www.aptana.com/">Aptana Studio</a> (choć mam wrażenie, że wystarczyłby sam <a href="http://www.eclipse.org/">Eclipse</a> z <a href="http://www.eclipse.org/pdt/">PDT</a>), a całość zamierzałem postawić na &#8211; znanym mi ze słyszenia &#8211; <a href="http://pl.wikipedia.org/wiki/WAMP">WAMP</a>ie. Instalacja WAMP odbyła się bardzo sprawnie, pierwsze <em>Hello World</em> &#8211; również bez niespodzianek. Problem jednak zaczął się po instalacji &#8211; a jakże &#8211; Zen Carta.</p>
<p>Pobrałem zrzut bazy danych i pliki z kodem sklepu i zainstalowałem je w WAMP wykorzystując do tego możliwość tworzenia aliasów.  Okazało się jednak, że instalacja ta nie działa, WAMP serwuje mi tylko komunikaty błędów, albo jakieś krzaki zamiast polskich znaków. Oto lista czynności, które musiałem wykonać, aby zacząć normalnie pracować nad zmianami dla klienta:</p>
<p><strong>Problem 1</strong> &#8211; <a href="http://www.apache.org/">Apache</a> częstuje mnie błędem <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error">500</a> (Internal Server Error) przy jakimkolwiek odwołaniu.</p>
<p>Problem ten spowodowany był wyłączoną domyślnie obsługą <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html">modułu rewrite</a> przez WAMPowego Apacza. Pomogła zwykła edycja <strong>httpd.conf</strong> i odkomentowanie linijki:</p>
<pre>LoadModule rewrite_module modules/mod_rewrite.so</pre>
<p>(oczywiście po tym procesie należy wyedytować odpowiednio plik <strong>.htacces</strong> &#8211; zgodnie z potrzebami i ścieżkami)</p>
<p><strong>Problem 2</strong> &#8211; Kodowanie polskich znaków bazy danych</p>
<p>Zen Cart niespecjalnie zwraca uwagę na różne możliwości kodowania znaków diakrytycznych bazy danych &#8211; na serwerze produkcyjnym była jakaś domyślna konfiguracja i taką też wgrałem u siebie. Niestety, okazało się, że WAMPowe domyślne ustawienie kodowania UTF8 pozwala na wczytanie bazy bez problemów (wpisy są dobrze widoczne z poziomu <a href="http://www.phpmyadmin.net/home_page/index.php">PhpMyAdmina</a>), jednak sam sklep wyświetla znaki zapytania zamiast polskich literek.  Tu nie obyło się bez modyfikacji kodu Zen Carta i tak  w pliku <strong>/includes/init_includes/init_database.php</strong> dodałem na końcu pliku linijki:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> HTTP_SERVER <span style="color: #339933;">==</span> <span style="color: #0000ff;">'http://localhost'</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Execute<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET NAMES 'latin2'  COLLATE 'latin2_general_ci'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>i wreszcie zobaczyłem polskie znaki na moim <em>localhost</em>. Powyższy <em>ifcheck</em> wstawiłem po to, by system działał z innymi znakami tylko na konfiguracji roboczej &#8211; w wersji produkcyjnej niech zostanie bez zmian. Później i tak usunę te linijki, toteż opatrzyłem je łatwymi do odnalezienia komentarzami. Dodam, że Zen Cart jest tak napisany, że połączenie z bazą danych odbywa się w jeszcze kilku innych miejscach,  należy więc mieć na względzie potencjalną potrzebę dodania powyższych linijek do innych plików, zawierających linijkę:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$db</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>connect<span style="color: #009900;">&#40;</span> DB_SERVER<span style="color: #339933;">,</span> DB_SERVER_USERNAME<span style="color: #339933;">,</span> DB_SERVER_PASSWORD<span style="color: #339933;">,</span> DB_DATABASE<span style="color: #339933;">,</span> USE_PCONNECT<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Problem 3</strong> &#8211; Puste listy produktów</p>
<p>Kiedy już zażegnałem problemy &#8216;techniczne&#8217;, okazało się, że sklep działa, ale listy produktów są w nim puste. Nie dostawałem komunikatów błędów, ale mimo to strona główna zawierała jedynie boczne <em>sideboksy</em>, a w środku nic. Okazało się, że problemem tutaj był fakt, że domyślna konfiguracja php w WAMP ma wyłączoną opcję<strong> Short Tags</strong>, co powoduje, że wszelkie<em> template&#8217;y</em> zawierające znacznik otwarcia kodu php <strong>&lt;?</strong> zamiast <strong>&lt;?php</strong> nie były interpretowane przez parser php. Włączenie powyższej opcji w pliku <strong>php.ini</strong> spowodowało prawidłowe wyświetlanie produktów.</p>
<p>Po tych poprawkach i restarcie wszystkich usług WAMPa mogłem wreszcie zacząć prace nad sklepem. Wydaje mi się jednak, że &#8211; gdybym chciał oprzeć na takiej konfiguracji wersję produkcyją sklepu &#8211; musiałbym się jeszcze sporo natrudzić, by uznać to rozwiązanie za stabilne.</p>
]]></content:encoded>
			<wfw:commentRss>http://xis.schowek.net/2009/01/06/zen-cart-w-zgodzie-z-wamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

