Инсталиране на уеб сървъра
Подробно описание на изграждането и конфигурирането на вашия собствен уеб сървър за разработване и тестване на сайтове и онлайн услуги. Тази информация ще бъде полезна и при създаване на външен сървър.
За да създадете уеб сървър на платформата Linux, ще ви трябва:
- Разпространение на операционната система Fedora Core (образи на дискове)
- MySQL като RPM (изисква сървър, клиент и разработка)
- Apache сървър (източник)
- PHP (източник)
- Графична библиотека GD (източник)
- JPEG библиотека (източник)
- PNG библиотека (източник)
- ZLIB библиотека за компресиране (източник)
- Библиотека за поддръжка на шрифтове FreeType (източник)
Когато избирате програми (това винаги трябва да се има предвид като цяло, не само за тези програми), трябва да вземете най-новата стабилна версия. Между другото, поради този номер на версията и съответно имената на файловете на архивите и директориите най-вероятно ще се различавате от тези, дадени в статията. Като цяло ви призовавам да разберете общите принципи, а не просто да копирате команди, в противен случай няма да научите как да конфигурирате нещо сами.
Инсталиране на операционна система
Пълното описание на процедурата за инсталиране на Linux е извън обхвата на тази статия, така че ще дам само общи препоръки.
Ако не съжалявате за трафика за изтегляне на CD изображения от уебсайта на RedHat или има дискове с комплект за разпространение, тогава инсталирайте от тях. Преди много версии Fedora получи графичен инсталатор на български (както и на много други езици), така че няма да има затруднения с инсталацията. Ако искате да спестите трафик, изтеглете само първия (стартиращ) компактдиск и инсталирайте минималната конфигурация от него, след което доставете необходимите RPM (това са такива независими части от дистрибуцията на Linux, означаваRedHat Package Manager - по името на помощната програма, която управлява тези парчета), изтегляне на липсващите от интернет.
Ще ви е необходима над минималната инсталация на GCC (езичен компилатор на C), LibC библиотеки, парсери (помощни програми за анализиране и превод на програмен текст) flex и bison. Но уеб сървърът, който идва с дистрибуцията, не трябва да бъде инсталиран, това е Apache 2.0, а ние ще изградим Apache 1.3.
Компилиране и инсталиране на библиотеки.
Тук ще приемем, че всички изтеглени архиви с изходните текстове на библиотеки и други програми се намират в определена директория (например поддиректория на вашата домашна директория) и тази директория е текущата, преди да започне изграждането на всеки пакет. Също така, ако дадена команда започва с "$", тогава тя може (и се препоръчва) да бъде изпълнена от името на обикновен (непривилегирован) потребител, ако започва с "#", тогава от името на root.
Имената на архивите и директориите, в които са разопаковани, може да се различават от номерата на версиите, посочени в частта. Като цяло ви призовавам да разберете общите принципи, а не просто да копирате команди, в противен случай няма да научите как да конфигурирате нещо сами.
Първо събираме JPEG (тук версия 6b):
Нека анализираме изпълнените команди ред по ред:
- Извикваме програмата tar archiver и ѝ даваме команда да разопакова (x) архива, компресиран чрез метода zip (z) от файла (f) jpegsrc.v6b.tar.gz. Ключове, които нямат параметри, могат да бъдат написани заедно (обикновено, но не винаги, за Linux), последният ключ (f) има параметър (име на архива), така че го пишем в края на всички ключове.
- Променете в директорията (команда cd) jpeg-6b. Тази директория ще бъде създадена, когато архивът бъде разопакован.
- Изпълнете командата за конфигуриране на източника (configure). Тази команда ще провери системата за всички необходими програми (напр.компилатор), библиотеки и други модули, необходими за изграждането, и също ще създаде файлове с информация, специфична за вашата система (като дължина на думата на процесора или име на компилатор). По-специално, командата configure създава файл с инструкции за помощната програма make, която се извиква в следните команди. Малко отклонение: Извикване под формата ./ означава, че искаме да стартираме програмата от текущата директория (обозначена с точка). Този формат винаги се използва за работа като root, т.к текущата директория за него не е включена в изпълнимия път за търсене (път на променливата на средата) от съображения за сигурност (в противен случай, ако потребителят постави злонамерена програма в своята домашна директория и я наименува, например, "cd", и root влезе в тази директория и напише cd, за да промени в друга директория, той вместо това ще стартира програмата на потребителя от негово име с неограничени права).
- Извикваме командата make. Тази помощна програма прави накратко следното: проверява за съществуването и времето за модификация на дадени файлове (цели) и ако тези файлове липсват или са по-стари от файловете, от които са получени (източници), тогава изпълнява дадените команди за изграждане на цели от източници. За да опише какво да се изгради от какво, make чете специален файл (ако не е дадено име, той чете файл с име makefile), който е създаден от командата configure. В този случай make изгражда всички необходими двоични файлове от C източници. Ако помощната програма не успее да компилира нещо (грешка при компилиране или някаква друга), тогава тя ще докладва това.
- Извикваме make с тестовия параметър. Правилата в make-файла са написани по такъв начин, че за целеви тест с име се създава и изпълнява набор от тестове, за да се провери дали изградената библиотека работи.
- Обадете се с параметърИнсталирай. Помощната програма make копира двоичните файлове, както и заглавките в системни директории, където те ще бъдат достъпни за други библиотеки и програми. Тъй като само на привилегирован потребител е разрешено да пише в тези директории, ние изпълняваме командата като root.
Преди да изпълните последната команда, може да се наложи да създадете директория за помощните файлове:
По причини, които не разбирам, make install не копира библиотеки и заглавни файлове, където трябва, така че го правим ръчно:
Сега изграждаме zlib и libpng. Този процес няма никакви характеристики:
Изграждането на freetype също не изисква специални трикове:
Изграждането на GD също е просто, скриптът трябва сам да намери всички необходими библиотеки:
След като изпълните скрипта, проверете таблицата "Резюме на конфигурацията", намерените библиотеки са посочени там. Ако имате проблеми, проверете съдържанието на директориите /usr/local/include и /usr/local/lib, трябва да има нещо подобно на:
Преди всеки нов опит изтрийте конфигурационния кеш:
Ако конфигураторът работи добре и намери всички необходими библиотеки, изпълняваме познатата процедура:
Инсталиране на сървърни програми
Изграждане на уеб сървъра Apache
Основното тук са модулите, които трябва да бъдат посочени в параметрите на конфигуратора. И не забравяйте за пътя, където ще бъде инсталиран сървърът. В нашия случай това е /usr/local/apache.
Извикването на команда configure е един ред, тук съм написал командата на няколко реда само за четливост. Моля, обърнете внимание: модулът so не може да бъде направен динамичен!
Инсталирайте MySQL
Използваме вече сглобени пакети:
И отново командата е в един ред. Тук стартираме мениджъра на пакети (rpm), който трябва да актуализира (U)пакети от файлове,посочен в командния ред след всички превключватели, като в същото време показва подробен отчет за напредъка (v) с индикатор за напредъка под формата на хеш линия (h). RPM е много мощен инструмент за инсталиране и актуализиране на системни компоненти, поддържащи механизми за проверка на зависимости между модули, както и стартиране на скриптове преди и след инсталация. Администраторът трябва да е добре запознат с принципите на RPM, съветвам ви да прочетете ръководството за RPM и други материали, които могат да бъдат намерени в мрежата.
Изграждане на PHP
Ако поддръжката за MySQL, ZLib и GD не е активирана, рестартирайте конфигуратора, ако е необходимо, след изтриване на файловете config.cache и config.status.
Инсталаторът добавя директивите LoadModule и AddModule към httpd.conf, но не посочва нищо относно обработката на новия тип файл. Правим го ръчно:
към раздела, както и името на файлаindex.phpкъм раздела, реда с директиватаDirectoryIndex. Ние също копираме PHP конфигурационния файл от дистрибуцията на правилното място:
Тестване на сървъра
Създайте файл /usr/local/apache/htdocs/test.php със следното съдържание:
Сега отиваме на сървъра с браузър:
Заредената страница трябва да показва конфигурацията на сървъра и PHP. Проверете дали секцията gd има правилната версия на модула"2.0 или по-висока"и че всички формати на изображения (четене на GIF, създаване на GIF, PNG, JPG) се поддържат. Също така проверете дали външната поддръжка на MySQL е посочена:"MYSQL_MODULE_TYPE external".
Характеристики на създаване на локален сървър
И така, имате работещ уеб сървър (виртуален или „истинско желязо“), който стои при доставчика и има постоянна (надявам се високоскоростна) връзка с интернет. Той може да хоства не само уебсайтове, но и различни програми,изискващи постоянен достъп до мрежата (например пощенски услуги, сървъри за игри и др.). Въпреки това, при разработването на нови сайтове и програми, използването на такъв сървър може да не е най-оптималното решение поради редица причини. Ето някои от тях: отстраняването на грешки и редактирането на сайт на сървъра изисква постоянна връзка с мрежата и консумира трафик; при отстраняване на грешки в програми съществува риск от повреда на работещи сайтове и услуги, което е очевидно нежелателно; има възможност лошите програми, инсталирани на сървър в мрежата, да бъдат използвани от нападателите за „хакване“ на сървъра. Има само един изход - за отстраняване на грешки в сайтове и програми е по-добре да използвате сървъра за отстраняване на грешки, който стои до вас, в идеалния случай - на вашия работен компютър. След това говоря за един от начините за създаване на такъв сървър.
Създайте виртуална машина
Ако вече имате инсталирана Unix-подобна операционна система на вашата машина, тази част от статията не е за вас: вече имате достатъчно познания, за да настроите всички изброени по-горе програми на вашата работеща машина, както и на отделен сървър. Ако като мен работите под Windows, тогава въпреки факта, че почти всички програми имат версии за тази платформа, все още няма да можете да създадете пълноценен сървър. Поне поради факта, че при прехвърляне на всеки сложен сайт ще има проблеми с имената на файловете и пътищата в скриптовете. Ето защо се предлага да се създаде виртуален компютър, например, с помощта на популярната програма VMWare и да се инсталира всичко, което е описано в предишните части на статията върху него.
Създайте виртуална машина с помощта на VMWare. При създаване посочваме типа на операционната система Linux (Red Hat Linux версия) и обема на паметта в диапазона 32-64 MB (в зависимост от обема на физическата памет). Препоръчвам виртуални дисковесъздайте два: един за главния дял и суап дял (swap), другият за директории със сайтове. Това е по-добре поне по две причини: удобно е да архивирате целия дял, без да стартирате виртуалната машина, и ако трябва да увеличите размера на дяла за сайтове (това става чрез създаване на нов виртуален диск), няма да е необходимо да пипате системните файлове.
Достъп до файловата система
След това създайте раздел [сървър] (името на раздела съответства на името на мрежовия ресурс) със следното съдържание:
Инсталиране на ОС и уеб сървър
Сега е моментът да се върнете в началото на статията и да изпълните последователно всички стъпки за инсталиране на необходимите програми на създадената виртуална машина. След като всичко приключи успешно, ще получите работещ виртуален сървър, много подобен на реалния. На него можете ефективно да отстранявате грешки в сайтове и програми и след това да ги прехвърляте на външен сървър. За да направите това прехвърляне възможно най-прозрачно, се препоръчва да създадете същите потребители, групи и структура на директории, свързани със сайтовете на виртуалния сървър, както на външния сървър.