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

WBOY
Release: 2016-06-13 11:03:05
Original
921 people have browsed it

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
    #
    1、。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式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 。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。比如我想挂载第一块硬盘的第一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID。
    2、。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。
    3、。这里用来指定文件系统的类型。下面的文件系统都是目前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、。这里用来填写设置选项,各个选项用逗号隔开。但在这里有个非常重要的关键字需要了解一下: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、。此处为1的话,表示要将整个里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
    6、。这里用来指定如何使用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 *
   
    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
   
            ServerName 域名
            DocumentRoot 把rails项目里的public当根目录
           
                   Options ExecCGI FollowSymLinks
                   AllowOverride all
                    allow from all
                    Order allow,deny
           

            ErrorLog /var/log/apache2/error-域名.log
   


====================================================
什么是 Virtual Hosting(虚拟主机)?
简单说就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.net和 www.example2.net两个域名都指向同一服务器,WEB服务器又支持Virtual Hosting,那么www.example1.net和www.example2.net可以访问到同一服务器上不同的WEB空间(网站文件存放目 录)。
配置格式
在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/用户名(文件) 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间:
   
    # 在ServerName后加上你的网站名称
    ServerName www.linyupark.com
    # 如果你想多个网站名称都取得相同的网站,可以加在ServerAlias后加上其他网站别名。
    # 别名间以空格隔开。
    ServerAlias ftp.linyupark.com mail.linyupark.com
    # 在ServerAdmin后加上网站管理员的电邮地址,方便别人有问题是可以联络网站管理员。
    ServerAdmin [email protected]
    # 在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
    DocumentRoot /home/linyupark/public_html
   
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
   

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Allow from all
   

    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
   

    如果你的服务器有多个IP,而不同的IP又有着不一样的虚拟用户的话,可以修改成:
   
    ...
   

启用配置
前面我们配置好的内容只是“有效”虚拟主机,真正发挥效果的话得放到 /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

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



参考: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

ServerName www.mycake.com
ServerAlias mycake.com
DocumentRoot /mnt/g/www/phptest/cakephp

    Options Indexes FollowSymLinks MultiViews
AllowOverride None
    Order allow,deny
    allow from all
   

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


ServerName www.iseeuo.com
ServerAlias iseeuo.com
DocumentRoot /mnt/g/www/runya/iseeuo.com

    Options Indexes FollowSymLinks MultiViews
AllowOverride None
    Order allow,deny
    allow from all
   

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

2 楼 xiaoshenge 2011-02-22  
xp中的虚拟主机配置:
1.c:/windows/system32/drivers/etc/hosts
2.
NameVirtualHost 192.168.1.88

ServerName www.iseeuo.com
DocumentRoot D:/wamp/www/iseeuo.com


Options Indexes FollowSymLinks
Order Deny,Allow
Allow from all

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template