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 файле.