当前位置: 代码迷 >> PHP >> 再不写,小弟我怕就再也不写了-LAMP基础
  详细解决方案

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

热度:48   发布时间:2016-04-28 16:46:30.0
再不写,我怕就再也不写了-LAMP基础

  hi

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

1、Ubuntu下的LAMP配置

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

----管理员权限

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

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

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

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

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

----预备知识

[email protected]:~             $

[email protected]:当期目录 用户类型标记

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

---

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

---

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

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

[email protected]:~$ su
密码:
[email protected]:/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有个特性,就是安装东西会把相关的一些东西一起装

---

[email protected]:~$ sudo apt-get install apache2

安装apache,然后输入密码(普通用户)以及y,输入以下命令,表示安装成功
[email protected]:~$ 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

[email protected]:~$ sudo apt-get install php5
[email protected]:~$ 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操作的模块(先不管为什么,先这么干就行)
[email protected]:~$ cat /etc/apache2/mods-enabled/php5.load
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
---

安装MySQL

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

[email protected]:~$ 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的拓展,所以需要手动安装

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

[email protected]:~$ sudo service mysql restart
[email protected]:~$ 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原来如此但疼,不写了,明天见