Мы будем использовать такие программы:
- Apache
- Php
- MySql
- PhpMyAdmin
- Mod_rewrite
Установка Apache + Php + MySql:
Открываем консоль и вствляем код, в первой строке которого мы обновляем уже установленные пакеты и их зависимости, после чего устанавливаем веб сервер Apache + интерпретатор Php + базу данных MySql
sudo apt-get update sudo apt-get install apache2 php5 mysql-server php5-mysql php5-curl
Установка PhpMyAdmin:
sudo apt-get install phpmyadmin
В ходе инсталляции выбираем сервер по умолчанию для phpmyadmin – apache, на вопрос автоматической настройки отвечаем утвердительно, вводим пароль рута mysql. Теперь phpmyadmin живет по адресу http://localhost/phpmyadmin/
Если сервер не нашёл phpmyadmin, значит нужно добавить в конфигурационный файл apache2.conf следующие строки, открываем консоль и пишем:
sudo echo "Alias /phpmyadmin /usr/share/phpmyadmin" >> /etc/apache2/apache2.conf
Подключаем модуль mod_rewrite, сервера Apache:
sudo a2enmod rewrite
Перезагружаем сервер Apache командой:
sudo /etc/init.d/apache2 restart
Создаем файл create_site.sh помещаем в него наш скрипт на bash, который будет создавать новый хост на нашем сервере и даем ему права на исполнения. При написании скрипта подразумевается, что все локальные сайты(виртульные хосты) будут размещены в каталоге «www» расположенному по адресу: /www.
При этом каждый виртуальный хост при создании содержит такие папки:
- cgi-bin
- logs
- public
Код скрипта(скачать):
#!/bin/bash #************************************************# # create_site.sh # # автор: korbax # # Май 30, 2010 # # # # Создаем новый проект, каталоги и базу данных. # #************************************************# echo -e "\033[1mВведите название проекта:\033[0m"; read NAME_OF_PROJECT #создаем папки проекта sudo mkdir /www/$NAME_OF_PROJECT sudo mkdir /www/$NAME_OF_PROJECT/public/ sudo mkdir /www/$NAME_OF_PROJECT/cgi-bin/ sudo mkdir /www/$NAME_OF_PROJECT/logs/ #указываем владельца и права на папку "public" sudo chown -R korbax:korbax /www/$NAME_OF_PROJECT/ sudo chmod -R 755 /www/$NAME_OF_PROJECT/ sudo chown -R korbax:korbax /www/$NAME_OF_PROJECT/public/ sudo chmod -R 755 /www/$NAME_OF_PROJECT/public/ #добавляем правила в конфигурационый файл апача add_to_apache_conf="<virtualhost *:80> ServerName ${NAME_OF_PROJECT} ServerAlias www.${NAME_OF_PROJECT} ServerAdmin webmaster@${NAME_OF_PROJECT} DocumentRoot /www/${NAME_OF_PROJECT}/public <Directory /www/${NAME_OF_PROJECT}/ > Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /www/${NAME_OF_PROJECT}/cgi-bin/ <Directory "www/${NAME_OF_PROJECT}/cgi-bin" > AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /www/${NAME_OF_PROJECT}/logs/error.log LogLevel warn CustomLog /www/${NAME_OF_PROJECT}/logs/access.log combined " add_to_hosts_conf="127.0.0.2 ${NAME_OF_PROJECT}" #добовляем новый хост echo "$add_to_hosts_conf" >> /etc/hosts echo "$add_to_apache_conf" >> /etc/apache2/sites-available/${NAME_OF_PROJECT} #создаем новую базу echo -e "\033[1mХотите создать базу данных для этого проекта? (Да/Нет)\033[0m"; read CREATE_BAZA if [ "$CREATE_BAZA" = "Да" -o "$CREATE_BAZA" = "да" ]; then echo -e "\033[1mВведите имя базы данных:\033[0m"; read NAME_OF_PROJECT mysql -uroot -p --execute="create database ${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON ${NAME_OF_PROJECT}.* TO ${NAME_OF_PROJECT}_user@localhost IDENTIFIED by 'Указываем пароль root' WITH GRANT OPTION;" echo -e "\033[1mБаза данных создана.\033[0m"; else echo -e "\033[1mБаза данных не была создана.\033[0m"; fi #включаем конфигурацию сайта sudo a2ensite ${NAME_OF_PROJECT} #sudo a2dissite #перезапускаем апач /etc/init.d/apache2 restart echo -e "\033[1mЛокальный сайт готов к работе.\033[0m";
Как пользоваться:
Теперь чтобы создать новый виртуальный хост(локальный сайт) необходимо открыть консоль и запустить в ней наш файл «create_site.sh» с правими root(sudo ./create_site.sh). При загрузке скрипта буден выведен вопрос об имени создаваемого сайтаДалее будет выведен запрос о необходимости создавать базу данных mysql.
Последним действием, будет перезагрузка сервера Apache и вывод в консоль информации о том, что локальный сайт готов к работе.
Спасибо, хорошая статья. Ушла в избранное.
ОтветитьУдалитьСпасибо, рад что помог.
ОтветитьУдалитьоднозначно в избранное
ОтветитьУдалитьСпасибо. Очень хорошая статья.
ОтветитьУдалитьПришлось немного повозиться:
echo "Alias /phpmyadmin /usr/share/phpmyadmin" >> /etc/apache2/apache2.conf
сделалась только из-под root
А сам скрипт тоже пришлось из консоли под root'ом запускать )
Такой вопрос: А куда кидать файлы (например joomlaвские)?
Если вы не изменяли путь в скрипте на свой, строка 11:
ОтветитьУдалитьsudo mkdir /www/$NAME_OF_PROJECT/public/
(где $NAME_OF_PROJECT - меняется на введеное вами имя проекта, например joomla.local) то в папке public и нужно размещать свои файлы, в том числе и joomla.
Так... А тогда адрес сайта в браузере будет...?
ОтветитьУдалитьhttp://joomla.local ?
Так было в денвере. А тут тогда как?
да, именно такой адрес сайта и будет- http://joomla.local
ОтветитьУдалитьВыдает такое:
ОтветитьУдалитьБаза данных создана.
Enabling site site2.
Run '/etc/init.d/apache2 reload' to activate new configuration!
apache2: Syntax error on line 230 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/sites-enabled/Site.local: /etc/apache2/sites-enabled/Site.local:25: was not closed.\n/etc/apache2/sites-enabled/Site.local:1: was not closed.
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
Локальный сайт готов к работе.
А у меня EMS SQL Manager for MySQL под WINE заработал!
ОтветитьУдалитьСтавил не надеясь на успех, а тут вот праздник...
Я PhpMyAdmin люблю и уважаю, но писание сложных запросов в EMS SQL Manager делается гораздо легче.
Вот. Похвастался...
Еще в репозитории убунту есть две замечательные программы для работы с mysql, это mysql workbench и mysql query browser.
ОтветитьУдалитьДа, но они (при всем уважении...) по функционалу не дотягивают до пакета EMS SQL.
ОтветитьУдалитьЗдесь h**p://www.sqlmanager.net/ подробности, если кому интересно.
Крупный минус EMS - нехорошая лицензия...
Этот комментарий был удален автором.
ОтветитьУдалитьотличная статья, очень помогла в настройке. Спасибо.
ОтветитьУдалитьТолько вот немного помучился со скриптом, апач все время ошибку выдавал, оказалось что в блоке " #добавляем правила в конфигурационый файл апача" в самом конце отсутствует строчка "" . Для профи это конечно не проблема, но новичкам вроде меня трудно понять почему не работает. Кстати это похоже на ошибку, которую указал Юрий в комментарии выше.
понятно, этот тег и в комментариях не отображается почему-то. В общем это < / virtualhost > ,без пробелов.
УдалитьСпасибо за подсказку, обязательно исправлю.
ОтветитьУдалитьпривет всем
ОтветитьУдалитьчто надо поменять иль добавить чтобы понел руски
http://178.63.235.20/register.php?lang=ru&#
Благодарю, не раз уже пользовался этим скриптом для создания сайтов на локалке.
ОтветитьУдалитьТолько маленькое замечание, для работы cgi там не хватает пары слешей на конце, вот так:
ScriptAlias /cgi-bin/ /home/avil/public_html/${NAME_OF_PROJECT}/cgi-bin/
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all