当前位置: 代码迷 >> PHP >> ubuntu10.04构建PHP开发环境小结
  详细解决方案

ubuntu10.04构建PHP开发环境小结

热度:180   发布时间:2016-04-28 22:47:56.0
ubuntu10.04构建PHP开发环境总结
1.安装ultraiso
2.更新源
3.安转驱动,加载硬盘
4.系统优化tweak和启动顺序,GFW
5.安装集成开发环境及环境配置

1.安装ubuntu
用ultraiso制作一个u盘ubuntu启动盘
2.更新ubuntu源
可以在网上搜索ubuntu源列表加到/etc/apt/sources.list中
3.1ubuntu中有自带的系统工具可以更新驱动
3.2自动挂载硬盘 ------http://blog.csdn.net/free2011/archive/2010/03/17/5389965.aspx
    查看硬盘信息:sudo fdisk -l
    编辑fstab
    # <file system> <mount point> <type> <options> <dump> <pass>
    1、<fie sysytem>。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式linux开发的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意义。它的任务是把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/。
    如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev /sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。
    此外,还可以label(卷标)或UUID(Universally Unique Identifier全局唯一标识符)来表示。用label表示之前,先要e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2 <type> <options> <dump> <pass>。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。比如我想挂载第一块硬盘的第一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在<file system>这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID。
    2、<mount point>。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统<fie sysytem>挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。
    3、<type>。这里用来指定文件系统的类型。下面的文件系统都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs。 auto表示文件系统的类型将被自动检测。
    4、<options>。这里用来填写设置选项,各个选项用逗号隔开。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async。
    各项详解
       auto 和 noauto: 这是控制设备是否自动挂载的选项。auto是默认选择的选项,这样,设备会在启动或者你使用mount -a命令时按照fstab的内容自动挂载。如果你不希望这样,就使用noauto选项,如果这样的话,你就只能明确地通过手工来挂载设备。
      user 和 nouser:这是一个非常有用的选项,user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载。nouser是默认选项,这也 是让很多 Linux新手头疼的东西,因为他们发现没有办法正常挂载光驱,Windows分区等。如果你作为普通身份用户遇到类似问题,或者别的其他问题,就请把 user属性增加到fstab中。
      exec 和 noexec: exec允许你执行对应分区中的可执行二进制程序,同理,noexec的作用刚好相反。如果你拥有一个分区,分区上有一些可执行程序,而恰好你又不愿意, 或者不能在你的系统中执行他们,就可以使用noexec属性。这种情况多发生于挂载Windows分区时。exec是默认选项,理由很简单,如果 noexec变成了你/根分区的默认选项的话……
      ro: 以只读来挂载文件系统。 54ne.com
      rw: 以可读可写的属性来挂载系统。
    中国网管联盟www、bitsCN、com
      sync 和 async:对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入 变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东 西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。
    5、<dump>。此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
    6、<pass>。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个 分区。
4.1用sudo apt-get install tweak命令来安装tweak
4.2    引导顺序- -----http://www.ubuntuhome.com/ubuntu10-04-grub.html
    当安装了Windows之后,然后再安装Ubuntu,开机后,grub多重启动默认进入的是Ubuntu,如果经常使用的主操作系统是Ubuntu那也罢了,但是如果主操作系统是Windows,那显然不是很方便了
    在Ubuntu10.04下修改grub的引导顺序的方法如下:
    sudo gedit /boot/grub/grub.cfg
    set default=”0″   修改成 set default=”4″
    default=”0″后面的数值0是第一个选择项,如果分别改成1、2、3、4的话,则分别把默认启动的选择项放在第二、三、四、五个选择项上面
    找到timeout=”10″后面的数值10则表示选择引导条的默认倒计时为10秒,当然,这个数值可以改得更大,比如20、30什么的,不过如果把数值改成负1,即“-1”的话,在开机看到grub选择项时没有倒计时,直到选择了所要启动的引导条并回车才能进入系统
    修改保存,重启就可以了。
    在早期的一些Ubuntu版本下,修改grub的引导顺序的方法如下:
    配置文件不在grub.cfg,而是在menu.lst中
    修改的方法基本同理,主要是修改default和timeout这两项,其他的可以自己的喜好做一些定制


5.1PHP集成开发环境的安装
    在ubuntu的软件包管理器-编辑-使用任务分组标记软件包中安装LAMP,还要安装phpmyadmin
5.2PHP集成开发环境的配置- ------http://www.guanwei.org/post/LINUXnotes/01/ubuntuapache2configure.html

在Windows下,Apache的配置文件通常只有一个,就是httpd.conf。但我在Ubuntu Linux上用apt-get install apache2命令安装了Apache2后,竟然发现它的httpd.conf(位于/etc/apache2目录)是空的!进而发现Ubuntu的 Apache软件包的配置文件并不像Windows的那样简单,它把各个设置项分在了不同的配置文件中,看起来复杂,但仔细想想设计得确实很合理。
严格地说,Ubuntu的Apache(或者应该说Linux下的Apache?我不清楚其他发行版的apache软件包)的配置文件是 /etc/apache2/apache2.conf,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如 httpd.conf等,则是通过Include指令包含进来。在apache2.conf中可以找到这些Include行:
    # Include module configuration:
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf

    # Include all the user configurations:
    Include /etc/apache2/httpd.conf

    # Include ports listing
    Include /etc/apache2/ports.conf
    ……
    # Include generic snippets of statements
    Include /etc/apache2/conf.d/

    # Include the virtual host configurations:
    Include /etc/apache2/sites-enabled/
结合注释,可以很清楚地看出每个配置文件的大体作用。当然,你完全可以把所有的设置放在apache2.conf或者httpd.conf或者任何一个配置文件中。Apache2的这种划分只是一种比较好的习惯。
安装完Apache后的最重要的一件事就是要知道Web文档根目录在什么地方,对于Ubuntu而言,默认的是/var/www。怎么知道的呢? apache2.conf里并没有DocumentRoot项,httpd.conf又是空的,因此肯定在其他的文件中。经过搜索,发现在 /etc/apache2/sites-enabled/000-default中,里面有这样的内容:
    NameVirtualHost *
    <VirtualHost *>
    ServerAdmin [email protected]

    DocumentRoot /var/www/
    ……
这是设置虚拟主机的,对我来说没什么意义。所以我就把apache2.conf里的Include /etc/apache2/sites-enabled/一行注释掉了,并且在httpd.conf里设置DocumentRoot为我的用户目录下的某 个目录,这样方便开发。

再看看/etc/apache2目录下的东西。刚才在apache2.conf里发现了sites- enabled目录,而在 /etc/apache2下还有一个sites-available目录,这里面是放什么的呢?其实,这里面才是真正的配置文件,而sites- enabled目录存放的只是一些指向这里的文件的符号链接,你可以用ls /etc/apache2/sites-enabled/来证实一下。所以,如果apache上配置了多个虚拟主机,每个虚拟主机的配置文件都放在 sites-available下,那么对于虚拟主机的停用、启用就非常方便了:当在sites-enabled下建立一个指向某个虚拟主机配置文件的链 接时,就启用了它;如果要关闭某个虚拟主机的话,只需删除相应的链接即可,根本不用去改配置文件。

======================================================
mods- available、mods-enabled和上面说的sites-available、sites-enabled类似,这两个目录 是存放apache功能模块的配置文件和链接的。当我用apt-get install php5安装了PHP模块后,在这两个目录里就有了php5.load、php5.conf和指向这两个文件的链接。这种目录结果对于启用、停用某个 Apache模块是非常方便的。
最后一个要说的是ports.conf,这里面设置了Apache使用的端口。如果需要调整默认的端口设置,建议编辑这个文件。或者你嫌它实在多 余,也可以先把apache2.conf中的Include /etc/apache2/ports.conf一行去掉,在httpd.conf里设置Apache端口。
ubuntu里缺省安装的目录结构很有一点不同。在ubuntu中module和 virtual host的配置都有两个目录,一个是available,一个是enabled,available目录是存放有效的内容,但不起作用,只有用ln 连到enabled过去才可以起作用。对调试使用都很方便,但是如果事先不知道,找起来也有点麻烦。
/etc/apache2/sites-available 里放的是VH的配置,但不起作用,要把文件link到 sites-enabled 目录里才行。
NameVirtualHost
    <VirtualHost *>
            ServerName 域名
            DocumentRoot 把rails项目里的public当根目录
            <Directory public根目录>
                   Options ExecCGI FollowSymLinks
                   AllowOverride all
                    allow from all
                    Order allow,deny
            </Directory>
            ErrorLog /var/log/apache2/error-域名.log
    </VirtualHost>

====================================================
什么是 Virtual Hosting(虚拟主机)?
简单说就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.net和 www.example2.net两个域名都指向同一服务器,WEB服务器又支持Virtual Hosting,那么www.example1.net和www.example2.net可以访问到同一服务器上不同的WEB空间(网站文件存放目 录)。
配置格式
在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/用户名(文件) 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间:
    <VirtualHost *>
    # 在ServerName后加上你的网站名称
    ServerName www.linyupark.com
    # 如果你想多个网站名称都取得相同的网站,可以加在ServerAlias后加上其他网站别名。
    # 别名间以空格隔开。
    ServerAlias ftp.linyupark.com mail.linyupark.com
    # 在ServerAdmin后加上网站管理员的电邮地址,方便别人有问题是可以联络网站管理员。
    ServerAdmin [email protected]
    # 在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
    DocumentRoot /home/linyupark/public_html
    <Directory /home/linyupark/public_html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    </Directory>
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Allow from all
    </Directory>
    ErrorLog /home/linyupark/public_html/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog /home/linyupark/public_html/access.log combined
    ServerSignature On
    </VirtualHost>
    如果你的服务器有多个IP,而不同的IP又有着不一样的虚拟用户的话,可以修改成:
    <VirtualHost IP地址[:端口]>
    ...
    </VirtualHost>
启用配置
前面我们配置好的内容只是“有效”虚拟主机,真正发挥效果的话得放到 /etc/apache2/sites-enabled 文件夹下面。我们可以使用ln命令来建立一对关联文件:
    sudo ln -s /etc/apache2/sites-available/linyupark /etc/apache2/sites-enabled/linyupark
检查语法,重启web服务
谨慎起见,我们在重启服务前先检查下语法:
sudo apache2ctl configtest
没有错误的话,再重启Apache
sudo /etc/init.d/apache2 -k restart
查看效果
主要的设置工作已经完成了,还算简单吧 ^_^。怎么看效果呢?
也简单,只要把主机上(俺用的是XP)里的Host表改改就行了。地址是:
WINDOWS\system32\drivers\etc
打开后加上一句:
192.168.1.22    www.linyupark.com
效果就是浏览器上输入www.linyupark.com就直接会去找IP 192.168.1.22 服务器收到请求,查看有没有符合的虚拟主机域名,有的话就把相应目录下的WEB文件呈现给请求用户

----------------------------------------

一个网卡绑定多个IP,然后设置多个虚拟主机

----------------------------------------

修改/etc/network/interfaces
auto eth0:1
iface eth0:1 inet static
address 192.168.10.37
netmask 255.255.255.0
network 192.168.10.1
broadcast 192.168.10.255

http://blog.chinaunix.net/u/5948/showart_454495.html
在设置虚拟主机,即可在apache中设置多个虚拟主机

不过要重启网卡:sudo /etc/init.d/networking restart

-------------------------------------------

GFW

-------------------------------------------

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->

参考:http://hi.baidu.com/%CE%B0%CE%B0%D0%A1%CE%D1/blog/item/0802884e0776a43bafc3ab98.html

注册网址:http://www.cjb.net/cgi-bin/shell.cgi?action=signup



一、需要一个远程主机的登录帐号,点击这里去免费注册一个帐号就行了,这个网站注册很简单,我自己用着感觉速度还是挺快到。收到回复邮件后,按照提示激活帐号,然后便会收到第二封邮件,告诉你服务器名称、帐号、密码,如下所示:
Hostname:       shell.cjb.net
Username:       ************
Password:        ************
二、安装一个firefox 插件——AutoProxy ,这个插件能帮你自动判断,哪些网站需要GFW,哪些网站不需要。安装插件后,会提示你订阅gfw 的列表,这张列表中记录了被墙的网站地址。
接着设置这个软件,在firefox 的状态栏里面,有个写着“福”字到图标,点击便进入了设置,在“代理服务器”菜单项中点击“选择代理服务器”一项:

默认的主代理为Tor ,改成ssh -D 就行了:
三、修改firefox 的代理DNS 设置,再浏览器地址一栏输入about:config, 然后会出现
选择“我保证会小心”,然后在过滤器里面输入
network.proxy.socks_remote_dns ,如下图所示:
接着,双击下面出现的那一项,你会发现,它到值已经变为true 了:
这样,firefox 的设置就完成了。
四、登录远程服务器:
sudo ssh -qTfnN -D 7070 [email protected]
然后输入yes:
再接着输入你的密码,就行了。下面,来看看墙外的世界:
---------------------------------------------------------

关闭触摸板

---------------------------------------------------------

sudo modprobe psmouse   开启触摸板

sudo modprobe -r psmouse 关闭触摸板

sudo apt-get install swfdec-gnome 添加swf播放

-------------------------------------------------------------

解决pdf中文乱码问题

-------------------------------------------------------------

sudo apt-get install xpdf-chinese-simplified

sudo apt-get install xpdf-chinese-traditional

sudo apt-get install poppler-data

sudo rm /etc/fonts/conf.d/49-sansserif.conf

搭建 svn服务器安装Subversion
#apt-get install subversion
新建存储仓库
#mkdir /home/svnrepos
#svnadmin create /home/svnrepos/TestProject
修改配置
#cd /home/svnreos/TestProject/conf
#vim  svnserve.conf
取消下面几行的注释:
anon-access = read            #匿名用户权限(read,write,none)
auth-access = write                                      #认证用户权限(read,write,none)
password-db = passwd                      #用户账户管理(passwd 为文件名称,这里使用了相对路径)
#vim passwd
添加svn用户
svnuser = password                                     #指定(用户名 = 密码)
导入项目
假如项目在/opt/TestProject 目录
#svn import –m “My TestProject Imported” /opt/TestProject  file:///home/svnrepos/TestProject
提交后提示版本为1
启动SVN服务器
#svnserve –d –r /home/svnrepos --listen-host 172.31.134.100 (Your Ip Addr)
注意:这里svnrepos后边不能有/,新版本的svn需要 把 --listen-host 172.31.134.100 替换成 --listen-port 3690)
-d: 在后台运行
-r: 指定svn服务器根目录
--listen-host: 指定监听IP
测试SVN
在其他机器上使用 svn://172.31.134.100/TestProject
用户名:svnuser  密码:password
访问svn服务。

附录 A 开机自动启动svn服务
在 /etc/init.d 目录下谢一个脚本svnd.sh,内容如下:
#!/bin/bash
/usr/bin/svnserve -d -r /home/svnrepos
然后执行:
#update-rc.d svnd.sh defaults
#chmod 777 /etc/init.d/svnd.sh
1 楼 xiaoshenge 2011-02-22  
基于主机名的虚拟主机:
1.在/etc/hosts中绑定域名,多域名绑定同一IP
2.sites-avaliable中default的配置:
NameVirtualHost 192.168.1.21
<VirtualHost 192.168.1.21>
ServerName www.mycake.com
ServerAlias mycake.com
DocumentRoot /mnt/g/www/phptest/cakephp
<Directory /mnt/g/www/phptest/cakephp>
    Options Indexes FollowSymLinks MultiViews
AllowOverride None
    Order allow,deny
    allow from all
    </Directory>
ErrorLog ${APACHE_LOG_DIR}/mycake-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/mycake-access.log combined
</VirtualHost>
<VirtualHost 192.168.1.21>
ServerName www.iseeuo.com
ServerAlias iseeuo.com
DocumentRoot /mnt/g/www/runya/iseeuo.com
<Directory /mnt/g/www/runya/iseeuo.com>
    Options Indexes FollowSymLinks MultiViews
AllowOverride None
    Order allow,deny
    allow from all
    </Directory>
ErrorLog ${APACHE_LOG_DIR}/iseeuocom-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/iseeuocom-access.log combined
</VirtualHost>
2 楼 xiaoshenge 2011-02-22  
xp中的虚拟主机配置:
1.c:/windows/system32/drivers/etc/hosts
2.
NameVirtualHost 192.168.1.88
<VirtualHost 192.168.1.88:80>
ServerName www.iseeuo.com
DocumentRoot D:/wamp/www/iseeuo.com
</VirtualHost>
<Directory "D:/wamp/www/iseeuo.com">
Options Indexes FollowSymLinks
Order Deny,Allow
Allow from all
</Directory>
  相关解决方案