Difference between revisions of "Windows Apache PHP"

From Ilianko
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
PHP е скриптов език за програмиране използван за сървърни приложения и e най-популярния за разработване на динамично уеб-съдържание. Автор на езика е датчанинът от канадски произход Размус Лердорф.
 +
 
== Цел на упражнението ==
 
== Цел на упражнението ==
Конфигуриране на PHP/Apache Web server.
+
Конфигуриране на PHP/Apache Windows Web server.
  
PHP е скриптов език за програмиране използван за сървърни приложения и e най-популярния за разработване на динамично уеб-съдържание. Автор на езика е датчанинът от канадски произход Размус Лердорф, в последствие пренаписан 
+
== Опитна постановка ==
  
== Опитна постановка ==
+
#Да се импортира инсталация на Windows XP на виртуалната машина
 +
# <span style="color:red">Преди да се включи виртуалният компютър </span> мрежовата карта да се [[VirtualBox#Мостов адаптер / Bridged adapter|пренасочи към мрежовата карта на хост компютъра (мостов адаптер) и да се смени MAC адресът]] 
 +
#След включване на виртуалната машина [[Windows Name|да се смени името на компютъра]] на phpX, където X е номера на работната станция.
 +
#Да се зададат на [[Windows Network| мрежовият интерфейс]] на PHP-сървъра следните настройки, където X е номера на работната станция:
  
#Да се импортира инсталация на Windows XP на виртуалната машина, от директория D:/it, като файлът на диска на виртуалната машина се запише на D:/ime/****.vmdk
+
#*IP: 10.3.45.14'''X'''/24,  
# <span style="color:red">Преди да се включи виртуалният компютър </span> мрежовата карта да се [[VirtualBox#Мостов адаптер / Bridged adapter|пренасочи към мрежовата карта на хост компютъра и да се смени MAC адресът]] 
+
#*Gaytway: 10.3.0.1
#След включване на виртуалната машина [[Windows Name|да се смени името на компютъра]]  на ApacheX, където X е номера на работната станция.
+
#*DNS: 10.3.45.10'''X'''
#[[Windows Network|Да се настрои мрежовият интерфейс]] на сървъра, със следните настройки, където X е номера на работната станция:
 
#*IP: 192.168.0.22'''X'''/24,  
 
#*Gaytway: 192.168.0.11
 
#*DNS: 192.168.0.10X
 
  
== Инсталация Apache ==
+
== Конфигуриране PHP, Apache, Windows==
  
 +
=== Инсталация Apache ===
 
[[Video Apache#Windows XP Install|Да се инсталира Apache със следните настройки:]]
 
[[Video Apache#Windows XP Install|Да се инсталира Apache със следните настройки:]]
 
*Network Domain: pcX.abv.bg
 
*Network Domain: pcX.abv.bg
 
*Server name: apache.pcX.abv.bg
 
*Server name: apache.pcX.abv.bg
 
*Administrator email: student@pcX.abv.bg
 
*Administrator email: student@pcX.abv.bg
 +
Инсталационен файл: http://10.3.45.12/apache.msi
  
Инсталационен файл: http://192.168.0.99/apache.msi
+
=== Инсталация PHP ===
 
+
Има две разновидности за Windows - "Thread Safe" - ако ще се използва Apache Web Server и "Non Thread Safe" - ако ще ползваме IIS Web Server.)
*Да се конфигурира firewall да пропуска пакети на порт 80, 8080, 443
 
*[[Video Apache#Windows Configuration|Да се разгледа конфигурационния файл]]
 
**порт който се следи за заявки
 
**работна директория на web сървъра
 
**допълнителни файлове с настройки
 
**файл при пранз заявка
 
 
 
*Да се промени директорията на web сървъра
 
*Да се промени порта на 8080
 
*Да се запише нов index.html
 
 
 
== DNS ==
 
 
 
*Да се добави към зоновия файл на pcX.abv.bg '''А''' запис за домейна apache.pcX.abv.bg, който да сочи към 192.168.0.22Х.
 
*Да се добави към зоновия файл на pcX.abv.bg '''CNAME''' запис за домейна www.pcX.abv.bg, който да сочи към apache.pcX.abv.bg.
 
 
 
== Конфигуриране на няколко домейна (virtual host) ==
 
 
 
'''Задача.'''Да се конфигурират два виртуални хоста
 
 
 
Стъпки на работа:
 
*Да се създадат директории c:/web/apache и c:/web/www
 
*Да се разкоментира реда от конфигурационния файл:
 
Include conf/extra/httpd-vhosts.conf
 
*Да се редактира файла httpd-vhosts.conf:
 
<code><pre>
 
NameVirtualHost *:80
 
 
 
<VirtualHost *:80>
 
    ServerAdmin student@pc1.abv.bg
 
    DocumentRoot "C:/web/apache"
 
    ServerName apache.pc1.abv.bg
 
 
 
    <Directory "C:/web/apache">
 
      Order allow,deny
 
      Allow from all
 
    </Directory>
 
</VirtualHost>
 
 
 
<VirtualHost *:80>
 
    ServerAdmin student@pc1.abv.bg
 
    DocumentRoot "C:/web/www"
 
    ServerName www.pc1.abv.bg
 
  
    <Directory "C:/web/www">
+
http://10.3.45.12/php.msi
      Order allow,deny
 
      Allow from all
 
    </Directory>
 
</VirtualHost>
 
</pre></code>
 
  
 +
При използване на PHP с интегриран Windows инсталатор, всички настройки се конфигурират автоматично.
  
*Да се създадат две различни страници (index.html) и да се сложат в двете директoрии на web сървъра
+
*Apache 2.2.x Module
*да се тества
+
*Apache configuraton directory: C:\Program Files\Apache Software Foundation\Apache2.2\conf\
  
== Копиране на HTML ==
 
*да се копира страница на abv.bg и да се сложи на www.pcX.abv.bg
 
  
 
+
проверете за следните настройки в httpd.conf
== Инсталиране на Apache Web Server.==
 
(виж ... ) Задайте "custom" инсталация и променете инсталационната директория на c:\Apache
 
 
 
== Инсталиране на PHP ==
 
(Има две разновидности за Windows - "Thread Safe" - ако ще се използва Apache Web Server и "Non Thread Safe" - ако ще ползваме IIS Web Server.)
 
- Инсталирайте в директория c:\PHP
 
- Избираме опция "Apache 2.2.x Module"
 
- Настройка на Apache да работи с PHP. Редактираме конфигурационния файл на Apache – httpd.conf. В края на файла добавяме:
 
 
<code><pre>
 
<code><pre>
 +
PHPIniDir "C:/Program Files/PHP/"
 
LoadModule php5_module c:/PHP/php5apache2_2.dll
 
LoadModule php5_module c:/PHP/php5apache2_2.dll
 
AddType application/x-httpd-php .php
 
AddType application/x-httpd-php .php
Line 101: Line 48:
 
</pre></code>
 
</pre></code>
 
- Рестартирайте Apache
 
- Рестартирайте Apache
 +
 +
== DNS ==
 +
 +
*Да се се конфигурира към зоновия файл на pcX.abv.bg, така че pcX.abv.bg да сочи към 192.168.0.20Х.
  
 
== Тестване ==
 
== Тестване ==
 
Създайте текствов файл index.php и добавете в него:
 
Създайте текствов файл index.php и добавете в него:
 
<code><pre>
 
<code><pre>
<?php // PHP скриптът започва с <?php или <?
+
<?php // PHP skriptyt zapochva s <?php или <?
 
  phpinfo();  
 
  phpinfo();  
  // и завършва с ?>  
+
  // i zavyrshwa s ?>  
 
?>  
 
?>  
 
</pre></code>
 
</pre></code>
Качете файла на web сървъра и го заредете през web браузър. Ако след извикването на файла се изведе системната информация за php, сървърът работи нормално.
 
  
== Глоабални променливи ==
+
Качете файла на web сървъра и го заредете през web браузъра. Ако след извикването на файла се изведе системната информация за php, сървърът работи.
 +
 
 +
== Глобални променливи ==
 
Да се тестват глобалните променливи на PHP - $_SERVER, $_POST, $_GET.
 
Да се тестват глобалните променливи на PHP - $_SERVER, $_POST, $_GET.
 
<code><pre>
 
<code><pre>
Line 141: Line 93:
 
   if( isset($_POST['name'])) //проверка за съществуване на променлива
 
   if( isset($_POST['name'])) //проверка за съществуване на променлива
 
   {                          // В PHP има асоциативни променливи
 
   {                          // В PHP има асоциативни променливи
     fwrite($fd, "<p>Име: $_POST[name] \r\n"); \\Когато стрингът е в двойни кавички, той се интерпретира
+
     fwrite($fd, "<p>Име: $_POST[name] \r\n"); //Когато стрингът е в двойни кавички, той се интерпретира
     fwrite($fd, "<br /> $_POST[comment] </p> \r\n"); \\ Заместват се променливите и специалните символи
+
     fwrite($fd, "<br /> $_POST[comment] </p> \r\n"); // Заместват се променливите и специалните символи
 
   }
 
   }
   fseek($fd, 0); \\връщане на показалеца на файла в 0 байт
+
   fseek($fd, 0); // връщане на показалеца на файла в 0 байт
   $comments = fread($fd, filesize($file)); \\ четене от файл
+
   $comments = fread($fd, filesize($file)); // четене от файл
 
   fclose($fd );
 
   fclose($fd );
 
?>
 
?>
Line 175: Line 127:
  
 
== Фишинг / Phishing ==
 
== Фишинг / Phishing ==
5. Да се създаде фишинг страница на mail.abv.bg.
+
Да се създаде фишинг страница на abv.bg.
  
  
 
[[Category:Apache PHP MySQL]]
 
[[Category:Apache PHP MySQL]]

Latest revision as of 07:56, 26 March 2014

PHP е скриптов език за програмиране използван за сървърни приложения и e най-популярния за разработване на динамично уеб-съдържание. Автор на езика е датчанинът от канадски произход Размус Лердорф.

Цел на упражнението

Конфигуриране на PHP/Apache Windows Web server.

Опитна постановка

  1. Да се импортира инсталация на Windows XP на виртуалната машина
  2. Преди да се включи виртуалният компютър мрежовата карта да се пренасочи към мрежовата карта на хост компютъра (мостов адаптер) и да се смени MAC адресът
  3. След включване на виртуалната машина да се смени името на компютъра на phpX, където X е номера на работната станция.
  4. Да се зададат на мрежовият интерфейс на PHP-сървъра следните настройки, където X е номера на работната станция:
    • IP: 10.3.45.14X/24,
    • Gaytway: 10.3.0.1
    • DNS: 10.3.45.10X

Конфигуриране PHP, Apache, Windows

Инсталация Apache

Да се инсталира Apache със следните настройки:

  • Network Domain: pcX.abv.bg
  • Server name: apache.pcX.abv.bg
  • Administrator email: student@pcX.abv.bg

Инсталационен файл: http://10.3.45.12/apache.msi

Инсталация PHP

Има две разновидности за Windows - "Thread Safe" - ако ще се използва Apache Web Server и "Non Thread Safe" - ако ще ползваме IIS Web Server.)

http://10.3.45.12/php.msi

При използване на PHP с интегриран Windows инсталатор, всички настройки се конфигурират автоматично.

  • Apache 2.2.x Module
  • Apache configuraton directory: C:\Program Files\Apache Software Foundation\Apache2.2\conf\


проверете за следните настройки в httpd.conf

PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module c:/PHP/php5apache2_2.dll
AddType application/x-httpd-php .php

Намерете записът за автоматично отваряне на файл и добавете index.php:

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

- Рестартирайте Apache

DNS

  • Да се се конфигурира към зоновия файл на pcX.abv.bg, така че pcX.abv.bg да сочи към 192.168.0.20Х.

Тестване

Създайте текствов файл index.php и добавете в него:

<?php // PHP skriptyt zapochva s <?php или <?
 phpinfo(); 
 // i zavyrshwa s ?> 
?> 

Качете файла на web сървъра и го заредете през web браузъра. Ако след извикването на файла се изведе системната информация за php, сървърът работи.

Глобални променливи

Да се тестват глобалните променливи на PHP - $_SERVER, $_POST, $_GET.

<html>
  <head>
    <title>Globals</title>
  </head>
  <body>
  <?php
    print_r($_SERVER);
    print "<br />";
    print_r($_GET);
    print "<br />";
    print_r($_POST);
  ?>
  </body>
</html>  

Форма за коментари

Да създаде уеб страница за оставяне на коментари.


<?php
  $file = 'comments.txt'; // Променливите в PHP започват с $ и не е нужно да се инициализират
  $fd = fopen( $file, 'a+'); // отваряне на файл за четене

  if( isset($_POST['name'])) //проверка за съществуване на променлива
  {                          // В PHP има асоциативни променливи
    fwrite($fd, "<p>Име: $_POST[name] \r\n"); //Когато стрингът е в двойни кавички, той се интерпретира
    fwrite($fd, "<br /> $_POST[comment] </p> \r\n"); // Заместват се променливите и специалните символи
  }
  fseek($fd, 0); // връщане на показалеца на файла в 0 байт
  $comments = fread($fd, filesize($file)); // четене от файл
  fclose($fd );
?>
<html>
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <form action="" method="post">
      <table>
        <tr>
          <td>ime</td>
          <td><input type="text" name="name" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td>komentar</td>
          <td><textarea rows="3" cols="20" name="comment"></textarea></td>
        </tr>
        <tr>
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
        </tr>
      </table>
    </form>
    <?php print $comments ?>
  </body>
</html>

Фишинг / Phishing

Да се създаде фишинг страница на abv.bg.