3月5日——培训第72天

源代码安装软件

要确定本机的gcc是安装了的!否则没办法从源代码安装。

redhat-config-packages 可以从光盘安装gcc!

vi 1.c

main()
{
 printf("Hello c/n");
}

编译的时候输入:gcc -o 1.exe 1.c
运行的时候输入:./1.exe  (只输入1.exe也是可以的。)
 
如果 gcc file.c ,那么生成的是a.out
扩展名可以任意,Linux不会通过扩展名来判断是否是可执行文件,而是通过权限判断。
===================================================================

Linux权限: 读 写 执行

读:r  (read)
写:w  (write)
执行:x (execute)

赋予权限要针对三个用户(文件所有者、文件所属组、除了文件所有者和文件所属组之外的其他用户)

每一类用户都有读、写、执行三类权限。

ls -l显示当前用户

可以看到类似下面的字符串:
-rwxr-xr-x

第一个字符是-,所以是文件(如果是d,则代表是目录)
rwxr-xr-x

rwx是说文件所有者具备所有权限
r-x是说文件所属组不具备写权限
r-x是说其他用户不具备写权限

修改文件权限:
文件所有者: u   文件所属组: g   其他用户: o
chmod u+x f2   给f2文件的文件所有者赋予执行权限!(这样就可以直接输入2.txt观察执行结果了)
chmod u-x f2   给f2文件的文件所有者剥夺执行权限!

对于管理员用户来说,即便没有设置文件读的权限,也是可以读的。

chmod u+x,g+x,o+x f2 (赋予多个权限的时候用逗号分隔)

在默认情况下,一个文件创建出来后,权限是这么分配的……
所有者:读写权限
所属组:读权限
其他用户:读权限

r:4、
w:2
x:1
如果用数字来表示权限的话,就像上面那样

如果用数字授予权限的话:chmod 744 文件名
也就是说,默认情况下的文件所有者权限应该是6,文件所属组的权限是4,其他用户的权限是4
也就是644

现在赋予文件所有者执行的权限,意味着给6加上1,所以是744
如果赋予文件所有的权限,那就是chmod 777 文件名

==========================================================================
tar -xzvf qq.tar.gz
解压qq软件包,解开压缩包后得到gaim-cvs-0218-qq-0.2.5
由于.c文件太多了,所以不能直接用gcc编译,应该使用make

同理如果很多的java文件的话,也不会使用javac ,而是ant管理工具

在这之前得先在图形化界面的终端里面输入redhat-config-packages来进入添加删除
程序界面,把所有的开发工具的钩都打上,然后更新,大概要600MB左右,期间频繁的在
光盘2和光盘3之间切换……

第一步:进入qq主目录,先生成配置文件
./configure --prefix=/qq
生成配置文件,把配置文件放到根目录下的qq文件夹中!

然后输入make
然后再输入make install

=================================================================
进入apache目录:然后输入 ./configure --prefix=/usr/local/apache2
然后还是老样子,make完了之后make install就可以了。需要注意的是apache的配置

在桌面上建立快捷方式:邮件单击新建启动器,注意要在命令中选中具体的目录中的命令

cd /usr/local/apache2
bin/apachectl start   :启动apache

apache2中的htdocs目录用来放置网页文件……

在htdocs中新建一个1.html后,输入一些东西,然后访问
http://162.105.81.??/1.html
就可以了。

默认情况下htdocs中是没有首页文件的,你给它新建一个index.html就行了,以后
输入http://162.105.81.??
就可以得到那个index.html了。

如果要建立真实目录的话需要建立在htdocs中……

mkdir news
然后在里面建立一个index.html就行了

这样就可以通过http://162.105.81.??/news来访问了。

但是虚拟目录呢?也就是说如果工程文件在其他位置,又想访问到的话,这时候如果不配置
虚拟路径的话肯定是访问不了的。

配置虚拟目录(不在htdocs下的资源)的时候,需要修改apache的配置文件,这和tomcat一样。

cd /usr/local/apache2/conf中的httpd.conf是很重要的配置文件

vi httpd.conf

然后在命令模式中使用/Alias命令找到类似下面的指令,然后8yy复制8行,然后按p粘贴。
/Alias /abc/ "/web1/"
<Directory "/web1">
……………………


保存后,使用bin/apachectl restart重启apache就可以访问了……
访问的时候Http://162.105.81.??/abc/
不要忘记最后一个"/"!!!当然更别忘了里面得给一个index.html!!

如果配置文件要是写成:

Alias /abc "/usr/local/apache2/aaa/"

<Directory "/usr/local/apache2/aaa">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

访问的时候就不用最后的/了,直接就是abc就可以了,注意
/usr/local/apache2/aaa/是真实文件存储的路径!/abc是访问的时候
在地址栏里面输入的

========================================================

下面说说虚拟主机,这还需要DNS服务器才可以
虚拟主机:在一台物理机器上可以发布多个web服务器。

要么基于ip,要么基于端口,前两种都不怎么实在,一般都是基于名称(域名)
还得用redhat-config-packages命令在图形化界面里面装DNS服务器。

装完后就有了这个配置文件:
/etc/named.conf

首先修改这个配置文件

加入:
zone "yuanbin.com" IN{
 type master ;
 file "yuanbin.com"
};    //正向文件:由域名找ip

zone "81.105.162.in-addr.arpa" IN {
 type master ;
 file "yuanbin.com1"
} ;  //反向文件:由ip找域名,一个网段只能写一个反向文件!!!

注意上面的两个file名字是任意起的,但是一定不可以一样!!

然后到/var/named里面

cp localhost.zone yuanbin.com
cp named.local yuanbin.com1

然后得分别修改yuanbin.com和yuanbin.com1两个文件!

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

上面的过程有点乱,linux中这里配置虚拟主机的过程再说一遍:

/etc中的named.conf和resolv.conf是需要更改的
首先更改resolv.conf其实这里就是把DNS改为本机的linux的ip地址,当然
你也可以在图形化界面里面的终端中通过使用netconfig来更改,都是一样的,
这一步非常容易被忽略掉,所以最好先做!!

主要是/etc/named.conf的更改,这里需要注意添加上面所写的两段zone代码,
它们添加的位置应该在name.conf原始文件中所有zone代码的最后。

里面的两个file名字是不可以相同的,但是可以任意命名,然后这两个文件还得修改,
所以千万不要给搞反了!!这里有一点还需要特别注意:反向文件(也就是由ip找域名的
那段代码,每个机器在一个网段中只能写一个!由域名找ip的正向文件可以写多个,比如
yuanbin.com、sina.com、xiaohong.com等等)

这里还多说一句,反向文件代码可以不设的,但是一般都设,如果你不设定的话,ping的
时候速度会非常非常的慢!!

之后就是要编辑正向和反向两个文件了,在/var/named目录里面有两个文件,localhost.zone
和named.local,分别是正向文件和反向文件的模版,于是利用
cp localhost.zone yuanbin.com
cp named.local yuanbin.com1
把模版分别拷贝到你自己的正向和反向文件里面,然后通过vi做一下修改就可以。
修改后的一个样板如下:

正向文件:

$TTL    86400
@                        IN SOA www.yuanbin.com. root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        IN NS   www.yuanbin.com.
www                      IN A   162.105.81.111


反向文件:

$TTL    86400
@       IN      SOA     www.yuanbin.com. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      www.yuanbin.com.

111       IN      PTR     www.yuanbin.com.


严格按照上面的样子修改你自己的正向和反向文件,保存退出后使用命令:
service named start
启动DNS服务器

然后使用命令  ping www.yuanbin.com 应该就可以得到结果了!

其实比较容易忽略的过程有两个:一个是忘了启动dns服务器,一个是忘了把自己linux
网络环境的DNS服务器地址设置为本机linux网络环境的ip。

注意以上两个问题,再加上修改文件和添加zone代码的时候小心一些就没问题了。
确实,很难把它弄对,这里确实是考验耐心的地方……
------------------------------------------------------------------
配置虚拟主机:

上面建立了一个www.yuanbin.com
为了后面方便用同样的方法建立www.wangzhiyuan.com
www.zhaoming.com
(注意由于已经有了反向文件,所以只需要建立两个对应的正向文件就可以了)

有了三个区域之后就可以在自己这个机器上面配多个网站了。

在根目录下建立web目录,然后在里面建立yuanbin、wangzhiyuan和zhaoming
三个web站点的文档目录。别忘了分别在这三个文件夹里面建立首页文件index.html

下面要更改的是配置文件
首先: vi /usr/local/apache2/conf/httpd.conf

将下面这句话取消注释
NameVirtualHost 162.105.81.111:80

然后在文件的最后根据注释部分更改出如下三个片段添加到httpd.conf的最后

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/zhaoming
    ServerName www.zhaoming.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/yuanbin
    ServerName www.yuanbin.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost 162.105.81.111:80>
    ServerAdmin [email protected]
    DocumentRoot /web1/wangzhiyuan
    ServerName www.wangzhiyuan.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>


重启apache:/usr/local/apache2/bin/apachectl restart

然后如果你要用window来验证的话,别忘了把windows的DNS服务器也改为Linux本机
的ip地址!!还有一点一定要注意,如果有代理的话一定要去掉!!!!

 

 

 

 


 

发布了111 篇原创文章 · 获赞 6 · 访问量 18万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章