Действия

Установка Joomla на localhost

Материал из База знаний Joomla

Локальный Веб-сервер своими руками

Для чего вообще все это нужно? Конечно тестить странички типа *.html можно и без всего этого. Когда идет речь о разработки какого-либо приложения для веб на основе php и mysql тут уже не обойтись без такого сервера, да и потом экспериментировать всегда лучше подальше от работающего проекта, поскольку цена ошибки не так велика для наших любимых посетителей. Статья будет состоять из 3-х основных китов. Apache, PHP, MySQL. По очереди будем устанавливать их тестировать и переходить к следующему разделу, и так до... Ну к примеру поставим один из свободных движков для создания сайтов Joomla. Это самый наверное сложный тест для нашего локального веб-сервера.

Можно конечно использовать различные пакеты как например JSAS – Joomla Stand Alone Server, и многие другие, однако, при всем при этом достаточно сложно разбираться и не все получается настроить так как этого хочется. Да и понимания станет гораздо больше, ежели сам настроишь веб-сервер нежели чем это сделает за тебя умный инсталлятор.


Apache

Инсталляция

Процесс инсталляции Apache ничем не отличается от инсталляции любого софта Microsoft. Мной был выбран один из старых дистрибутивов Apach версии 1.3.х Apache установился по умолчанию у меня сюда C:\Programm Files\Apache Group\Apache\ Настройка http.conf

Самый важный процесс это настройка http.conf. Для начала предлагаю создать несколько папок. Для простоты я создал их в корне C:\. Одна из них localhost, другая mysite. В каждую из папок я поместил папку www. По причине того что мне нужен для другого приложения 80 порт и перенастроить его на другой порт не представляется возможным, настраиваю Apache на порт 8080.

Файл конфигурации сервиса Apache C:\Programm Files\Apache Group\Apache\conf\http.conf Этот файл нам предстоит отредактировать таким образом, чтоб наш веб-сервер заработал. Приступим к редактированию файла конфигурации. В качестве редактора можно использовать как Блокнот, так и к примеру файл -менеджер FAR или любой другой.

В качестве комментария для этого конфигурационного файла используется знак #. Начнем редактирование. Ориентировочно 150-ая строка, находим #Listen 3000, ниже пишем:

   Listen localhost:8080

268-ая строка, находим Port 80, заменяем на

   Port 8080

275-ая строка, находим ServerAdmin, дописываем

   ServerAdmin webmaster@myweb.com

293-ая строка, находим ServerName, дописываем

   ServerName localhost:8080

301-ая строка, находим DocumentRoot, указываем путь до папки www, которая расположена в папке localhost. Данную процедуру мы проделывали сразу после установки Apache.

   DocumentRoot C:\localhost\www

311-ая строка, находим <Directory /> и заменяем все что находится между <Directory /> </Directory> на

   <Directory "C:/">
       Options Indexes Includes
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>

329-ая строка, находим <Directory "C:/Program Files/Apache Group/Apache/htdocs">, заменяем на

   <Directory "C:/">

750-ая строка, там необходимо добавить настройки PHP

   AddType application/x-httpd-php php phtml
   ScriptAlias /_php_/ "C:/php_4.4.5/"
   Action application/x-httpd-php "/_php_/php.exe" 

Перейдем теперь к настройки виртуальных хостов. «Итак, вы создали каталог "localhost" для хранения и тестирования документов вашего сайта. Но если у вас не один сайт? Можно конечно создать каталоги для других сайтов внутри "localhost" и обращаться к ним "http://localhost/site", но это не совсем удобно. Тем более, что Apache дает возможность решить эту проблему с помощью виртуальных хостов. Есть два вида виртуальных хостов: отдельные для каждого IP адреса и использующие один IP (name-based хосты). Я объясню как настроить последние.

Вы уже создали ранее папку "mysite" в корне C:\ . Это и есть корень вашего виртуального хоста. Во всех папках, которые вы создадите и пропишите в файле конфигурации должны быть папки "www" и "cgi", файлы access.log и error.log. Т. е. все так же как и с каталогом "localhost". Все ваши виртуальные хосты будут использовать IP "127.0.0.1".

Добавьте в файл "httpd.conf" следующее:

   NameVirtualHost localhost:8080
   #localhost
   <VirtualHost localhost:8080>
   ServerAdmin me@localhost
   ServerName localhost
   DocumentRoot "C:\localhost\www"
   #ScriptAlias /cgi/ "C:\localhost\cgi\"
   #ErrorLog C:\localhost\error.log
   #CustomLog C:\localhost\access.log common
   </VirtualHost>
   #mysite
   <VirtualHost mysite:8080>
   ServerAdmin me@mysite
   ServerName mysite
   DocumentRoot "C:\mysite\www"
   #ScriptAlias /cgi/ "C:\mysite\cgi\"
   ErrorLog C:\mysite\error.log
   CustomLog C:\mysite\access.log common
   </VirtualHost>

Теперь определимся с тем, как Windows узнает о существовании виртуальных хостов? Для этого придется отредактировать файл "hosts" (не путать с файлом "hosts.sam"), хранящийся в папке "%WINDOWS%\System32\drivers\etc". В этот файл необходимо добавить строчки, по количеству виртуальных хостов прямо после 127.0.0.1 localhost добавте

  127.0.0.1 mysite

Теперь, при обращении http://mysite загрузится содержимое "C:\mysite\www". Для вступления изменений в силу необходимо перезапустить Apache. У меня в системном трее не появилась иконка, посему лезу Пусл – Панель инструментов – Администрирование – службы. Там нахожу процесс Apache и перезапускаю его.

Тестирование Apache.

Для проверки работоспособности Apache необходимо написать какую-либо простенькую *.html страничку. К примеру,

Проверка Apache

Этот файл сохраняем как index.html и помещаем в папку C:\localhost\www, после чего из браузера набираем следующую строчку http://localhost:8080 после чего, мы увидим надпись «Проверка Apache». Этап настройки Apache завершен. Если сервис не страртует или не проходит тест лезте C:\Programm Files\Apache Group\Apache\logs\error.log и смотрите что пишет Apache. Надеюсь что все получилось. Давайте теперь займемся установкой PHP.

Настройка PHP.

Инсталляция

Типично начнем процесс с инсталляции PHP. Не сочтите ретроградом, установил PHP 4.4.5. Пакет брал без инстраллятора. Распаковал в корень C:\ и немного сократил путь получилось C:\php_4.4.5\

Настройка php.ini

В первой части мы уже добавили необходимые настройки в Apache. Теперь пришло время настроить php. Файл конфигурации находится у меня по следующему пути C:\php_4.4.5\php.ini-dist. Начнем с того, что просто его переименуем в файл php.ini. Знаком комментария в этом файле является значек «;».

76-ая строка, директива, позволяющая использовать в PHP-коде короткие теги

   short_open_tag = On


267-ая строка, директива вывода только ошибок.

   error_reporting = E_ALL & ~E_NOTICE

277-ая строка, директива позволяющая выводить ошибки в браузер для облегчения отладки кода

   display_errors = On

287-ая строка, запись ошибок в журнал

   log_errors = Off

354-ая строка, порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными. Задайте следующий порядок:

   variables_order = "EGPCS"

365-ая строка, возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, "$переменная"). Не рекомендуется включать эту опцию, но включайте, иначе вы сможете обращаться к этим переменным только через суперглобальные массивы (например, "$_POST['переменная'])

   register_globals = Off

382-ая строка, отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie, это значение необходимо для корректной работы Joomla.

   magic_quotes_gpc = On

482-ая строка, разрешение на загрузку файлов.

   file_uploads = On

486-ая строка, каталог для временных, закаченных файлов.

   upload_tmp_dir = C:\Temp\uploadtemp

489-ая строка, максимальный размер закачиваемого файла.

   upload_max_filesize = 5M

537-ая строка, путь к папке с расширениями с абсолютным путем.

   extension_dir = C:\php_4.4.5\extensions 

Далее выбираем необходимые расширения для PHP.

   extension=php_gd2.dll
   extension=php_iconv.dll
   extension=php_java.dll
   extension=php_pdf.dll
   extension=php_zip.dll

Теперь настала пара осуществить настройку файла php.ini для работы с MySQL.

MySQL в php.ini

В каких-то версиях PHP, поддержка MySQL встроена в ядро, и следовательно, никаких дополнительных расширений для работы с этой БД подключать не надо, а в каких-то нет. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки "php_mysql.dll", то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить. Расширения если помните подключали буквально 2 абзаца назад, поэтому дописываем

   extension=php_mysql.dll 

Далее по списку, настройки подключения к MySQL. 658-ая строка, порт для на котором слушает MySQL.

   mysql.default_port =3306

665-ая строка, указание хоста по умолчанию.

   mysql.default_host =localhost

Настройка сессий. 811-ая строка, хранить данные сессии в файлах.

   session.save_handler = files

827-ая строка, папка для хранения файлов сессии, важно не забыть создать данный каталог.

   session.save_path = C:/Temp/session

830-ая строка, использовать cookie в сессиях.

   session.use_cookies = 1

837-ая строка, использовать в качестве имени сессии и сессионной cookie ID сессии.

   session.name = PHPSESSID

840-ая строка, запрет на инициализацию сессии при начале соединения.

   session.auto_start = 0

843-ая строка, время жизни сессионных cookie ("0" - до закрытия окна браузера).

   session.cookie_lifetime = 0

915-ая строка, ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie)

   session.use_trans_sid = 1

Ну вот наконец-то настройка PHP завершена, для того, чтоб изменения вступили в силу, необходимо перезапустить Apache.


Тестирование PHP

Создайте файл, к примеру test_php_gd.php положим его, к примеру C:\localhost\www\ пометите туда вот такое содержимое:

   <?
   $pic=imagecreate(350,100);
   $piccolor=imagecolorallocate($pic, 255,255,255);
   $textcolor=imagecolorallocate($pic, 0,0,0);
   $linecolor=imagecolorallocate($pic, 0,0,255);
   $text="GD test successful - gdtest.php!";
   imagerectangle($pic, 1,99, 349,0, $linecolor);
   imagestring($pic,5,30,40, $text, $textcolor);
   header("content-type: image/png");
   imagepng($pic);
   imagedestroy($pic);
   ?> 

Запустим этот файл из браузера. В строке меню набираем http://localhost:8080/test_php_gd.php

Настройка MySQL.

Инсталляция.

Использовал MySQL версии 4.1.22. Дистрибутив брал без инстраллятора. Распаковал опять же в C:\ и переименовал папку получилось C:\mysql_4.1.22.

Настройка my.ini

Настройка как и в предыдущий раз заключается в правке файла конфигурации. Приступим к правке. Несколько различных файлов конфигурации лежат в корне дистрибутива. Можно использовать практически любой файл. Например my-medium.ini Переименовываем файл my-medium.ini в my.ini. Далее начинаем его редактировать. С места [mysql], сразу под этим заголовком пишем:

   basedir=C:\mysql_4.1.22\
   datadir=C:\mysql_4.1.22\data
   port		= 3306
   character-sets-dir="C:/mysql_4.1.22/share/charsets"
   init-connect="SET NAMES koi8r"

Собственно, на этом редакция файла конфигурации закончена. Далее необходимо проинсталлировать сервис, для этого из командной строки, или из любого файл менеджера, например FAR, запускаем сервис следующей строчкой. Да при этом, необходимо находится в папке, в моем случае C:\mysql_4.1.22\bin\

   mysqld-nt.exe --install MySql –defaults-file=c:\mysql_4.1.22\my.ini 

Сохраняемся, и далее необходимо скопировать файл my.ini в корень папки C:\WINNT\ Далее перезапускаем процесс Apache и процесс MySQL. Это можно сделать из панели Пуск – Панель управления – Администрирование – Службы Теперь необходимо протестровать работособность MySQL.

Тестирование MySQL

Для тестирования мы возьмем вот такой вот скрипт, в интернете я встретил покрайней мере около 5 упоминаний этого скрипта и как не странно у всех написано что это рук их дела. Вообщем скрипт писал не я, но им пользовался:

   <?
   
   Error_Reporting(1+2+4);
   define("DBName","testbase");
   define("HostName","localhost");
   define("UserName","root");
   define("Password","");
   
   if(!mysql_connect(HostName,UserName,Password))
    { echo "Не могу соединиться с базой ".DBName."!
"; exit; } // Создаем таблицу test. Если такая таблица уже есть, сообщение об ошибке будет // подавлено, т.к. используется "@" @mysql(DBName,"create table test(id int,a text)"); // Вставляем в таблицу 10 записей for($i=0; $i<10; $i++) { $id=time(); mysql(DBName,"insert into test(id,a) values($id,'Строка $i!')"); } // Выводим все записи $r=mysql(DBName,"select * from test"); for($i=0; $i<mysql_numrows($r); $i++) { $f=mysql_fetch_array($r); echo "$f[id] -> $f[a]
\n"; }  ?>

Создать файл mysql_test.php скупируйте этот скрипт и вставте его в созданный. Сохраните файл с приведенным именем. Далее поместите файл в папку, к примеру C:\localhost:8080\www\. Перед тем, как мы запустим этот скрипт необходимо опять же из командной строки создать БД. Делается это из папки, в моем случае C:\mysql_4.1.22\bin и пишем mysqladmin.exe create testbase. Нажимаем ввод и MySQL создает нам базу данных testbase.

Теперь мы можем выполнить этот скрипт. В браузере набираем http://localhost:8080/mysql_test.php и жмем ввод. Если все было выполнено правильно, то в ответ браузер нам выдаст следующий текст:

   1173440067 -> Строка 0!
   1173440067 -> Строка 1!
   1173440067 -> Строка 2!
   1173440067 -> Строка 3!
   1173440067 -> Строка 4!
   1173440067 -> Строка 5!
   1173440067 -> Строка 6!
   1173440067 -> Строка 7!
   1173440067 -> Строка 8!
   1173440067 -> Строка 9! 

Работоспособность MySQL, PHP и Apache мы проверили. Теперь встает вопрос, а как же управлять БД. Варианта 2. Первый, установить phpMyAdmin, второй, использовать командную строку и работать с БД из интефейса mysql.exe.

Конечно мы выберем первый вариант, не потому что лень, если б было лень, то взяли бы либо JSAS, либо Denwer, либо еще какую-нибуть приблуду, а дело в том, что чаще всего хостеры предоставляют очень удобный инструмент, под названием phpMyAdmin. В следующей главе мы его с Вами инсталлируем и настроим. Естественно что потом его будем использовать для работы с MySQL.

Установка phpMyAdmin.

Возможно установить phpMyAdmin как на отдельном домене, так и используя один из существующих, например localhost. Установка на localhost заключается в копировании разархивированного дистрибутива в папку, в моем случае C:\localhost\www. Второй вариант заключается в том, что мы пропишем в конфигурационном файле Apache VirtualHost для phpMyAdmin. Отредактируем конфигурационный файл Apache. В раздел VirtualHosts вот такой код

   #phpmyadmin
   
   <VirtualHost phpmyadmin:8080>
   ServerAdmin me@phpmyadmin
   ServerName phpmyadmin
   DocumentRoot "C:\phpmyadmin\www"
   ErrorLog C:\phpmyadmin\error.log
   CustomLog C:\phpmyadmin\access.log common
   </VirtualHost>

Не забываем, что необходимо создать в корне C:\ с именем phpmyadmin, и в ней должна быть папка www, и файлы error.log, access.log. Далее в папку www, необходимо скопировать все содержимое папки phpmyadmin.

И самое последнее, в файле hosts по пути C:\WINNT\System32\drivers\etc и дописать:

   127.0.0.1	    phpmyadmin

Для вступления изменений в силу, необходимо перезапустить Apache.

Конфигурирование phpMyAdmin

Конфигурация phpMyadmin заключается в создании папки config в корне папки phpMyAdmin и копировании файла config.sample.inc.php из корня phpMyAdmin. Далее необходимо файл config.sample.inc.php переименовать в config.inc.php. Далее в браузуре набираем http:\\localhost:8080\phpMyadmin\script\seput.php

Этот файл может быть заполнен с использованием веб-интерфейса, а можно config написать самостоятельно. Проще написать самостоятельно, ибо там «3 строчки». Вообще можно просто создать файл с названием config.inc.php и в него поместить:

    <?php
    /*
     * Generated configuration file
     * Generated by: phpMyAdmin 2.10.0.1 setup script by Michal ─Мiha┼Щ <michal@cihar.com>
     * Version: $Id: setup.php 9697 2006-11-13 08:32:28Z nijel $
     * Date: 
     */
 
    /* Servers configuration */
    $i = 0;
 
    /* Server localhost (http) [1] */
    $i++;
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['extension'] = 'mysql';
    $cfg['Servers'][$i]['port'] = '3306';
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['auth_type'] = 'http';
 
    /* End of servers configuration */
 
    $cfg['AllowAnywhereRecoding'] = true;
    $cfg['DefaultCharset'] = 'koi8-r';
    $cfg['RecodingEngine'] = 'iconv';
    $cfg['IconvExtraParams'] = '//TRANSLIT';
    $cfg['blowfish_secret'] = 'master';
    $cfg['ForceSSL'] = false;
    $cfg['ShowPhpInfo'] = false;
    $cfg['ShowChgPassword'] = false;
    $cfg['AllowArbitraryServer'] = false;
    $cfg['LoginCookieRecall'] = 'something';
    $cfg['LoginCookieValidity'] = 1800;
    $cfg['UploadDir'] = 'C:\\uploads';
    $cfg['SaveDir'] = 'C:\\saves';
    ?>

Особое внимание стоит обратить на строчку где написано $cfg['blowfish_secret'] = 'master' это секретное слово, которое разрешит работу с phpMyAdmin. Не забудем так же создать папку C:\uploads и C:\saves. Эти папки могут находится в любом месте, главное чтоб был правильно указан путь.

Ну а дальше заходим на наш новый хост http://phpmyadmin:8080/ и радуемся результату. Если к примеру желаете подцепить БД от своего нынешнего проекта и у вас есть дамп БД, можно выполнить импорт, дампа на наш локальный сервер. Если дамп большой, можно подшаманить настройки в php.ini.

Конфигурация импорта БД решается в файле php.ini необходимо поменять значение у переменных

upload_max_filesize=20М 
memory_limit=20М
post_max_size=20М

Если же охота ничего менять можно воспользоваться интерфейсом командной строки, и в ней выполнить команду к MySQL, которая позволит создать, развернуть, дамп не заботясь об объеме. Создание дампа базы данных используя интерфейс командной строки:

   mysqldump -u имя_пользователя -p -h имя_сервера_БД имя_базы > dump.sql 

Развертывание дампа через интерфейс командной строки

   mysql -u имя_пользователя -p -h имя_сервера_БД имя_базы < dump.sql 

Как это выглядит в нашей любимой, оконной. Заходим в папку используя, к примеру, FAR, в моем случае путь C:\mysql_4.1.22\bin далее находим файл mysql.exe или mysqldump.exe, в зависимости от того, что собираемся делать. Для того чтоб его добавить в командную строку необходимо нажать Ctr+Enter. Далее разберем синтаксис команды.

   -u имя пользователя – имя пользователя обычно root, т.о получается -u root
   -p -h имя сервера БД – имя сервера БД обычно localhost, т.е. получается -p -h localhost
   имя базы – здесь имя БД в котору необходимо этот дамп установить. К примеру, у нас есть БД test. 
   dump.sql – файл, в который, будет развернута/помещена (в зависимости от направления стрелочки) вся Ваша БД.

Если БД нет никакой, тогда нужно воспользоваться административной утилитой и в командной строке написать следующее:

   mysqladmin.exe create mydatabase 

Далее мы можем использовать эту базу данных для работы. И в нее к примеру внести таблицы из дампа, вышеописанным способом. Ну а теперь можно приниматься за установку Joomla, которая описана в руководстве по установке на этом сайте.