Rumah >pembangunan bahagian belakang >tutorial php >再不写,小弟我怕就再也不写了-LAMP基础
再不写,我怕就再也不写了-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代码
echo mysql_connect('localhost','root','hanhan123') ? 'Hoho' : 'WTF';
phpinfo();
然后esc键,输入:wq保存退出
http://192.168.1.100/info.php 浏览器输入验证结果
Linux原来如此但疼,不写了,明天见