• 再不写,我怕就再也不写了-LAMP基础


      hi

    经历了4天大餐的洗礼,整个人都思密达了。。。昨天的懒,是没有原因的懒,总之就是该提笔了亲

    1、Ubuntu下的LAMP配置

    -----Ubuntu基础知识-----

    ----管理员权限

    出于安全,Ubuntu不推荐使用root账户远程登录-强制使用其他普通账户

    由于普通账户没有超级管理员权限,默认情况下又不能使用root账户登录(远程等),所以需要用到这么两条命令

    su(Switch User)切换到超级管理员

    sudo(Switch User and DO)以超级管理员身份执行

    两者是有本质区别的-前者是“老大”(root)出马,必须用root密码,直到exit才退出;后者是“小弟”请求老大给予准许,并且是临时的权限,密码只用普通的就行

    ----预备知识

    liang@liang-andy:~             $

    用户名@主机名:当期目录 用户类型标记

    其中,$表示普通用户,#表示超级管理员

    ---

    liang@liang-andy:~$ pwd
    /home/liang
    ~表示现在正处于当前用户的个人文件夹中,pwd命令可以给出实际目录

    ---

    下面演示这两个命令:修改root密码

    liang@liang-andy:~$ sudo passwd root
    [sudo] password for liang:
    输入新的 UNIX 密码:
    重新输入新的 UNIX 密码:
    passwd:已成功更新密码
    liang@liang-andy:~$
    然后是su

    liang@liang-andy:~$ su
    密码:
    root@liang-andy:/home/liang#
    注意看目录路径已经变了,还有就是#

    ----apt-get软件安装工具

    主要作用就是获取软件列表apt-get update和软件安装apt-get install

    ----其他必要命令学习

    http://itlab.idcquan.com/linux/special/linuxcom/

    ---

    名称 : ls
      
      使用权限 : 所有使用者
      
      使用方式 : ls [-alrtAFR] [name...]
      
      说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
      
      参数 :
      
      -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
      -l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
      -r 将档案以相反次序显示(原定依英文字母次序)
      -t 将档案依建立时间之先后次序列出
      -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
      -F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
      -R 若目录下有档案,则以下之档案亦皆依序列出
      
      范例:
      列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
       ls -ltr s*
      
      将 /bin 目录以下所有目录及档案详细资料列出 :
       ls -lR /bin
      
      列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :
       ls -AF

    ---

    ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls -l只列出显式文件,说明这两个命令还是不等同的!

    ---

      指令名称 : ln
      
      使用权限 : 所有使用者
      
      使用方式 : ln [options] source dist,其中 option 的格式为 :
      
      [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
      [--help] [--version] [--]
       说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档 案系统中,而软连结却可以跨越不同的档案系统。
      ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
      
      不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
      
      参数 :
      
       -f : 链结时先将与 dist 同档名的档案删除-d : 允许系统管理者硬链结自己的目录-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软连结时,将 dist 视为一般的档案-s : 进行软链结(symbolic link)-v : 在连结之前显示其档名-b : 将在链结时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾-V METHOD : 指定备份的方式--help : 显示辅助说明--version : 显示版本
      范例 :
      将档案 yy 产生一个 symbolic link : zz
       ln -s yy zz
      
      将档案 yy 产生一个 hard link : zz
       ln yy xx

    ---

      名称 : cd
      
      使用权限 : 所有使用者
      
      使用方式 : cd [dirName]
      
      说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。
      
      另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
      
      范例 : 跳到 /usr/bin/ :
       cd /usr/bin
      
      跳到自己的 home directory :
       cd ~
      
      跳到目前目录的上上两层 :
       cd ../..
      
       cd - 返回进入当前目录前所在目录

    名称:cp
      
      使用权限:所有使用者
      
      使用方式:
      
      cp [options] source dest
      cp [options] source... directory
      
      说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 (copy)
      
      参数:
      
      -a 尽可能将档案状态、权限等资料都照原状予以复制。
      -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
      -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
      范例:
      将档案 aaa 复制(已存在),并命名为 bbb :
       cp aaa bbb

           也就是 sudo cp document_A document_B
      
      将所有的C语言程序拷贝至 Finished 子目录中 :
       cp *.c Finished

    ---

      名称:mv
      
      使用权限:所有使用者
      
      使用方式:
      
      mv [options] source dest
      mv [options] source... directory
      说明:将一个档案移至另一档案,或将数个档案移至另一目录。
      参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
      
      范例:
      
      将档案 aaa 更名为 bbb :
       mv aaa bbb
      
      将所有的C语言程序移至 Finished 子目录中 :
       mv -i *.c

    ---

      名称:rm
      
      使用权限:所有使用者
      
      使用方式:rm [options] name...
      
      说明:删除档案及目录。
      
      参数:
      
      -i 删除前逐一询问确认。
      -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
      -r 将目录及以下之档案亦逐一删除。
      范例:
      删除所有C语言程序档;删除前逐一询问确认 :
       rm -i *.c
      
      将 Finished 子目录及子目录中所有档案删除 :
       rm -r Finished

    ---

      名称: mkdir
      
      使用权限:于目前目录有适当权限的所有使用者
      
      使用方式:mkdir [-p] dirName
      
      说明:建立名称为 dirName 之子目录。
      
      参数:-p 确保目录名称存在,不存在的就建一个。
      
      范例:
      
      在工作目录下,建立一个名为 AAA 的子目录 :
       mkdir AAA
      
      在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)
       mkdir -p BBB/Test

    ---

      名称:rmdir
      
      使用权限:于目前目录有适当权限的所有使用者
      
      使用方式: rmdir [-p] dirName
      
      说明: 删除空的目录。
      
      参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
      
      范例:
      
      将工作目录下,名为 AAA 的子目录删除 :
       rmdir AAA
      
      在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
       rmdir -p BBB/Test

    ---

    chmod----改变一个或多个文件的存取模式(mode)
     
    chmod [options] mode files
     
    只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。
     
    options:
     
    -c,--changes
    只输出被改变文件的信息
     
    -f,--silent,--quiet
    当chmod不能改变文件模式时,不通知文件的用户
     
    --help
    输出帮助信息。
     
    -R,--recursive
    可递归遍历子目录,把修改应到目录下所有文件和子目录
     
    --reference=filename
    参照filename的权限来设置权限
     
    -v,--verbose
    无论修改是否成功,输出每个文件的信息
     
    --version
    输出版本信息。
     
    who
     
    u
    用户
     
    g
     
    o
    其它
     
    a
    所有用户(默认)
     
    opcode
     
    +
    增加权限
     
    -
    删除权限
     
    =
    重新分配权限
     
    permission
     
    r
     
    w
     
    x
    执行
     
    s
    设置用户(或组)的ID号
     
    t
    设置粘着位(sticky bit),防止文件或目录被非属主删除
     
    u
    用户的当前权限
     
    g
    组的当前权限
     
    o
    其他用户的当前权限
     
    作为选择,我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。
     
    还可设置第四位,它位于三位权限序列的前面,第四位数字取值是4,2,1,代表意思如下:
     
    4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。
     
    2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。
     
    1,设置粘着位。
     
    实例:
     
    $ chmod u+x file                      给file的属主增加执行权限
    $ chmod 751 file                      给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
    $ chmod u=rwx,g=rx,o=x file      上例的另一种形式
    $ chmod =r file                     为所有用户分配读权限
    $ chmod 444 file                   同上例
    $ chmod a-wx,a+r   file          同上例
    $ chmod -R u+r directory           递归地给directory目录下所有文件和子目录的属主分配读的权限
    $ chmod 4755                            设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。

    -----搭建LAMP环境-----

    ----用apt-get安装Apache MySQL PHP

    apt-get有个特性,就是安装东西会把相关的一些东西一起装

    ---

    liang@liang-andy:~$ sudo apt-get install apache2

    安装apache,然后输入密码(普通用户)以及y,输入以下命令,表示安装成功
    liang@liang-andy:~$ apache2 -v
    Server version: Apache/2.4.7 (Ubuntu)
    Server built:   Oct 14 2015 14:18:49
    然后输入ifconfig得到ip地址

    (我这里是)192.168.1.100得到It works页面验证成功
    ---

    安装PHP

    liang@liang-andy:~$ sudo apt-get install php5
    liang@liang-andy:~$ php5 -v
    PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:32:13)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
        with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    然后加载/检查php5.load这个php实现对apache2操作的模块(先不管为什么,先这么干就行)
    liang@liang-andy:~$ cat /etc/apache2/mods-enabled/php5.load
    LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
    ---

    安装MySQL

    liang@liang-andy:~$ sudo apt-get install mysql-server
    这个不需要验证版本,但同样要检查php操作mysql的模块

    liang@liang-andy:~$ cat /etc/php5/mods-available/mysql.ini
    cat: /etc/php5/conf.d/mysql.ini: 没有那个文件或目录

    注意,这里我用的Ubuntu是14ls的版本,12的cat目录是不一样的/etc/php5/conf.d/mysql.ini

    这里,由于php默认不安装mysql的拓展,所以需要手动安装

    liang@liang-andy:~$ sudo apt-get install php5-mysql
    liang@liang-andy:~$ cat /etc/php5/mods-available/mysql.ini
    ; configuration for php MySQL module
    ; priority=20
    extension=mysql.so
    这样就可以了,然后重启mysql以及apache2

    liang@liang-andy:~$ sudo service mysql restart
    liang@liang-andy:~$ sudo service apache2 restart
    ---

    一次性安装:上面是分过程,下面一条给出一次性安装

    sudo apt-get install apache2 php5 mysql-server php5-mysql

    ----创建phpinfo探针

    先装vim

    sudo apt-get install vim

    再切换到php的www文件夹,用cd命令

    cd /var/www/html(14.4版本)

    然后在这里创建一个php文件

    sudo vim info.php

    写php代码

    <?php
    echo mysql_connect('localhost','root','hanhan123') ? 'Hoho' : 'WTF';

    phpinfo();
    然后esc键,输入:wq保存退出

    http://192.168.1.100/info.php 浏览器输入验证结果

    Linux原来如此但疼,不写了,明天见

     

  • 相关阅读:
    0006 字符串转整数
    0005 反转整数
    0004 最长回文子串
    0003 无重复字符的最长子串
    0002 两数相加
    0001 两数之和
    使用jquery+css实现瀑布流布局
    更简单的轮播实现
    类和对象
    生产者-消费者(wait-notify实现)
  • 原文地址:https://www.cnblogs.com/andy1202go/p/4987826.html
Copyright © 2020-2023  润新知