пятница, 12 апреля 2013 г.

Установка Apache, PHP, MySQL на Ubuntu

Все шаги выполнялись с привилегиями root, поэтому убедитесь, что вы вошли в систему как root.
sudo su
 Установка MySQL 5

Сначала мы установим MySQL 5 следующим образом:
apt-get install mysql-server mysql-client
Вам будет предложено ввести пароль для администратора MySQL — этот пароль действителен для пользователя root@localhost, а также root@server1.example.com, а это значит, что в дальнейшем нам не нужно указывать пароль для администратора вручную.
New password for the MySQL «root» user: <— Введите пароль
Repeat password for the MySQL «root» user: <— Подтвердите пароль
Установка Apache2

Apache2 доступен в виде пакета для Ubuntu, поэтому мы можем установить его так:
apt-get install apache2
Открываем браузер и переходим по адресу http://192.168.0.23. Вы должны увидеть страницу приветствия Apache2 (It works!):

Установка Apache, PHP, MySQL в Ubuntu

Корневая директория Apache /var/www, файлы конфигурации /etc/apache2/apache2.conf. Дополнительные настройки хранятся в подкаталоге /etc/apache2, такие как: /etc/apache2/mods-enabled (для модулей Apache), /etc/apache2/sites-enabled (для виртуальных хостов) и /etc/apache2/conf.d.

Установка PHP5

Вы можете установить PHP5 и Apache PHP5 модуль следующим образом:
apt-get install php5 libapache2-mod-php5
Потом мы должны перезапустить Apache:
/etc/init.d/apache2 restart
Проверка PHP5 / Получение информации об установленном PHP5

В корневом каталоге документов веб-сайта по умолчанию /var/www, мы создадим маленький PHP файл (info.php) и откроем его в браузере. Файл будет отображать много полезной информации об установленной версии PHP, например, версию установленного PHP и т.д.
vi /var/www/info.php
В нем пишем:
<?php
phpinfo();
?>
Открываем этот файл в браузере (например, http://192.168.0.23/info.php)

Установка LAMP в Ubuntu 11.10

Как видите, PHP5 работает с помощью Apache 2.0 Handler, об этом говорится в строке Server API. Прокрутив страницу вниз, вы увидите все модули, которые сейчас включены в PHP5, но в этом списке нету MySQL, а это означает, что у нас еще нету поддержки MySQL в PHP5.

Получение поддержки MySQL в PHP5

Ищем и устанавливаем нужные PHP5 модули, в том числе и модуль php5-mysql для поддержки MySQL в PHP:
apt-cache search php5
Выберите те из них, которые вам нужны, и установите:
apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Перезагрузите Apache2:
/etc/init.d/apache2 restart
Обновите страницу в браузере и прокрутите ее вниз, снова в раздел модулей. Теперь здесь должно появиться много новых модулей, включая модуль MySQL:

Поддержка MySQL для PHP в Ubuntu

Установка phpMyAdmin
phpMyAdmin — это веб-интерфейс, с помощью которого можно управлять  базами данных MySQL.
apt-get install phpmyadmin
Вы увидите следующие вопросы:
Web server to reconfigure automatically: <— Выбрать Apache2
Configure database for phpmyadmin with dbconfig-common? <— No (Нет)
Далее, чтобы phpMyAdmin открывался по адресу http://localhost/phpmyadmin/, нужно сделать символьную ссылку на него:
ln -s /usr/share/phpmyadmin/ /var/www
Установка phpMyAdmin в Ubuntu

Python Virtualenv. Строим виртуальное окружение с помощью virtualenv.

Python Virtualenv предназначен для создания виртуального окружения (далее просто "окружение") для вашего проекта. К примеру, вашему проекту нужен отличный от установленного python или какие-либо библиотеки отличных версий, вы можете создать общее окружение для нескольких проектов или по одному собственному для каждого проекта. Тем самым вы сможете устанавливать, изменять и удалять пакеты, и это не повлияет на другие ваши проекты или системное окружение.

В статье рассматривается версия 1.7.1.2

Установка

Для начала надо его установить в вашу систему, через PyPI:

$ sudo pip install virtualenv
$ sudo easy_install virtualenv

Или через Debian, Ubuntu:

$ sudo apt-get install python-virtualenv

Или через FreeBSD:

$ cd /usr/ports/evel/py-virtualenv
$ make install clean

Использование

Для начала рассмотрим самые полезные возможности, остальные вы можете посмотреть в man virtualenv:

    --no-site-packages
        Запретить использование системного site-packages (для полной изоляции вашего окружения от системы). Например у вас в системе установлена "Django 1.3", если вы будете использовать эту опцию, то в созданном окружении эта "Django" не будет доступна.
        В текущих версиях virtualenv эта опция используется по умолчанию, можете её не указывать.
    --system-site-packages
        Эта опция противоположна предыдущей, то есть заставляет окружение использовать установленные в системе пакеты, если не нашлись онные в окружении.
    -p PYTHON_EXE, --python=PYTHON_EXE
        Вы можете указать нужную вам версию интерпретатора python, при этом он должен быть установлен в системе. Если вы опустили эту опцию, то будет использоваться умолчательный (Выполните which python чтобы узнать какой он у вас, но скорее всего это будет /usr/bin/python).
    --distribute
        Использовать Ditribute.
        Опция используется по умолчанию.
    --setuptools
        Использовать Setuptools поверх Ditribute. Вы можете установить переменную окружения вашей системы VIRTUALENV_SETUPTOOLS, чтобы Setuptools стал умолчательным вместо Ditribute.

        $ export VIRTUALENV_SETUPTOOLS=true

    --extra-search-dir=SEARCH_DIRS
        Указанные директории будут использовать для поиска в них пакетов при установке через setuptools/distribute/pip. Это подходит в случае когда вы не хотите их устаналивать из PyPI.
        Подробное описание тут.
    --never-download
        Не использовать сеть для получения пакетов. Используется совместно с --extra-search-dir=SEARCH_DIRS.
        Подробное описание тут.
    --relocatable
        Сделать существующее окружение относительным, то есть после этого вы сможете перемещать каталог с окружением и оно не будет зависеть от своего места дислокации, но опция в данный момент экспериментальная.
        Подробное описание тут.
    --prompt=PROMPT
        Выводимое имя окружения (подсказка), например вы можете создать с названием (MY_VENV):

        $ virtualenv --prompt="(MY_VENV)" <venv_name>
        source venv/bin/activate
        (MY_VENV)$

    --clear
        Используется для очистки существующего окружения от пакетов и прочих изменений.

Создаем общее окружение (для нескольких проектов) без использования системного site-packages:

$ mkdir ~/venv && cd ~/venv
$ virtualenv --no-site-packages <venv_name>

Часто я создаю окружение непосредственно в каталоге проекта:

$ cd ~/work/<project_name>
$ mkdir venv && echo "Virtualenv directory" > venv/README
$ git add venv && echo "/venv/" >> .gitignore && git add -f .gitignore
$ virtualenv --no-site-packages --prompt="(<project_name>)" <venv_name>

После того как вы установили новое окружение, у вас будет следующая структура:

~/venv/<venv_name>
├── bin
│   ├── activate
│   ├── easy_install
│   ├── pip
│   ├── python
│   └── ...
├── include
│   └── python2.7 -> /usr/include/python2.7
├── lib
│   └── python2.7
│       ├── distutils
│       │   └── ...
│       ├── site-packages
│       │   └── ...
│       └── ...
└── local
    ├── bin -> /home/username/venv/<venv_name>/bin
    ├── include -> /home/username/venv/<venv_name>/include
    └── lib -> /home/username/venv/<venv_name>/lib

Таким образом вам сразу же доступны изолированные python, pip и easy_install.
Работа с окружением

Для начала работы вам следует активировать окружение так:

$ source ~/venv/<venv_name>/bin/activate
$ python manage.py

Для окончания работы с окружением (например для переключение на системный python) следует выполнить в командной строке:

$ deactivate

Вы также можете запустить python по абсолютному пути (это может пригодится например в cron):

$ ~/venv/<venv_name>/bin/python manage.py

Установка пакетов в окружение

Надо активировать окружение и запустить pip или easy_install:

$ source ~/venv/<venv_name>/bin/activate
$ pip install <something>
$ easy_install <something>

Также через pip вы можете установить не активируя окружение:

$ pip install -E ~/venv/<venv_name> <something>