My name is Vasyl Khrystiuk‎ > ‎process‎ > ‎main‎ > ‎WebDev‎ > ‎

fast apache php mysql curl config

TODO: windows 7 (x64) instruction required already



Установка
Завантаження
Удалити IIS.

Створити папку для всього. Нехай це буде "C:/root"

Скачати Apache: http://httpd.apache.org/download.cgi файл  типу "httpd-2.2.16-win32-x86-no_ssl.msi" або  "httpd-2.2.16-win32-x86-openssl-0.9.8o.msi"
Інсталювати. Скопіювати в C:\root\bin\apache. Деінсталювати.

Скачати інтерпритатор PHP: http://php.net/downloads.php файл типу "php-5.2.14-Win32.zip".
Розпакувати в C:\root\bin\php5

Скачати сервер mySQL: http://www.mysql.com/downloads/mysql/ файл типу "Windows (x86, 32-bit), ZIP Archive 5.1.50 115.3M (mysql-noinstall-5.1.50-win32.zip)".(або шось друге но якшо інсталяха- установити, скопірувати, деінсталювати)
Розпакувати в C:\root\bin\mysql

Скачати бібліотеку "zlib.dll" для нормальної роботи php: http://gnuwin32.sourceforge.net/packages/zlib.htm
Розмістити за адресою: "C:\root\bin\php5\zlib.dll"

Скачати sendmailhttp://glob.com.au/sendmail/ . Розпакувати в C:\root\bin\sendmail

Налаштування

Створити папки: "C:\root\home\localhost" і "C:\root\home\mytestsite","C:\root\home\localhost\www","C:\root\home\localhost\cgi", "C:\root\home\mytestsite\www", "C:\root\home\mytestsite\cgi"

Відредактувати файл C:\WINDOWS\system32\drivers\etc\hosts:
127.0.0.1       localhost
127.0.0.1       mytestsite

Відредактувати файл C:\root\bin\apache\conf\httpd.conf:
ServerRoot "C:/root/bin/apache"

ServerName localhost:80

DocumentRoot "C:/root/home"

<Directory "C:/root/home">

DirectoryIndex index.html index.php

AddCharset utf-8 *
<IfModule mod_charset.c>
    CharsetSourceEnc utf-8
    CharsetDefault utf-8
</IfModule>

NameVirtualHost 127.0.0.1:80 

<VirtualHost localhost>
ServerAdmin admin@localhost
ServerName localhost
DocumentRoot "C:/root/home/localhost/www"
ScriptAlias /cgi/ "C:/root/home/localhost/cgi/"
ErrorLog C:/root/home/localhost/error.log
CustomLog C:/root/home/localhost/access.log common
</VirtualHost>

<VirtualHost mytestsite>
ServerAdmin me@mytestsite
ServerName mytestsite
DocumentRoot "C:/root/home/mytestsite/www"
ScriptAlias /cgi/ "C:/root/home/mytestsite/cgi/"
ErrorLog C:/root/home/mytestsite/error.log
CustomLog C:/root/home/mytestsite/access.log common
</VirtualHost>

LoadFile "C:/root/bin/php5/libeay32.dll"
LoadFile "C:/root/bin/php5/ssleay32.dll"
LoadFile "C:/root/bin/php5/libmysql.dll"
LoadFile "C:/root/bin/php5/zlib.dll"
LoadFile "C:/root/bin/php5/libmcrypt.dll"    # это для шифрования, можно найти в интернете или не использовать 


LoadModule php5_module "C:/root/bin/php5/php5apache2_2.dll"

<IfModule php5_module>
PHPIniDir "C:/root/bin/php5/"
#php_admin_value extension_dir "C:/root/bin/php5/ext"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>

Знайти файл "C:\root\bin\php5\php.ini-recommended" і перейменувати "C:\root\bin\php5\php.ini". Відредактувати:
; ввімкнем підтримку коротких відкриваючих тегів <? так само як і <?php
short_open_tag = On 
display_errors = On

; змінюєм magic_quotes_gpc = Off на
magic_quotes_gpc = On
; цей параметр відповідає за автоматичне екранування всіх escape- символів 
; ось про цей параметр і шо з ним робити хороша стаття - http://www.ddvhouse.ru/articles/text/7/

register_globals = Off 
; цей параметр відповідає за те, що всі передані з форми данні будуть доступні в скрипті як змінні з тими ж іменами
; для розробки цей параметр краще залишати виключеним і писати правильно. (але можна включити - хто зна,
; скільки неправильних скриптів вам доведеться запускати...

; ввімкнем повідомлення про помилки:
display_errors = On

; явно вкажем куди зберігати файли сесій
session.save_path = "C:/root/temp"

; далі напишем налаштування для пошти
[mail function]
SMTP =
sendmail_from =
sendmail_path = "C:/root/bin/sendmail/sendmail.exe -t"
;

extension_dir = "C:/root/bin/php5/ext"

; Також при роботі ми можем часто використовувати різні бібліотеки, 
; не знаючи про це, тому краще розкоментити якнайбільше бібліотек

extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_sockets.dll
extension=php_zip.dll


Знаходим файл "my-medium.ini" і копіюєм під новим ім'ям "my.ini".
Інсталяція служби:
mysqld --install MySQL --defaults-file="C:\full\absolute\path\to\mysql\my.ini" 
Запуск служби:
net start MySQL
Перше встановлення пароля:
mysqladmin -u root password 123
Підключення до серверу:
C:\root\bin\mysql\bin>mysql -u root -p
Enter password: ***
Видяляння всього лишнього:
 mysql> drop database test;
 mysql> use mysql;
 mysql> delete from db;
 mysql> delete from user where not (host="localhost" and user="root");
 mysql> flush privileges;
Потім все виключаєм:
Виходим з сервера: quit;
Зупиняємо все:
net stop MySQL
mysqld --remove MySQL

Ось корисні нам команди сервера:
  • Зупинка сервісу: httpd.exe -k stop
  • Видалення сервісу: httpd.exe -k uninstall
  • Встановлення сервісу: httpd.exe -k install
  • Запуск сервісу: httpd.exe -k start
  • Перезапуск сервісу: httpd.exe -k restart

Тестування php+mysql

Запускаєм все, створюєм базу а в ній таблицю з одним полем і вносим 2 записи в цю табличку:
C:\root\bin\mysql\bin>mysqld --install MySQL --defaults-file=../my.ini
C:\root\bin\mysql\bin>net start MySQL
C:\root\bin\mysql\bin>mysql -u root -p
Enter password: ***
mysql> create database test;
mysql> use test;
Database changed
mysql> create table tt(
    -> id INT);
mysql> insert into tt(id) values (25),(123);
mysql>quit;
Перезапускаєм Apache:
C:\root\bin\apache\bin>httpd -k restart


Тепер пишем php скрипт, який буде виводити наші значення:
<?
echo "Я php скрипт <br>";
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'test';
mysql_select_db($dbname);
$result = mysql_query('SELECT * from tt');
while ($row = mysql_fetch_assoc($result)) {
echo $row['id']."<br>";
}
?>

Як бачим, все працює:


Тестування curl

Тепер пишем php скрипт, який буде запрошувати інформацію з "msangel.org.ua":
// is curl installed?
    if (!function_exists('curl_init')){ 
        die('CURL is not installed!');
    }
    $Url = "http://msangel.org.ua/";
     // create a new curl resource
    $ch = curl_init();
     /*
    Here you find more options for curl:
    http://www.php.net/curl_setopt
    */
     // set URL to download
    curl_setopt($ch, CURLOPT_URL, $Url);
     // set referer:
    curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
     // user agent:
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
     // remove header? 0 = yes, 1 = no
    curl_setopt($ch, CURLOPT_HEADER, 0);
     // should curl return or print the data? true = return, false = print
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     // timeout in seconds
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
     // download the given URL, and return output
    $output = curl_exec($ch);
     // close the curl resource, and free system resources
    curl_close($ch);
     // print output
    echo $output;
Результат:


//
end
ċ
libmcrypt.zip
(76k)
Vasyl Khrystiuk,
2 Aug 2011, 01:17
ċ
пак.zip
(5232k)
Vasyl Khrystiuk,
2 Aug 2011, 02:11
Comments