<?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>BBProject.net &#187; apache</title>
	<atom:link href="http://www.bbproject.net/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bbproject.net</link>
	<description>Programowanie, webmastering, informatyka</description>
	<lastBuildDate>Tue, 03 Aug 2010 08:22:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Własny serwer WWW, instalacja Apache i PHP</title>
		<link>http://www.bbproject.net/2009/12/wlasny-serwer-www-instalacja-apache-i-php/</link>
		<comments>http://www.bbproject.net/2009/12/wlasny-serwer-www-instalacja-apache-i-php/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 08:51:38 +0000</pubDate>
		<dc:creator>M@ster</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[konfiguracja]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[serwer]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.bbproject.net/?p=62</guid>
		<description><![CDATA[W życiu każdego webmastera, czy też developera, nadchodzi taki moment, w którym postanawia on uruchomić własny serwer WWW w celu pracy na lokalnej maszynie. Nikt nie lubi, po każdorazowym zapisaniu skryptu PHP, wrzucać go na docelowy serwer z obsługą PHP tylko po to, aby zobaczyć efekt działania. Dużo wygodniejszym rozwiązaniem, jest skorzystanie z lokalnie postawionego [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-64" title="Serwer" src="http://www.bbproject.net/wp-content/uploads/2009/12/server_cables-160x108.jpg" alt="Serwer" width="160" height="108" />W życiu każdego webmastera, czy też developera, nadchodzi taki moment, w którym postanawia on uruchomić własny serwer WWW w celu pracy na lokalnej maszynie. Nikt nie lubi, po każdorazowym zapisaniu skryptu PHP, wrzucać go na docelowy serwer z obsługą PHP tylko po to, aby zobaczyć efekt działania. Dużo wygodniejszym rozwiązaniem, jest skorzystanie z lokalnie postawionego serwera wraz z obsługą PHP oraz bazą danych MySQL.</p>
<p>Istnieją wprawdzie gotowe paczki, zawierające w sobie wszystkie te komponenty, instalowane automatycznie bez zbędnych zabaw z konfiguracją, niemniej jednak, z reguły pakiety te posiadają nieaktualne już wersji programów składowych, czy też instalują nadmiar rzeczy nam zbędnych. Być może ręczna instalacja serwera, parsera oraz bazy danych jest bardziej skomplikowana, jednakże, mamy kontrolę nad tym co, gdzie i jak instalujemy.</p>
<p><span id="more-62"></span>Wpis ten, jest pierwszą częścią instrukcji, krok po kroku, jak postawić lokalny serwer WWW. Opis skierowany jest w kierunku maszyny roboczej, która jest używana do pisania strony WWW, bądź skryptu PHP a niżeli jako docelowy system serwerowy.</p>
<h4>Apache</h4>
<p><img class="size-full wp-image-65 alignright" title="Apache" src="http://www.bbproject.net/wp-content/uploads/2009/12/apache.png" alt="Apache" width="150" height="150" /><a href="http://pl.wikipedia.org/wiki/Apache_%28serwer%29">Apache</a> HTTP, jest to serwer WWW, czyli aplikacja sprawiająca, że po wpisaniu adresu IP naszego komputera, możliwe jest przeglądanie stron udostępnionych przez ów serwer.</p>
<p>Pierwszą czynnością, jakiej musimy dokonać, jest oczywiście pobranie samego programu. Przechodzimy zatem na <a href="http://httpd.apache.org">stronę producenta</a> i pobieramy najnowszą wersję na platformę Windows. W tym celu, z lewego menu wybieramy <em>Download</em> &gt; <em>from a mirror</em>. Pobieramy paczkę oznaczoną jako <em>Win32 Binary without crypto</em>.</p>
<h5>Instalacja</h5>
<p>Po udanym pobraniu pliku, przechodzimy do instalacji, uruchamiany zapisany na dysku plik. Pierwszy ekran powitalny informuje nas o wersji pakietu, przechodzimy do następnego okna. Po zaakceptowaniu licencji dochodzimy do <em>Server Information</em> w którym musimy podać parametry naszego serwera. W zasadzie możemy pozostawić wartości domyślne, nie mają one większego znaczenie, zwłaszcza że docelowo sami będzie edytować plik konfiguracji serwera.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-66" title="Apache - Server Information" src="http://www.bbproject.net/wp-content/uploads/2009/12/apache_server_information.png" alt="Apache - Server Information" width="504" height="381" /></p>
<p>W oknie <em>Setup Type</em> wybieramy <em>Typical</em>. Ścieżka instalacji może pozostać domyślna. Kończmy instalację klikając <em>Install</em>.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-67" title="Apache - Installing" src="http://www.bbproject.net/wp-content/uploads/2009/12/apache_installing.png" alt="Apache - Installing" width="504" height="381" /></p>
<p>Po zakończonej instalacji, wpisując w pasku adresu przeglądarki adres <em>localhost</em>, naszym oczom powinien pokazać się napis <strong>It works!</strong> Jeśli takowego nie widzimy, możliwe że inna aplikacja nasłuchuje już na porcie 80, stąd serwer Apache nie może zostać uruchomiony. Jedną z takich aplikacji, jest komunikator Skype, nie wiadomo dlaczego, zajmuje on port 80, mimo iż jest to port zarezerwowany właśnie dla usług serwera WWW. W tej sytuacji wymagany będzie restart komputera. Stan serwera możemy sprawdzić, klikając na nową ikonę w zasobniku systemowym.</p>
<h5>Konfiguracja</h5>
<p>Po zakończeniu instalacji, musimy jeszcze dokonać kilku drobnych zmian w konfiguracji serwera. Między innymi przenieść folder z dokumentami html do innej lokacji, najlepiej takiej która nie znajduje się na partycji systemowej. Robimy to w celu odseparowania plików jakie serwer ma udostępniać od samego oprogramowania.</p>
<p>Przechodzimy do folderu w którym zainstalowaliśmy Apache, do podkatalogu <em>conf</em>, domyślnie będzie to <em>C:\Program Files\Apache Software Foundation\Apache2.2\conf</em>. Otwieramy do edycji plik <em>httpd.conf</em>.</p>
<p>Odszukujemy linię zaczynającą się od <em>ServerAdmin</em> i zmieniamy jej wartość na nasz adres e-mail:</p>
<pre class="brush: plain">ServerAdmin twoj@adres.email</pre>
<p>Nieco niżej odnajdujemy parametr <em>#ServerName</em> i zmieniamy go w następujący sposób:</p>
<pre class="brush: plain">ServerName :80</pre>
<p>Znaczek # na początku linii, oznacza komentarz, usuwamy go załączając w ten sposób daną komendę. Najważniejsze dla nas ustawienie to <em>DocumentRoot</em>, wskazujące folder przechowywania plików udostępnianych przez serwer. Wybieramy dogodną dla siebie lokalizację na dysku i zmieniamy wartość parametru.</p>
<pre class="brush: plain">DocumentRoot "G:\Server\www"</pre>
<p>Podobnie musimy postąpić z linią:</p>
<pre class="brush: plain">&lt;Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"&gt;</pre>
<p>&#8230;zmieniając ją na:</p>
<pre class="brush: plain">&lt;Directory "G:\Server\www"&gt;</pre>
<p>Zapisujemy plik konfiguracji a następnie restartujemy serwer w celu jej uaktywnienia.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-68" title="Apache - Service Monitor" src="http://www.bbproject.net/wp-content/uploads/2009/12/apache_service_monitor.png" alt="Apache - Service Monitor" width="531" height="331" /></p>
<p>Po odświeżeniu adresu <em>localhost</em> w przeglądarce, powinniśmy otrzymać zawartość folderu, z uwagi na fakt iż nie unieśliśmy żadnego pliku w zmienionej ścieżce dokumentów serwera. Naprawiamy szybko ten błąd tworząc przykładowy plik html i zapisując go pod nazwą <em>index.html</em>.</p>
<pre class="brush: xml">&lt;html&gt;
  &lt;head&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;h1&gt;Hello world!&lt;/h1&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre>
<h5>Podsumowanie</h5>
<p>Cały proces może wyglądać dość skomplikowanie, jednakże sprowadza się on do instalacji oprogramowania serwera, kilku drobnych zmian w pliku konfiguracyjnym oraz zrestartowania usługi.</p>
<p>Jeśli posiadamy publiczny adres IP, wpisując go w przeglądarce innej maszyny niż nasza, powinniśmy ujrzeć dokładnie tą samą stronę co lokalnie.</p>
<h4>PHP</h4>
<p><img class="alignright size-thumbnail wp-image-69" title="PHP" src="http://www.bbproject.net/wp-content/uploads/2009/12/php-160x84.png" alt="PHP" width="160" height="84" /><a href="http://pl.wikipedia.org/wiki/PHP">PHP</a> jest parserem języka PHP <img src='http://www.bbproject.net/wp-includes/images/smilies/icon_smile.png' alt=':)' class='wp-smiley' /> , umożliwiając nam uruchamianie jego skryptów. Główne zastosowanie, znajduje on właśnie w dynamicznym generowaniu treści stron internetowych.</p>
<p>Podobnie jak w przypadku serwera WWW, musimy najpierw pobrać odpowiednie oprogramowanie. Przechodzimy zatem na stronę <a href="http://www.php.net">php.net</a> i z prawej kolumny pobierany najnowszą wersję stabilną (<em>stable</em>). W moim wypadku było to PHP 5.3.1. W sekcji <em>Windows Binaries</em> zostaniemy przeniesieni na kolejną <a href="http://windows.php.net/download">stronę</a>, gdzie znajdują się pliki wykonywalne dla platformy Windows. Pobieramy wersję <em>VC6 x86 Thread Safe</em> w postaci archiwum ZIP. Jest to na tyle istotne, gdyż inna, z czterech dostępnych, nie będzie poprawnie współpracować z serwerem Apache.</p>
<h5>Instalacja</h5>
<p>Instalacja sprowadza się do wypakowania zawartości archiwum. Jako iż wersja ta nie wymaga instalacji, najlepiej będzie jeśli umieścimy ją w stworzonym wcześniej folderze Server w podkatalogu php.</p>
<h5>Konfiguracja</h5>
<p>Przejdźmy zatem do konfiguracji. W głównym folderze PHP robimy kopię pliku <em>php.ini-development</em> i zmieniamy nazwę na <em>php.ini</em>. Otwieramy nowy plik do edycji. Aby nie zaciemniać obrazu, znajdujemy poniższe parametry i zmieniamy je tak jak poniżej:</p>
<pre class="brush: plain">doc_root = "G:\Server\www"</pre>
<pre class="brush: plain">extension_dir = "G:\Server\php\ext"</pre>
<pre class="brush: plain">date.timezone = "Europe/Warsaw"</pre>
<p>Jeśli któryś z parametrów jest poprzedzony znakiem komentarza ; (średnikiem), należy go usunąć. Odpowiednie ścieżki modyfikujemy w zależności od tego gdzie umieściliśmy nasz folder z dokumentami html, oraz sam parser PHP. Jeżeli będziemy używać w PHP funkcji do wysyłania poczty elektronicznej, dobrze jest też ustawić parametry serwera SMTP:</p>
<pre class="brush: plain">SMTP = twoj.serwer.smtp</pre>
<pre class="brush: plain">sendmail_from = twoj@adres.email</pre>
<p>Oczywiście należy tutaj podać swój serwer SMTP oraz domyślny adres e-mail, jaki ma widnieć w polu „od”, wysłanych za pośrednictwem PHP listów.</p>
<p>Nas sam koniec przechodzimy do sekcji <em>Dynamic Extensions</em>. Poniżej niej, znajdziemy listę wszystkich dostępnych rozszerzeń w PHP. Domyślnie wszystkie nie są ładowane (znak komentarza przed każdą z linijek). Aby w przyszłości uniknąć niepotrzebnego stresu, z marszu możemy załączyć kilka z nich:</p>
<ul>
<li>php_curl.dll</li>
<li>php_gettext.dll</li>
<li>php_mbstring.dll</li>
<li>php_mysql.dll</li>
<li>php_mysqli.dll</li>
<li>php_sockets.dll</li>
<li>php_sqlite3.dll</li>
</ul>
<p>W razie potrzeby, nic nie stoi na przeszkodzie, aby później włączyć/wyłączyć któreś z rozszerzeń. Usuwamy znak komentarza z w/w dodatków aby uczynić je aktywnymi.</p>
<p>Zasadniczo jeśli chodzi o PHP to już cała konfiguracja. Ostatnie co musimy zrobić to nakazać serwerowi WWW parsowanie plików z rozszerzeniem php, a nie ich wyświetlanie jako zwykły tekst. W tym celu otwieramy ponownie plik <em>httpd.conf</em> w folderze Apache.</p>
<p>W pierwszej kolejności odnajdujemy fragment:</p>
<pre class="brush: plain">&lt;IfModule dir_module&gt;
  DirectoryIndex index.html
&lt;/IfModule&gt;</pre>
<p>&#8230;i zmieniamy na:</p>
<pre class="brush: plain">&lt;IfModule dir_module&gt;
  DirectoryIndex index.php index.html
&lt;/IfModule&gt;</pre>
<p>Zmiana ta, nakazuje serwerowi wyszukiwanie domyślnego pliku folderu nie tylko wśród plików html, ale także i php.</p>
<p>Przechodzimy na sam koniec pliku i doklejamy taki oto fragment:</p>
<pre class="brush: plain">LoadModule php5_module "G:\Server\php\php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "G:\Server\php"</pre>
<p>Jak zwykle pamiętamy o odpowiednich ścieżkach. Ostatecznie, te trzy linijki odpowiedzialne są za przekazanie plików PHP do parsera i zwrócenie wyniku z powrotem do serwera, aby w rezultacie móc obserwować wygenerowaną stronę.</p>
<h5>Jazda próbna</h5>
<p>Czas na przetestowanie czy parser PHP działa poprawnie. Po zapisaniu zmian w pliku konfiguracji PHP oraz Apache, przeprowadzamy restart serwera. Kolejno tworzymy następujący plik <em>index.php</em> i zapisujemy go w głównym folderze serwera (gdzie wcześniej umieściliśmy plik <em>index.html</em>).</p>
<pre class="brush: xml">&lt;?php
  phpinfo();
?&gt;</pre>
<p>Po odwołaniu się do naszej strony w przeglądarce internetowej, naszym oczom powinien ukazać się wynik działania powyższego skryptu &#8211; informacje o parserze PHP.</p>
<p style="text-align: center;"><a href="http://www.bbproject.net/wp-content/uploads/2009/12/phpinfo.png"><img class="alignnone size-large wp-image-70" title="PHP Info" src="http://www.bbproject.net/wp-content/uploads/2009/12/phpinfo-512x409.png" alt="PHP Info" width="512" height="409" /></a></p>
<h5 style="text-align: left;">W razie problemów</h5>
<p style="text-align: left;">Jeśli z jakiegoś powodu, nie uda się ponowny start serwera po dołączeniu do niego obsługi skryptów PHP, możliwe że musimy dodatkowo zmodyfikować ścieżkę przeszukiwania systemu Windows, dodając do niej folder z samym PHP jak i jego rozszerzeniami. W tym celu, przechodzimy do właściwości systemu, zakładka zaawansowane, zmienne środowiskowe. W grupie <em>Zmienne systemowe</em> odnajdujemy tą o nazwie <em>Path</em> i ją edytujemy. Na końcu, po znaku średnika, dopisujemy:</p>
<pre class="brush: plain">G:\Server\php;G:\Server\php\ext</pre>
<p style="text-align: left;">&#8230;pamiętając przy tym, by nie naruszyć znajdujących się tam już danych.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-72" title="Edytowanie zmiennej systemowej Path" src="http://www.bbproject.net/wp-content/uploads/2009/12/windows_path_var.png" alt="Edytowanie zmiennej systemowej Path" width="452" height="520" /></p>
<p style="text-align: left;">Po zatwierdzeniu, ponawiamy próbę uruchomienia serwera WWW.</p>
<h4 style="text-align: left;">Posumowanie</h4>
<p style="text-align: left;">I tym sposobem, postawiliśmy nasz serwer WWW wraz z PHP. Jeśli dopiero zaczynasz przygodę z tym językiem, pewne zmiany w pliku konfiguracyjnym mogą Ci się wydać niezrozumiałe, dlatego ograniczyłem je do niezbędnego minimum. Wraz z wzrostem wtajemniczenia, zaczniesz dokonywać własnych modyfikacji, tak aby pracować możliwe jak najwydajniej.</p>
<p style="text-align: left;">Na koniec załączam oba <a href="http://www.bbproject.net/wp-content/uploads/2009/12/server_conf.zip">pliki konfiguracyjne</a>, jeśli zaprezentowana treść okazała by się niewystarczająca.</p>
<p style="text-align: left;">Do pełni szczęścia, brakuje nam już tylko serwera bazodanowego MySQL oraz narzędzia, które znacznie ułatwia pracę na bazach danych &#8211; phpMyAdmin. Tymi zagadnieniami zajmiemy się w <a href="http://www.bbproject.net/2010/01/wlasny-serwer-www-instalacja-mysql-i-phpmyadmin">kolejnej części</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bbproject.net/2009/12/wlasny-serwer-www-instalacja-apache-i-php/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
	</channel>
</rss>
