Jump to content

Инсталация на Joomla! върху Ubuntu Server


Препоръчан пост

Joomla! е система за управление на съдържанието на WEB сайтове и други online приложения. Може да се инсталира върху различни платформи (в настоящото ръководство са описани основните стъпки при инсталацията върху Ubuntu Server 9.10 32-bit в текстов режим).

 

Официален сайт - http://www.joomla.org/

 

Сайт на български език - http://www.joomla-bg.com/

 

Необходим софтуер* за работата на Joomla!:

 

1. Apache2 (web сървър);

2. PHP5 (програмен език);

3. MySQL (база данни);

4. VSFTPD (FTP сървър).

 

Първите три приложения могат да се инсталират автоматично при инсталацията на Ubuntu Server, като се включи инсталацията на LAMP.

 

Инсталация през терминала, ако не са били инсталирани приложенията:

 

sudo apt-get install apache2 php5 mysql-server php5-mysql unzip

 

(sudo задава администраторски права при изпълнението на командата)

 

По време на инсталацията се изисква въвеждане на потребител с парола за MySQL; този потребител ще се използва при настройката на Joomla!.

 

Инсталация на VSFTPD:

 

sudo apt-get install vsftpd

 

Настройка на VSFTPD:

 

sudo nano /etc/vsftpd.conf

 

(стартира текстовия редактор nano и отваря файла vsftpd.conf)

 

anonymous_enable=YES

 

се променя на

 

anonymous_enable=NO

 

(така се забранява достъпът на анонимни потребители до сървъра през FTP протокола)

 

Премахва се коментарът (#) от

 

#local_enable=YES

 

(така се разрешава работата на локалните потребители и приложения с FTP сървъра)

 

Премахва се коментарът (#) от

 

#write_enable=YES

 

(така се разрешава записа на файлове чрез FTP сървъра)

 

Настройва се PHP5:

 

sudo nano /etc/php5/apache2/php.ini

 

(стартира текстовия редактор nano и отваря файла php.ini)

 

display_errors = On

 

се променя на

 

display_errors = Off

 

(така се забранява извеждането на съобщенията за грешки (ако има такива) на страниците на сайта)

 

;session.save_path = /var/lib/php5

 

се променя на

 

session.save_path = /var/lib/php5

 

(посочва се папка за съхранение на данните на PHP5)

 

Рестартират се съответните приложения, за да влязат в сила настройките:

 

sudo /etc/init.d/apache2 restart

 

sudo /etc/init.d/vsftpd restart

 

Всички тези настройки се правят еднократно; може да се наложи да се направят отново при преинсталация или актуализация на съответните приложения.

 

Създава се потребител, който ще има достъп до сайта чрез FTP протокола:

 

sudo useradd usersite1

 

(usersite1 е името на потребителя)

 

Създава се парола за потребителя usersite1:

 

sudo passwd usersite1

 

(след изпълнението на командата се въвежда парола и се потвърждава)

 

Създава се папка за съхранение на сайта:

 

sudo mkdir /var/www/site1

 

(т. е., структурата е var -> www -> site1)

 

Създава се пряк път до папката на сайта в папката home:

 

sudo ln -s /var/www/site1 /home/usersite1

 

Изтегляне на Joomla!:

 

cd /var/www

 

(отваря се папка var -> www, където ще бъде изтеглена Joomla!)

 

sudo wget http://joomlacode.org/gf/download/frsrelease/11396/45610/Joomla_1.5.15-Stable-Full_Package.zip

 

(с помощта на wget се изтегля актуалната версия на Joomla!)

 

sudo unzip Joomla_1.5.15-Stable-Full_Package.zip -d /var/www/site1

 

(разархивира се пакета в папката, в която ще се съхранява сайта)

 

Променят се правата за достъп до папката, в която ще се съхранява сайта:

 

sudo chmod 777 -R /var/www/site1

 

(така се разрешава записването на данни в папката и изпълнението на приложения от нея)

 

Първоначална настройка на Joomla!:

 

Стартира се произволен браузър и се посещава адреса

 

http://ххх.ххх.ххх.ххх/site1

 

(ххх.ххх.ххх.ххх е IP адреса на сървъра; може да се провери с помощта на командата ifconfig)

 

Показва се страница с възможност за избор на език за инсталацията на Joomla!:

 

http://pics.softvisia.com/design/pics/10478/t_jkm_a0114eb.png

 

Следващата страница показва резултатите от проверката за наличност на необходимите приложения за работата на Joomla! и техните настройки; в първото поле всичи компоненти трябва да бъдат налични, а във второто настройките трябва да съответстват на указаните.

 

http://pics.softvisia.com/design/pics/10478/t_jlm_596a96e.png

 

Следващата страница съдържа GPL (General Public License).

 

http://pics.softvisia.com/design/pics/10478/t_jmm_8a1c1a5.png

 

Следва страницата с настройките на MySQL относно Joomla!:

 

http://pics.softvisia.com/design/pics/10478/t_jnm_7321256.png

 

Вида на базата данни е mysql.

 

Адресът на сървъра е localhost.

 

За потребителско име и парола се посочват данните, въведени при инсталацията на MySQL.

 

Името на базата данни е добре да съответства на името на сайта.

 

За представка на таблиците също е добре да се избере съкращение, съответстващо на името на сайта.

 

Следват настройките за FTP:

 

http://pics.softvisia.com/design/pics/10478/t_jom_500edc6.png

 

Включване на FTP система за качване на файлове трябва да е разрешена.

 

FTP потребител е usersite1.

 

FTP парола е паролата, присвоена на потребителя usersite1.

 

FTP път се извежда автоматично при натискане на бутона Автоматично намиране на FTP пътя.

 

В раздела Разширени настройки се разрешава Запис на FTP паролата.

 

Следва страницата с основните настройки на сайта.

 

http://pics.softvisia.com/design/pics/10478/t_jpm_d297225.png

 

Избира се име на сайта (може да се промени в последствие) и данни за достъп на администратора. След това има поне три възможности:

 

1. Да се инсталира примерно съдържание (чрез бутона Примерни данни); това действие попълва шаблона на сайта с основни данни - категории, раздели, различни видове съдържание, менюта и т. н. т.

 

2. Да се обнови вече съществуващ сайт (Заредете функцията обновяване). Добре е да се направи архив на сайта, преди да се обнови - обновяването може да премахне всички промени по шаблона на сайта, направени от потребителя (например направени промени в .html и .css файловете).

 

3. Да се продължи инсталацията с натискане на бутона Напред, без да се инсталират примерни данни и без да се инициира обновяване.

 

Последната страница от инсталационната процедура извежда подкана за изтриване или преименуване на инсталационната папка на Joomla!. Това се прави, за да се избегне случайно или преднамерено стартиране на инсталацията, което би могло да доведе до неоторизиран достъп (промяна на администраторската парола на сайта), например.

 

http://pics.softvisia.com/design/pics/10478/t_jqm_14b21a0.png

 

Премахване на инсталационната папка на Joomla!:

 

sudo rm -r /var/www/site1/installation

 

Бутонът Сайт води към новосъздадения сайт; бутонът Администрация води към страницата за достъп до контролния панел на сайта. Първоначалното име за достъп на администратора е admin, а паролата е вече въведената парола в страницата с основните настройки на сайта (страницата, в която се въвежда име на сайта).

 

===

 

*Освен изброените приложения, може да се наложи инсталация на unzip, за да може да се разархивира инсталацията на Joomla!:

 

sudo apt-get install unzip

 

Добре е да се инсталира и SSH сървър, с помощта на който може да се получи отдалечен оторизиран достъп до управлението на сървъра чрез текстови команди.

 

Цялостно отдалечено управление (редактиране на файлове, управление на услуги и потребители и т. н. т.) може да се осъществи с помощта на графичен интерфейс, например Webmin.

 

===

 

Настоящото ръководство е въз основа на публикуваните тук и тук материали; всякакви градивни критики и предложения са добре дошли.

Link to comment
Сподели другаде

  • 7 months later...

...

===

 

Настоящото ръководство е въз основа на публикуваните тук и тук материали; всякакви градивни критики и предложения са добре дошли.

Ясно е, че става въпрос за домашен любитески хост, но така поднесено не води дори до кривата круша.

 

Joomla! е система за управление на съдържанието на WEB сайтове, но за какви други online приложения иде реч?

 

Необходим софтуер.

Изброява се Apache2. И аз питам, а какво му е на Apache, защото защото ще свърши същата работа. Около двете версии има сериозни полемики в нета.

 

Нито ред за конфигурацията на индианеца. И оставен по подразбиране, той е с висок риск за пробив, а още може да се коментира начините за създаване на виртуални хостове.

 

PHP5 (програмен език)?

PHP е абривиетура на Hypertext Preprocessor. Това е скриптов език за програмиране на динамични уеб-приложения. softvisia.com е нагледен пример за такова.

 

MySQL без инсталиран phpMyAdmin е хемороид. phpMyAdmin е уеб-интерфейс написан на PHP и служи за администратиране на MySQL през браузър.

 

VSFTPD е правилно да бъде назован демон на FTP сървър. Един от най-мощните демони в linux и едва ли не доминиращ сред сродствените програми. Неговата настройка е много тънка. Идеята - една машина- един сайт е разточителна. Какво прави собственика, ако иска да помести повече от един сайт на машината?

 

"Името на базата данни е добре да съответства на името на сайта." - много лош съвет. Това улеснява брут-форсерите.

 

sudo apt-get install apache2 php5 mysql-server php5-mysql unzip - тук този unzip ми се струва излишен. В Debian системите се препоръчва aptitude вместо apt-get.

 

PHPUnzip е вълшебен скрипт за мигновена инсталация на Joomla! - скрипта.

 

Joomla! без пощенски сървър е като куца калинка. Това означава, че няма да има функционална контактна форма и обратна връзка с абонатите на сайта.

 

... и така до края на света

Link to comment
Сподели другаде

Joomla! е система за управление на съдържанието на WEB сайтове, но за какви други online приложения иде реч?

Например електронна търговия (VirtueMart), поддръжка (Webamoeba Ticket System), организиране на групи и общности от потребители (Community Builder).

Хубавото на тази система е, че е гъвкава и в същото време - насочена към крайните потребители.

 

Необходим софтуер.

Изброява се Apache2. И аз питам, а какво му е на Apache, защото защото ще свърши същата работа. Около двете версии има сериозни полемики в нета.

Напиши някакви предимства на Apache 1.x спрямо по-новата версия в конкретния случай. Доколкото ми е известно, Apache 2.x е по-бърз в сравнение с Apache 1.x в повечето случаи. Предимство на Apache 1.x е по-голямото разпространение, понеже се разработва и използва отдавна - ако ще се използва нает хостинг, по-вероятно е да се използва Apache 1.х. Описаният в темата случай не е такъв, затова съм предпочел по-съвременната версия.

 

Нито ред за конфигурацията на индианеца. И оставен по подразбиране, той е с висок риск за пробив, а още може да се коментира начините за създаване на виртуални хостове.

Относно сигурността - настройките по подразбиране осигуряват максимална съвместимост с различните приложения, които евентуално ще се инсталират. След изграждането и настройването на системата могат да се направят допълнителни настройки за по-голяма сигурност, но това зависи от конкретните условия; описването на всеки отделен специфичен случай не е предмет на темата.

Относно виртуалните хостове - ще се радвам да получа конкретни коментари. Направил съм го така, както ми е било удобно; всяка забележка с конкретен пример е добре дошла.

 

PHP5 (програмен език)?

PHP е абривиетура на Hypertext Preprocessor. Това е скриптов език за програмиране на динамични уеб-приложения. softvisia.com е нагледен пример за такова.

В най-общ смисъл PHP5 си е програмен език. Идеята е с негова помощ да се опишат и изпълняват (програмират) определени действия.

 

MySQL без инсталиран phpMyAdmin е хемороид. phpMyAdmin е уеб-интерфейс написан на PHP и служи за администратиране на MySQL през браузър.

Цялостно отдалечено управление (редактиране на файлове, управление на услуги и потребители и т. н. т.) може да се осъществи с помощта на графичен интерфейс, например Webmin. Написал съм го в описанието; при това положение няма смисъл да се инсталира и phpMyAdmin.

 

VSFTPD е правилно да бъде назован демон на FTP сървър. Един от най-мощните демони в linux и едва ли не доминиращ сред сродствените програми. Неговата настройка е много тънка. Идеята - една машина- един сайт е разточителна. Какво прави собственика, ако иска да помести повече от един сайт на машината?

На едно място в описанието съм написал "Всички тези настройки се правят еднократно; може да се наложи да се направят отново при преинсталация или актуализация на съответните приложения."

Всичко след това изречение може да се прави многократно, като резултатът е точно създаването на няколко сайта на една машина.

 

"Името на базата данни е добре да съответства на името на сайта." - много лош съвет. Това улеснява брут-форсерите.

Идеята е да се улесни работата, когато имаме много сайтове на една машина. Ако е осъществен неправомерен достъп до системата, името на базата данни ще е доста малка пречка за извършване на злоумишлени действия.

 

sudo apt-get install apache2 php5 mysql-server php5-mysql unzip - тук този unzip ми се струва излишен. В Debian системите се препоръчва aptitude вместо apt-get.

 

PHPUnzip е вълшебен скрипт за мигновена инсталация на Joomla! - скрипта.

Относно unzip и PHPUnzip - донякъде съм съгласен - при работа на нает хостинг може да няма друг начин за разархивиране освен PHPUnzip. От друга страна, темата е за инсталация върху Ubuntu Server - т. е., предполага се, че могат да се използват пълните възможности на конкретната ОС. Направил съм го с unzip, защото така ми е по-удобно и прегледно.

Относно aptitude - съгласен съм със забележката, наистина на много места перпоръчват използването именно на aptitude, понеже работи по-добре с проследяването на зависимостите между отделните пакети (това можеше да го напишеш). В повечето ръководства примерите са с apt-get, затова съм използвал него.

 

Joomla! без пощенски сървър е като куца калинка. Това означава, че няма да има функционална контактна форма и обратна връзка с абонатите на сайта.

Може потребителя да не желае да поддържа собствен пощенски сървър или да има някакви ограничения от страна на доставчика. От друга страна, има безплатни услуги, които успешно заместват този "недостатък" - на първо време се сещам за Gmail и пощенския сървър на dir.bg. Пример с Gmail:

 

http://img37.imagefra.me/img/img37/7/9/10/panevdd/f_hkvm_9324b06.png

 

... и така до края на света

Винаги ще има утре. :)

Link to comment
Сподели другаде

  • 7 months later...

Направих си труда да прочета всичко отново и си позволявам следните коментари, което е ревизия на предходното ми мнение.

 

За да не пишете всеки път sudo, вземете правата от раз с sudo -i, но това между другото.

 

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

Настройката издиша. Няма зададен DefaultRoot и всеки с достъп по FTP ще разглежда съдържанието на OS-ма. Брутфорсерите с стандартен порт 21 ще са първите гости, ама карай нататък.

 

Нямам нарекания за VSFTPD, но Ubuntu се цели в ProFTPD.

 

Създава се потребител, който ще има достъп до сайта чрез FTP протокола:

 

sudo useradd usersite1

 

(usersite1 е името на потребителя)

 

Създава се парола за потребителя usersite1:

 

sudo passwd usersite1

Кому е нужен този usersite1, след като не става ясно към коя група е закачен? В случая е безпредметен, дори да става въпрос за отдаване на хост на съседа Пенчо.

 

Създава се папка за съхранение на сайта:

 

sudo mkdir /var/www/site1

Под съмнение. Така създаден каталог е на root и на групата на root (drwxr-xr-x 2 root root). Всеки опит за качване на файлове ще бъде отхвърлян, заради липса на права. Ако site1 е на Пенчо, трябва да го присъедините към групата на Apache, за да може последния да чете и пише там.

 

Променят се правата за достъп до папката, в която ще се съхранява сайта:

 

sudo chmod 777 -R /var/www/site1

Много лоша практика, бих казал най-лошата. Да дадете права на останалите - 7 застрашава сигурността на сървъра първоначално, а после на сайта. На останалите им стига 0, за да разглеждат сайта. Наясно съм, че има файлове в Jommla!, нуждаещи се от права за писане, но това на място и според случая.

Оставя висящ въпроса за родителския каталог /www. Taм нямате права за писане, защото той е на Apache, aма карай.

 

Стартира се произволен браузър и се посещава адреса

 

http://ххх.ххх.ххх.ххх/site1

 

(ххх.ххх.ххх.ххх е IP адреса на сървъра; може да се провери с помощта на командата ifconfig)

Това е отживелица и остава в кръга на любителска заигравка. Apache умее да работи с виртуални сървъри и нещата да станат http://site1

 

За представка на таблиците също е добре да се избере съкращение, съответстващо на името на сайта.

Ами! Това се прави, за да се пести количество за поредна БД, ако ползвате обществен хостинг преди всичко, друг е въпроса, че по този начин се затруднява работата на хакери, но те с любителски работи не се занимават.

 

Що се касае самата Joomla!, тя е специалитет на турците и оставена без допълнителна защита става тяхна заигравка. Може даз се поработи и по нея. Скриване на генератора, забрана на ?tp=1 и в този дух.

 

*Освен изброените приложения, може да се наложи инсталация на unzip, за да може да се разархивира инсталацията на Joomla!:

 

sudo apt-get install unzip

Безсмислено. Разтваряте Joomla! в папка на десктопа и от там с FileZillla ще качите сайта по-бързо, отколкото с unzip. И след като става ясно, че unzip не е PHPUnzip, за мен е излишен демон.

Правилото е много просто. Колкото по-малко демони, толкова по-бърз и сигурен сървър.

 

Добре е да се инсталира и SSH сървър, с помощта на който може да се получи отдалечен оторизиран достъп до управлението на сървъра чрез текстови команди.

Разбира се, че е добре, ако не искате всеки път да закачате монитор и клавиатура, за да обновите сървъра.

 

Може потребителя да не желае да поддържа собствен пощенски сървър или да има някакви ограничения от страна на доставчика. От друга страна, има безплатни услуги, които успешно заместват този "недостатък" - на първо време се сещам за Gmail и пощенския сървър на dir.bg. Пример с Gmail:

 

http://img37.imagefra.me/img/img37/7/9/10/panevdd/f_hkvm_9324b06.png

Да, ама не. Тук нещата се разделят на две. Едното е пощенски сървър, а другото - пощенски трансферен агент за него. В Joomla! има клас за целта и затова върви трика с smtp сървъра на Google. Kaкво правим, ако сайта е писан на ръка? Тогава контактната форма умира и от умрял писмо.

 

Ни ред за обновления, ни ред за сигурност (firewall, iptables, fail2ban). Te затова няма да има утре...

Link to comment
Сподели другаде

За да не пишете всеки път sudo, вземете правата от раз с sudo -i, но това между другото.

С това категорично не съм съгласен. По-добре да си "изгуби" малко време в писане на команди, отколкото да са работи с администраторски права за удобство. Това удобство може да струва скъпо...

 

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

Настройката издиша. Няма зададен DefaultRoot и всеки с достъп по FTP ще разглежда съдържанието на OS-ма.

С това съм съгласен. Добре е след инсталацията да се конкретизират правата за достъп; ще напиша няколко реда с информация по въпроса, когато ми остане повече свободно време.

 

Брутфорсерите с стандартен порт 21 ще са първите гости, ама карай нататък.

Ако потребителското име и паролата са подбрани грамотно, "гостите" ще има да си чакат на вратата.

 

Кому е нужен този usersite1, след като не става ясно към коя група е закачен? В случая е безпредметен, дори да става въпрос за отдаване на хост на съседа Пенчо.

Потребителят е необходим още по време на инсталацията, а и по-късно може да се използва за определяне на правата за достъп до ресурсите на сайта.

 

Под съмнение. Така създаден каталог е на root и на групата на root (drwxr-xr-x 2 root root). Всеки опит за качване на файлове ще бъде отхвърлян, заради липса на права. Ако site1 е на Пенчо, трябва да го присъедините към групата на Apache, за да може последния да чете и пише там.

Точно за това се изпълнява командата sudo chmod 777 -R /var/www/site1.

 

Много лоша практика, бих казал най-лошата. Да дадете права на останалите - 7 застрашава сигурността на сървъра първоначално, а после на сайта. На останалите им стига 0, за да разглеждат сайта. Наясно съм, че има файлове в Jommla!, нуждаещи се от права за писане, но това на място и според случая.

Ако се остави така и след инсталацията - да, наистина е "слабо място". По време на самата инсталация обаче това си е необходимо; друг вариант е да се знае предварително къде и какво ще "пише" инсталатора и да му се дадат права само за тези ресурси... което ми се вижда излишно, особено при положение, че след инсталацията правата за достъп могат да се настроят допълнително.

 

Оставя висящ въпроса за родителския каталог /www. Taм нямате права за писане, защото той е на Apache, aма карай.

Joomla! няма работа там. Всеки сайт да си знае мястото.

 

Това е отживелица и остава в кръга на любителска заигравка. Apache умее да работи с виртуални сървъри и нещата да станат http://site1

Умее, ако има кой да го насочи натам. Ако няма пуснат DNS сървър и Apache не е настроен допълнително резултата няма да е добър.

 

Безсмислено. Разтваряте Joomla! в папка на десктопа и от там с FileZillla ще качите сайта по-бързо, отколкото с unzip. И след като става ясно, че unzip не е PHPUnzip, за мен е излишен демон.

По-бързо е да се изтегли архива с wget от сървъра и после да се разархивира с unzip. За начинаещ потебител ще бъде по-трудно разархивиране на Desktop-а и "качване" с FTP клиент.

 

Правилото е много просто. Колкото по-малко демони, толкова по-бърз и сигурен сървър.

Напълно съм съгласен.

 

В Joomla! има клас за целта и затова върви трика с smtp сървъра на Google. Kaкво правим, ако сайта е писан на ръка? Тогава контактната форма умира и от умрял писмо.

Ако сайта е писан на ръка вече не говорим за инсталация на Joomla!, а за нещо съвсем друго...

 

Ни ред за обновления, ни ред за сигурност (firewall, iptables, fail2ban). Te затова няма да има утре...

Да, добре е да ги има тези неща, поне fail2ban, ако не друго. Имах намерение да напиша нещо по настройките на сървъра, демоните и самата Joomla! след инсталацията - доста неща могат (и е добре) да се направят и по отношение на сигурността и по отношение на функционалността. Нахвърлил съм си някои бележки, когато ми остане време, ще ги систематизирам и ще напиша едно ръководство.

 

Ако някой ме изпревари - добре дошъл.

Link to comment
Сподели другаде

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...