Linux实践
Linux安装程序
Linux安装程序的方法:
-
二进制文件安装
rpm -ivh *.rpm
-
YUM库安装
yum install *** -y
-
源代码安装
./configure [-选项] make make install
Ubuntu安装
sudo apt-get install ***
配置LAMP环境
LAMP环境指的是:Linux + Apache + MySQL + PHP。LAMP是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。
Apache
Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。以下例子是使用源码安装的方式来安装Apache。在RHEL里面,其实也可以使用rpm的方式来进行安装,在后面的实例中将会使用rpm安装。
-
获取Apache的安装包文件,然后解压缩
gzip -d httpd-2_x_NN.tar.gz -- 或者 tar -xvf httpd-2_x_NN.tar
-
解压以后或许Apache的源代码,并进行源代码安装。
cd httpd-2_x_NN ./configure --enable-so make make install
-
启动Apache
/usr/local/apache2/bin/apachectl start
MySQL
MySQL 是多线程、多用户的SQL数据库管理系统。
可以采用YUM自动安装,以下例子使用的是yum自动安装,在后续的实例中我们将继续使用RHEL的rpm安装来进行实际操作。
新建一个目录名为/yum (名字可以随便起)
-
手动mount挂载建议新建一个目录用于挂载光盘镜像到 /yum
[root@oracle ~]# mount /media/RHEL_5.5\ i386\ DVD/ /yum/
-
配置文件在/etc/yum.repos.d/里面 如果里面有.repo结尾的文件,所有都删除。如果没有,自己新建一个.repo文件
[rhel 5] name=rhel5 baseurl=file:///yum/Server 寻找所需安装软件的位置 enabled=1 使用自动安装 gpgchek=0取消包检查
-
清理yum缓存
[root@oracle yum]# yum clean all
-
查找软件mysql
[root@oracle yum]# yum list |grep mysql
-
搜索软件mysql
[root@oracle yum]# yum search mysql
-
自动安装mysql
[root@oracle yum]# yum install mysql* -y
-
测试安装mysql
[root@oracle yum]# service mysqld status
-
启动并登录mysql
[root@oracle yum]# mysql -u root -p
PHP
PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。
-
获取PHP的安装包文件,然后解压缩
gzip -d php-NN.tar.gz -- 或者 tar -xvf httpd-2_x_NN.tar
-
解压以后或许PHP的源代码,并进行源代码安装。
cd php-NN ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql make make install
-
设置php.ini
cp php.ini-development /usr/local/lib/php.ini
-
修改Apache配置httpd.conf文件,添加以下文字
LoadModule php5_module modules/libphp5.so <FilesMatch "\.ph(p[2-6]?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source
-
重新启动Apache
/usr/local/apache2/bin/apachectl start OR service httpd restart
配置Vsftpd
安装完之后我们要对它进行配置,才能正常使用。编辑vsftpd的配置文件vi /etc/vsftpd/vsftpd.conf
vi编辑器中的搜索使命是斜杠“/”,然后输入要查找的内容,回车确定。以下是要更改的选项
anonymous_enable=NO #禁止匿名访问
userlist_deny=NO #(这条需手动添加到最后)使用FTP用户表,表里没有的用户需要添加才能登录
启动vsftpd
service vsftpd start
然之协同网站搭建和部署实例
接下来我们在Linux(RHEL6.5)下来搭建然之协同的网站。
在所有操作之前,请将RHEL6.5的安装光盘镜像放到虚拟机的虚拟光驱中,并查看mount
找到改光盘所在。查找并进入光盘所在的目录中
cd /media/RHEL_6.5\ i386\ DVD/Packages
接下来所有安装的操作,均需要在上述目录中查找安装包并进行rpm
安装。
-
检查Linux中是否有FTP服务,FTP用来将本地文件上传到远程的Linux主机中
service vsftpd status
如果上述命令提示没有vsftp的服务,择需要安装vsftp
ll | grep vsftp rpm -ivh vsftpd-2.0.1-5.i386.rpm --nodeps
安装完成后,请在开启vsftp运行以前,首先配置vsftp,编辑vsftpd的配置文件
vi /etc/vsftpd/vsftpd.conf
请确保以下配置,如果存在该配置,请确保YES或者NO正确,如果不存在,请在该文件最后一行加上
#(这条一般都有,请确保是NO)禁止匿名访问 anonymous_enable=NO #(这条需手动添加到最后)使用FTP用户表,表里没有的用户需要添加才能登录 userlist_deny=NO
然后启动 vsftp
service vsftpd restart
通过XShell的New File Transfer,将ranzhi.3.1.zip文件上传到
/tmp
目录下
-
检查Apache是否安装,如果未安装的话,则首先安装。
service httpd status
如果上述命令提示未安装httpd的服务,请首先安装
ll | grep httpd rpm -ivh httpd-2.2.15-26.el6.i686.rpm --nodeps
开启Apache
service httpd restart
打开浏览器,输入虚拟机Linux的IP地址进行访问Apache
http://xxx.xxx.xxx.xxx
若能看到RHEL的Apache测试页面,则安装成功
-
检查PHP是否安装。如果未安装的话,则需要确保安装
在
/var/www/html
目录下新建一个test.php
的文件vim /var/www/html/test.php
输入以下内容
<?php echo "Hello World" ?>
然后打开浏览器,输入
http://xxx.xxx.xxx.xxx/test.php
,如果能查看到页面里面只有Hello World
的字样,则php安装成功。否则请按照以下步骤安装rpm -ivh php*.rpm --nodeps
然后重新启动Apache
service httpd restart
接下来再次访问
http://xxx.xxx.xxx.xxx/test.php
检测php的安装情况。 -
检测安装MySQL数据库
service mysqld status
如果提示未安装mysqld,请按照以下步骤安装
ll | grep mysql rpm -ivh mysql-server-5.1.52-1.el6_0.1.i686.rpm --nodeps rpm -ivh mysql-5.1.52-1.el6_0.1.i686.rpm --nodeps
然后开启MySQL
service mysqld restart
登录MySQL
mysql -u root -p 回车后输入空密码便可登录 mysql> show databases; mysql> use ranzhi; mysql> select account from sys_user;
-
部署然之网站
复制并解压zip文件
cp /tmp/ranzhi.3.1.zip /var/www/html cd /var/www/html unzip ranzhi.3.1.zip chmod -R 777 ranzhi rm -f /ranzhi/index.html
打开浏览器,输入
http://xxx.xxx.xxx.xxx/ranzhi/www
,按照步骤进行安装。确认数据库选择localhost。
SVN
使用系统光盘镜像在Linux(RHEL5.5)中安装SVN系统
把系统安装镜像文件(rhel-server-5.5-i386-dvd)连接上虚拟机的光驱设备
-
进入系统已经挂载的目录,并进入Server目录中
[root@localhost ~]# mount [root@localhost ~]# cd /media/RHEL_6.5\ i386\ DVD/Packages/
-
使用rpm安装
PostgreSQL
程序[root@localhost Server]# rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm
-
使用rpm安装
apr
程序[root@localhost Server]# rpm -ivh apr-1.2.7-11.el5_3.1.i386.rpm
-
使用rpm安装
apr-util
程序[root@localhost Server]# rpm -ivh apr-util-1.2.7-7.el5_3.2.i386.rpm
-
使用rpm安装
Apache
程序[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm
-
启动
Apache
服务[root@localhost Server]# service httpd restart
-
使用rpm安装
subversion
程序[root@localhost Server]# rpm -ivh subversion-1.4.2-4.el5_3.1.i386.rpm
-
使用rpm安装
mod_dav_svn
程序[root@localhost Server]# rpm -ivh mod_dav_svn-1.4.2-4.el5_3.1.i386.rpm
-
检测svn的安装是否成功
[root@localhost Server]# ls /etc/httpd/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so
务必有以上两个文件,否则安装失败。
-
配置Apache,备份
httpd.conf
文件。[root@localhost Server]# cd /etc/httpd/conf [root@localhost conf]# ls httpd.conf magic [root@localhost conf]# cp httpd.conf httpd.conf.old
-
编辑
httpd.conf
文件,在文件最后增加以下两行代码:LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
-
创建svn仓库
[root@localhost conf]# cd /opt/ [root@localhost opt]# mkdir -p svn/project [root@localhost opt]# ls svn [root@localhost opt]# cd svn/ [root@localhost svn]# ls project [root@localhost svn]# svnadmin create project/TSS [root@localhost svn]# cd project/ [root@localhost project]# ls TSS
-
创建用户文件并添加用户
[root@localhost project]# cd .. [root@localhost svn]# htpasswd -c passwd.conf admin New password: Re-type new password: Adding password for user admin [root@localhost svn]# htpasswd -m passwd.conf demo New password: Re-type new password: Adding password for user demo [root@localhost svn]#
-
建立控制文件
[root@localhost svn]# touch authz.conf [root@localhost svn]# ls authz.conf passwd.conf project
-
编辑authz.conf文件,增加以下内容
[groups] admin=admin develop=demo [TSS:/] @admin=rw @develop=rw [/] *=rw
-
再次编辑httpd.conf文件,添加svn信息,在文件末尾增加以下代码
<Location /svn/> DAV svn SVNParentPath /opt/svn/project/ AuthType Basic AuthName "Subversion repository" SVNListParentpath on AuthUserFile /opt/svn/passwd.conf AuthzSVNAccessFile /opt/svn/authz.conf Require valid-user </Location> RedirectMatch ^(/svn)$ $1/
-
修改/opt/snv/project权限
[root@localhost opt]# ll total 4 drwxr-xr-x 3 root root 4096 Aug 16 12:30 svn [root@localhost opt]# chmod -R 777 svn/ [root@localhost opt]# ll total 4 drwxrwxrwx 3 root root 4096 Aug 16 12:30 svn
-
启动svn服务,也就是重新启动Apache服务
[root@localhost opt]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [Fri Aug 16 12:40:14 2013] [warn] module dav_svn_module is already loaded, skipping [Fri Aug 16 12:40:14 2013] [warn] module authz_svn_module is already loaded, skipping [ OK ]
在浏览器中输入服务器地址进行验证:
http://localhost/svn
Linux Shell 编程
Shell介绍
- Linux中有好多中不同的shell,但是通常我们使用bash
- (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。
- Bourne Shell:是贝尔实验室开发的。
- BASH:是GNU的Bourne Again Shell,是GNU/Linux操作系统上默认的shell。
- Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
- C Shell:是SUN公司Shell的BSD版本。
- Z Shell:The last shell you’ll ever need!
- Z 是最后一个字母,也就是终极Shell。它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。
chmod +x filename
- 然后,您可以通过输入:
./filename
来执行您的脚本。 或者sh filename
打印语句
#!/bin/bash
#对变量赋值:
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a
输出语句
#/bin/bash
clear
echo "Hello, $USER"
echo
echo "Today 's date id `date`"
echo
echo "the user is :"
who
echo
echo "this is `uname -s`"
echo
echo "that's all folks! "
判断语句
#/bin/bash
echo -n "login:"
read name
echo -n "password:"
read passwd
if [ $name = "john" -a $passwd = "john" ];then
echo "the host and password is right!"
else echo "input is error!"
fi
#/bin/bash
echo "please enter two number"
read a
read b
if test $a -eq $b
then echo "NO.1 = NO.2"
elif test $a -gt $b
then echo "NO.1 > NO.2"
else echo "NO.1 < NO.2"
fi
#/bin/bash
echo "enter a file name under /root:"
read a
if test -e /root/$a
then echo "the file is exist!"
else echo "the file is not exist!"
fi
循环语句
#/bin/bash
clear
for num in 1 2 3 4 5 6 7 8 9 10
do
echo "$num"
done
#/bin/bash
for filename in `ls`
do
if test -d $filename
then b=0
else
a=$(ls -l $filename | awk '{ print $5 }')
if test $a -eq 0
then rm $filename
fi
fi
done
#/bin/bash
while :
do
echo "please input file's name:"
read a
if test -e /root/$a
then
echo "the file is existing Please input new file name:"
else
mkdir $a
echo "you aye sussesful!"
break
fi
done
分支语句
#!/bin/bash
clear
echo "enter a number from 1 to 5:"
read num
case $num in
1) echo "you enter 1"
;;
2) echo "you enter 2"
;;
3) echo "you enter 3"
;;
4) echo "you enter 4"
;;
5) echo "you enter 5"
;;
*) echo "error"
;;
esac
#!/bin/bash
clear
echo "enter [y/n]:"
read a
case $a in
y|Y|Yes|YES) echo "you enter $a"
;;
n|N|NO|no) echo "you enter $a"
;;
*) echo "error"
;;
esac
文本读取
#!/bin/bash
count=1
cat test | while read line
do
echo "Line $count:$line"
count=$[ $count + 1 ]
done
echo "finish"
exit 0