Eccidental Enlightenments

Learn : : Practice : : Share

Ubuntu Development Environment

В этой статье законспектированы действия, которые я проделал для установки рабочей среды на Ubuntu 11.04. Большую часть необходимых пакетов я собирал из исходников.

Установка необходимых пакетов

Из репозитория установим необходимые пакеты:

Для PHP:
1
2
3
sudo apt-get install libxml2-dev libssl-dev libbz2-dev \
curl libcurl4-openssl-dev libjpeg8-dev libpng12-devlibfreetype6-dev \
libmcrypt-dev libmhash-dev zlib1g-dev libncurses5-dev
Для сборки Vim’а из исходников:
1
2
3
sudo apt-get install mercurial libncurses-dev libgnome2-dev \
libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev \
libx11-dev libxpm-dev libxt-dev
Для zsh (я использую этот shell вместо bash):
1
2
sudo apt-get install zsh
chsh -c /bin/zsh

Все исходиники я сохраняю в ~/Sources папке. Распаковываем, заходим с помощью cd в папку и выполняем команды.

Git

1
2
3
./configure --prefix=/usr/local/git
make
sudo make install

Apache httpd

1
2
3
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
make
sudo make install

MySQL

1
2
3
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-plugins=innobase
make
sudo make install

Если ваша система чистая, и в ней нет mysql группы и пользователя, то создадим их:

1
2
sudo addgroup --system mysql
sudo adduser --system mysql --no-create-home -ingroup mysql
1
2
3
4
5
6
sudo chown -R mysql:mysql /usr/local/mysql/
cd /usr/local/mysql/bin
sudo ./mysql_install_db
sudo ./mysqld_safe &
sudo chown -R mysql:mysql /usr/local/mysql/
sudo ./mysqld_safe &

Может так случится, что при выполнении команды от sudo убунта будет жаловаться, что не может найти mysql. Для этого надо прописать путь (PATH) к mysql для root’а.

1
2
3
4
sudo su
cd ~
vi .bashrc
PATH=/usr/local/mysql/bin:$PATH

И теперь завершаем установку:

1
./mysql_secure_installation

PHP

В убунте 11.04 мне пришлось скопировать следующие файлы:

1
2
sudo cp /usr/lib/i386-linux-gnu/libpng.so /usr/lib
sudo cp /usr/lib/i386-linux-gnu/libpng.a /usr/lib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
./configure \
--prefix=/usr/local/php52 \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-zlib \
--with-bz2 \
--enable-zip \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-ttf \
--with-freetype-dir \
--enable-soap \
--enable-mbstring \
--with-libxml-dir
make
sudo make install
sudo cp php.ini-recommended /usr/local/php52/lib/php.ini

Настройка Apache

Настроим Apache, чтобы он понимал php, а также созданим виртуальные хосты.

Редактируем файл /usr/local/apache2/conf/httpd.conf:

  • Добавляем index.php к DirectoryIndex
1
2
3
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
  • Раскомментируем поддержку виртуальных хостов
1
2
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
  • Добавляем хэндлеры для php файлов
1
2
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
  • Редактируем файл /usr/local/apache2/conf/extra/httpd-vhosts.conf:
1
2
3
4
5
6
7
8
9
<VirtualHost *:80>
  DocumentRoot "/home/remchi/Sites"
  ServerName localhost
  <Directory "/home/remchi/Sites">
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

RVM

Устанавливаем RVM (правда сейчас я использую rbenv) и Ruby. Понадобится для сборки Vim с Ruby поддержкой.

1
2
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
rvm install 1.9.2

Также нужно добавить строчку в ваш .zshrc файл. См. ниже.

VIM

1
2
3
4
5
6
7
hg clone https://vim.googlecode.com/hg/ ~/Sources/vim
cd ~/Sources/vim
./configure --with-features=huge --enable-perlinterp \
--enable-pythoninterp --enable-rubyinterp \
--enable-gui=gnome2 --disable-largefile
make
sudo make install

.zshrc aliases and configs

Основные aliases, которые я использую для запуска сервера, гита и пр…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PATH=$HOME/Sources/yii/framework:/usr/bin:/usr/local/php52/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/git/bin:$PATH

# MySQL and Apache
alias apst='sudo /usr/local/apache2/bin/apachectl start'
alias apsp='sudo /usr/local/apache2/bin/apachectl stop'
alias myst='sudo /usr/local/mysql/bin/mysqld_safe&'
alias server='sudo /usr/local/apache2/bin/apachectl start; sudo /usr/local/mysql/bin/mysqld_safe&'
alias hosts='sudo gvim /etc/hosts'
alias vhosts='sudo gvim /usr/local/apache2/conf/extra/httpd-vhosts.conf'
# git
alias gl='git pull'
alias glom='git pull origin master'
alias gp='git push'
alias gpom='git push origin master'
alias gd='git diff'
alias gc='git commit -m'
alias gca='git commit -a -m'
alias gco='git checkout'
alias gb='git branch'
alias gs='git status'
alias grm="git status | grep deleted | awk '{print \$3}' | xargs git rm"
alias g="git"
alias gll="git log"
alias grma='git ls-files --deleted | xargs git rm'
[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

PHPUnit and Selenium (Yii TDD)

PHPUnit

1
2
3
4
5
6
sudo su
pear upgrade
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit

Selenium

Download Selenium Server: Selenium Server Standalone

XDebug:

Переходим сюда xdebug и вставляем php -i. Дальше указываем путь к собраному расширению в php.ini файле.

Comments