长期在windows下开发php,发现有个不好的地方,那就是假如你想使用一些特别的extension或者说自己想折腾一下,写个extension玩玩的话配置起开发环境来会比较麻烦,但是在ubuntu上就很方便了,于是我就想着转到ubuntu上来开发。
首先当然是安装ubuntu了,从官网下载镜像或者申请免费cd也是可以的,可以选择desktop版本或者alternate版本。我是用alternate版本安装的,进行最小安装,然后再按照需要慢慢安装用到的软件,其实无论是哪个版本,都不要忘记了要安装GUI桌面。
假如是Desktop版本的,默认似乎是会安装很多用不到的东西,我觉得很多用不到的东西就卸载了它们,没必要占用系统资源:
删除动画 sudo apt-get remove ubuntu-xsplash-artwork libusplash0 删除游戏 sudo apt-get remove gnome-games-common gbrainy 删除蓝牙 sudo apt-get remove libbluetooth3 删除openoffice sudo apt-get remove openoffice.org* 删除刻录软件 sudo apt-get remove libbrasero-media0 删除Email客户端 sudo apt-get remove empathy-doc evolution-common 删除扫描仪 sudo apt-get remove simple-scan
由于我的开发环境是用eclipse作为ide,所以要安装java,我不大喜欢ubuntu默认的openjdk,假如你也不习惯或者不喜欢openjdk,可以先安装sun jdk。
sudo add-apt-repository ppa:sun-java-community-team/sun-java6 sudo apt-get update sudo apt-get install sun-java6-jdk sudo update-java-alternatives -s java-6-sun
现在可以安装eclipse了,假如你之前并没有安装sun jdk的话可以直接通过以下命令安装eclipse,apt会自动为你处理依赖关系并同时安装openjdk。
sudo apt-get install eclipse
安装Apache和mysql,当然你也可以安装其它web server,不过我还是比较推荐使用apache作为开发环境的,主要是考虑它比较成熟,支持比较好,开发也比较方便。
sudo apt-get install apache2 mysql
由于ubuntu 10.10默认是php5.3,但是现在很多php开发的系统都不支持php5.3,所以我们需要安装php5.2
#!/bin/bash # by Ruben Barkow (rubo77) http://www.entikey.z11.de/ # adapted by Roel Veldhuizen http://harx.nl for Ubuntu 10.10 # Originally Posted by Bachstelze http://ubuntuforums.org/showthread.php?p=9080474#post9080474 # OK, here's how to do the Apt magic to get PHP packages from the karmic repositories: echo "Am I root? " if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then echo " NO! Error: You must be root to run this script. Enter sudo su " exit 1 fi echo " OK"; # finish all apt-problems: apt-get -f install # remove all your existing PHP packages. You can list them with dpkg -l| grep php PHPLIST=$(for i in $(dpkg -l | grep php|awk '{ print $2 }' ); do echo $i; done) echo these pachets will be removed: $PHPLIST # you need not to purge, if you have upgraded from karmic: apt-get remove $PHPLIST # on a fresh install, you need purge: # aptitude remove --purge $PHPLIST #Create a file each in /etc/apt/preferences.d like this (call it for example /etc/apt/preferences.d/php5.2); # #Package: php5 #Pin: release a=karmic #Pin-Priority: 991 # #The big problem is that wildcards don't work, so you will need one such stanza for each PHP package you want to pull from karmic: echo ''>/etc/apt/preferences.d/php echo " Package: php5 Pin: release a=karmic Pin-Priority: 991 Package: php5-adodb Pin: release a=karmic Pin-Priority: 991 Package: php5-auth-pam Pin: release a=karmic Pin-Priority: 991 Package: php5-exactimage Pin: release a=karmic Pin-Priority: 991 Package: php5-ffmpeg Pin: release a=karmic Pin-Priority: 991 Package: php5-geoip Pin: release a=karmic Pin-Priority: 991 Package: php5-gpib Pin: release a=karmic Pin-Priority: 991 Package: php5-idn Pin: release a=karmic Pin-Priority: 991 Package: php5-imagick Pin: release a=karmic Pin-Priority: 991 Package: php5-imap Pin: release a=karmic Pin-Priority: 991 Package: php5-interbase Pin: release a=karmic Pin-Priority: 991 Package: php5-lasso Pin: release a=karmic Pin-Priority: 991 Package: php5-librdf Pin: release a=karmic Pin-Priority: 991 Package: php5-mapscript Pin: release a=karmic Pin-Priority: 991 Package: php5-mcrypt Pin: release a=karmic Pin-Priority: 991 Package: php5-memcache Pin: release a=karmic Pin-Priority: 991 Package: php5-memcached Pin: release a=karmic Pin-Priority: 991 Package: php5-ming Pin: release a=karmic Pin-Priority: 991 Package: php5-ps Pin: release a=karmic Pin-Priority: 991 Package: php5-radius Pin: release a=karmic Pin-Priority: 991 Package: php5-remctl Pin: release a=karmic Pin-Priority: 991 Package: php5-sasl Pin: release a=karmic Pin-Priority: 991 Package: php5-sqlrelay Pin: release a=karmic Pin-Priority: 991 Package: php5-suhosin Pin: release a=karmic Pin-Priority: 991 Package: php5-svn Pin: release a=karmic Pin-Priority: 991 Package: php5-symfony1.0 Pin: release a=karmic Pin-Priority: 991 Package: php5-uuid Pin: release a=karmic Pin-Priority: 991 Package: php5-xapian Pin: release a=karmic Pin-Priority: 991 Package: php5-xcache Pin: release a=karmic Pin-Priority: 991 Package: php5-xdebug Pin: release a=karmic Pin-Priority: 991 Package: php5-cgi Pin: release a=karmic Pin-Priority: 991 Package: php5-cli Pin: release a=karmic Pin-Priority: 991 Package: php5-common Pin: release a=karmic Pin-Priority: 991 Package: php5-curl Pin: release a=karmic Pin-Priority: 991 Package: php5-dbg Pin: release a=karmic Pin-Priority: 991 Package: php5-dev Pin: release a=karmic Pin-Priority: 991 Package: php5-gd Pin: release a=karmic Pin-Priority: 991 Package: php5-gmp Pin: release a=karmic Pin-Priority: 991 Package: php5-ldap Pin: release a=karmic Pin-Priority: 991 Package: php5-mysql Pin: release a=karmic Pin-Priority: 991 Package: php5-odbc Pin: release a=karmic Pin-Priority: 991 Package: php5-pgsql Pin: release a=karmic Pin-Priority: 991 Package: php5-pspell Pin: release a=karmic Pin-Priority: 991 Package: php5-recode Pin: release a=karmic Pin-Priority: 991 Package: php5-snmp Pin: release a=karmic Pin-Priority: 991 Package: php5-sqlite Pin: release a=karmic Pin-Priority: 991 Package: php5-sybase Pin: release a=karmic Pin-Priority: 991 Package: php5-tidy Pin: release a=karmic Pin-Priority: 991 Package: php5-xmlrpc Pin: release a=karmic Pin-Priority: 991 Package: php5-xsl Pin: release a=karmic Pin-Priority: 991 Package: php5-enchant Pin: release a=karmic Pin-Priority: 991 Package: php5-intl Pin: release a=karmic Pin-Priority: 991 Package: libapache2-mod-php5 Pin: release a=karmic Pin-Priority: 991 Package: libapache2-mod-php5filter Pin: release a=karmic Pin-Priority: 991 Package: php-pear Pin: release a=karmic Pin-Priority: 991 ">>/etc/apt/preferences.d/php; # duplicate your existing sources.list replacing lucid with karmic and save it in sources.list.d: #sed s/lucid/karmic/g /etc/apt/sources.list | sudo tee /etc/apt/sources.list.d/karmic.list # better exactly only the needed sources, cause otherwise you can get a cachsize problem: echo "# needed sources vor php5.2: deb http://mirrors.163.com/ubuntu/ karmic main restricted deb-src http://mirrors.163.com/ubuntu/ karmic main restricted deb http://mirrors.163.com/ubuntu/ karmic-updates main restricted deb-src http://mirrors.163.com/ubuntu/ karmic-updates main restricted deb http://mirrors.163.com/ubuntu/ karmic universe deb-src http://mirrors.163.com/ubuntu/ karmic universe deb http://mirrors.163.com/ubuntu/ karmic-updates universe deb-src http://mirrors.163.com/ubuntu/ karmic-updates universe deb http://mirrors.163.com/ubuntu/ karmic multiverse deb-src http://mirrors.163.com/ubuntu/ karmic multiverse deb http://mirrors.163.com/ubuntu/ karmic-updates multiverse deb-src http://mirrors.163.com/ubuntu/ karmic-updates multiverse deb http://security.ubuntu.com/ubuntu karmic-security main restricted deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted deb http://security.ubuntu.com/ubuntu karmic-security universe deb-src http://security.ubuntu.com/ubuntu karmic-security universe deb http://security.ubuntu.com/ubuntu karmic-security multiverse deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse " >> /etc/apt/sources.list.d/karmic.list apt-get update apache2ctl restart echo install new from karmic: apt-get -t karmic install $PHPLIST # at the end retry the modul libapache2-mod-php5 in case it didn't work the first time: apt-get -t karmic install libapache2-mod-php5 echo $PHPLIST apache2ctl restart
把上面的shell脚本保存到一个文件里面,例如叫做install_php52.sh,然后使用下面的命令执行,就会安装好php5.2了
sudo sh install_php52.sh
安装phpmyadmin和xdebug
sudo apt-get install phpmyadmin php-xdebug
安装好xdebug后要编辑一下配置文件,打开配置文件
sudo gedit /etc/php5/apache2/conf.d/xdebug.ini
插入以下内容
[xdebug] xdebug.remote_enable = 1 xdebug.remote_handler=dbgp xdebug.remote_port=9000 xdebug.remote_host=127.0.0.1
未完待续……