Linux实践

TestWhite 2018年5月18日09:32:29
评论
7912字阅读26分22秒
云小站

Linux实践

Linux安装程序

Linux安装程序的方法:

  1. 二进制文件安装
      rpm -ivh *.rpm
    
  2. YUM库安装
    yum install *** -y
    
  3. 源代码安装
    ./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安装。

  1. 获取Apache的安装包文件,然后解压缩
      gzip -d httpd-2_x_NN.tar.gz -- 或者
      tar -xvf httpd-2_x_NN.tar
    
  2. 解压以后或许Apache的源代码,并进行源代码安装。
    cd httpd-2_x_NN
    ./configure --enable-so
    make
    make install
    
  3. 启动Apache
    /usr/local/apache2/bin/apachectl start
    

MySQL

MySQL 是多线程、多用户的SQL数据库管理系统。

可以采用YUM自动安装,以下例子使用的是yum自动安装,在后续的实例中我们将继续使用RHEL的rpm安装来进行实际操作。

  1. 新建一个目录名为/yum (名字可以随便起)
  2. 手动mount挂载建议新建一个目录用于挂载光盘镜像到 /yum
    [root@oracle ~]# mount /media/RHEL_5.5\ i386\ DVD/ /yum/
    
  3. 配置文件在/etc/yum.repos.d/里面 如果里面有.repo结尾的文件,所有都删除。如果没有,自己新建一个.repo文件
    [rhel 5] 
    name=rhel5
    baseurl=file:///yum/Server   寻找所需安装软件的位置
    enabled=1  使用自动安装
    gpgchek=0取消包检查
    
  4. 清理yum缓存
     [root@oracle yum]# yum clean all
    
  5. 查找软件mysql
     [root@oracle yum]# yum list |grep mysql
    
  6. 搜索软件mysql
     [root@oracle yum]# yum search mysql
    
  7. 自动安装mysql
     [root@oracle yum]# yum install mysql* -y
    
  8. 测试安装mysql
     [root@oracle yum]# service mysqld status
    
  9. 启动并登录mysql
     [root@oracle yum]# mysql -u root -p
    

PHP

PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。

  1. 获取PHP的安装包文件,然后解压缩
      gzip -d php-NN.tar.gz -- 或者
      tar -xvf httpd-2_x_NN.tar
    
  2. 解压以后或许PHP的源代码,并进行源代码安装。
    cd php-NN
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
    make
    make install
    
  3. 设置php.ini
    cp php.ini-development /usr/local/lib/php.ini
    
  4. 修改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
    
  5. 重新启动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安装。

  1. 检查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目录下

  2. 检查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测试页面,则安装成功

  3. 检查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的安装情况。

  4. 检测安装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;
    

  5. 部署然之网站

    复制并解压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
    

  6. 打开浏览器,输入http://xxx.xxx.xxx.xxx/ranzhi/www,按照步骤进行安装。确认数据库选择localhost。

SVN

使用系统光盘镜像在Linux(RHEL5.5)中安装SVN系统

  1. 把系统安装镜像文件(rhel-server-5.5-i386-dvd)连接上虚拟机的光驱设备
  2. 进入系统已经挂载的目录,并进入Server目录中
    [root@localhost ~]# mount
    [root@localhost ~]# cd /media/RHEL_6.5\ i386\ DVD/Packages/
    
  3. 使用rpm安装PostgreSQL程序
    [root@localhost Server]# rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm 
    
  4. 使用rpm安装apr程序
    [root@localhost Server]# rpm -ivh apr-1.2.7-11.el5_3.1.i386.rpm 
    
  5. 使用rpm安装apr-util程序
    [root@localhost Server]# rpm -ivh apr-util-1.2.7-7.el5_3.2.i386.rpm 
    
  6. 使用rpm安装Apache程序
    [root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm 
    
  7. 启动Apache服务
    [root@localhost Server]# service httpd restart
    
  8. 使用rpm安装subversion程序
    [root@localhost Server]# rpm -ivh subversion-1.4.2-4.el5_3.1.i386.rpm 
    
  9. 使用rpm安装mod_dav_svn程序
    [root@localhost Server]# rpm -ivh mod_dav_svn-1.4.2-4.el5_3.1.i386.rpm 
    
  10. 检测svn的安装是否成功
    [root@localhost Server]# ls /etc/httpd/modules/ | grep svn
    mod_authz_svn.so
    mod_dav_svn.so
    

    务必有以上两个文件,否则安装失败。

  11. 配置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
    
  12. 编辑httpd.conf文件,在文件最后增加以下两行代码:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    
  13. 创建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
    
  14. 创建用户文件并添加用户
    [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]#
    
  15. 建立控制文件
    [root@localhost svn]# touch authz.conf
    [root@localhost svn]# ls
    authz.conf passwd.conf project
    
  16. 编辑authz.conf文件,增加以下内容
    [groups]
    admin=admin
    develop=demo
    [TSS:/]
    @admin=rw
    @develop=rw
    [/]
    *=rw
    
  17. 再次编辑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/
    
  18. 修改/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
    
  19. 启动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 ]
    
  20. 在浏览器中输入服务器地址进行验证: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

继续阅读
  • 我们QQ群
  • QQ扫一扫
  • weinxin
  • 微信公众号
  • 公众号扫一扫
  • weinxin
TestWhite
  • 本文由 发表于 2018年5月18日09:32:29
  • 请您在转载时请务必保留本文链接:https://www.playezu.com/12608.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: