为了账号安全,请及时绑定邮箱和手机立即绑定

ubuntu下搭建LAMP环境(课程笔记)

标签:
PHP Linux

第二章 了解Ubuntu操作系统

2-2 LAMP初涉
LAMP是WEB服务器解决方案之一,通常理解为 Linux+Apache+MySQL+PHP。
LAMP通常是指Linux+Apache+MySQL+PHP组合形成的一套可以运行PHP程序的体系,并不是一个软件的名称。没有安装MySQL的服务器依然可以在其它条件完备的情况下运行不涉及MySQL数据库读写操作的PHP程序,另外PHP并非只支持MySQL一种数据库产品,还支持其他的数据库产品。并非只有Apache可以通过扩展支持PHP的解析,Nginx,LightHttpd等其它软件同样可以。

2-3 LAMP工作原理
用户通过浏览器输入网址,DNS把网址转化为IP地址后,找到了服务器,来到apache,apache内部有很多可扩展的模块,其中有个叫作:libphp5.so模块可以指挥php的解析器干活,apache将浏览器请求的php代码交给php解析器进行解析,php解析器内部也有很多个可扩展的模块,其中有个叫作mysql.so的模块可以指挥mysql进行save\rd操作,但并不是所有的php都涉及save\rd数据库操作,php将处理后的数据返回给Apache,Apache再将响应数据返回给浏览器展示在用户眼前。

LAMP工作原理:
step1:先是用户在浏览器中输入网址,也就是域名。
step2:然后用户计算机上的DNS服务器把域名解析成IP地址,然后通过HTTP或者HTTPS请求找到了存储网站文件的服务器。
step3:然后来到阿帕奇服务器这里,阿帕奇服务器里有很多可扩展的模块,里面有一个“libphp5.so”的模块可以指挥PHP的解释器干活。
step4:然后PHP看看是否要对MySQL数据进行CURD操作,如果需要就通过mysql_connect('连接服务器的地址','连接的使用用户,一般为root’,‘对应用户的密码’);
step5:MySQL把数据返回给PHP后,PHP再把数据返回个阿帕奇服务器,然后Apache服务器就把内容呈现给浏览用户。

数据库的操作术语:
CURD = create(创建) + update(更新) + read(读取) + 删除(delete)
图片描述


第三章 Ubuntu基础知识

3-1 通过SSH终端工具远程连接Ubuntu Server
首先,判断Ubuntu是否安装了ssh服务:
1、输入:ps –e grep ssh 如果服务已经启动,则可以同时看到“ssh-agent”和“sshd”,否则表示没有安装服务,或没有开机启动
2、安装ssh服务,输入命令:sudo apt-get install openssh-server
3、启动服务: /etc/init.d/ssh start
4、本机测试是否能够成功登录:ssh -l 用户名 本机ip

打开Xshell,选择“新建”,“连接”设置里选择SSH,用户名填安装ubuntu时填写的用户名,主机填入需要连接的主机的IP地址。点击连接即可通过SSH终端工具远程连接Ubuntu Server。

3-2 Ubuntu Server管理员权限解读
1、普通账户没有管理员权限
2、默认情况下的root账户无法登陆命令
su(switch User)切换到超级管理员,获取超级管理员权限
sudo(Switch User and DO)以超级管理员身份执行,暂时获取超级管理员权限 执行一条命令后将失去超级管理员权限。

使用su命令所有管理员都必修知道root账户的密码
sudo使得普通管理员使用自己的密码也可以获得超级管理员权限(sudo弥补了su产生的多账户安全问题)
图片描述
3-3 通过passwd命令演示su和sudo
Ubuntu 默认是以普通用户登录系统,要切换root账户,先要给root设置密码,再登录root。#sudo passwd root #sudo:临时获取最高权限才可以设置root密码,回车后输入普通用户自己的密码,在输入两次root的密码,完成root密码设置#su root #或直接su 即可切换到root账户,需要输入root密码

命令行:
-isbadguy@imooc:~$
-用户名@主机名:当前目录 用户类型标记
-$表示普通用户,#表示超级管理员
通过passwd命令修改账户密码
pwd(显示当前实际路径)
sudo passwd root(临时权限 修改root密码)

Passwd命令必须拥有系统超级权限才可以执行,所以当使用非root账户登录系统时执行passwd命令必须在命令前加上sudo前缀,使用root账户登陆服务器时已经拥有了超级权限,执行passwd命令时无需加sudo前缀。
图片描述

3-5 apt-get软件安装工具详解
图片描述


第四章 搭建LAMP环境

4-1 使用apt-get工具安装Apache PHP MySQL
1、 apache安装
sudo apt-get install apache2
apache2 -v (检查是否安装成功)

2、 php安装
sudo apt-get php5
php5 -v (检查php是否安装成功)
cat /etc/apache2/mods-enabled/php5.load (查看php是否被apache 加载) 显示 LoadModule php5_module /usr/lib/apache2/modules/libphp5.so 表示加载成功

3、 安装mysql
sudo apt-get install mysql-server
安装过程中输出 root 密码 注:此密码为mysql 数据库密码
cat /etc/php5/conf.d/.mysql.ini (检查 php 与 mysql 正常的数据交互)
课程使用的是12.04版本的系统,如果你使用14.04版本的话路径会有一点区别,cat /etc/php5/mods-available/mysql.ini 14.10版
如果没有被加载许手动安装 sudo apt-get install php5-mysql
重启 mysql apache
sudo service mysql restart
sudo service apache2 restart

4、 通过一条命令可以一次性的安装LAMP
apt-get install apache2 php5 mysql-server php5-mysql
或者通过:tasksel install lamp-server

4-2 创建phpinfo服务器探针
Ubuntu LTS 12中,需要将info.php放到 /var/www 中
Ubuntu LTS 14.04中,需要将info.php放到 /var/www/html 中
cd /var/www/html
sudo vim info.php
<?php
echo mysql_connect('loaclhost','root','123456') ? '连接成功的信息' : '连接失败的信息’;
/ 测试连接mysql,有时mysql_connect()函数默认端口被其他程序占用时, 可以指定其他端口 /
phpinfo();//查看php版本信息
?>

安装vim工具包: apt-get install vim-gtk

mysql_connect(‘所连接的服务器:端口’,’登录账户’,’登录密码’);//函数打开非持久的 MySQL 连接。
有时mysql_connect()函数默认端口被其他程序占用时, 可以指定其他端口.如:
mysql_connect(‘localhost:8080’,’root’,’xxx’);
再不行就只能重启服务器了

在浏览器输入192.168.1.103/info.php,就会显示文字

4-3 给PHP添加常用扩展
1、php相关扩展版本更新
命令 $sudo apt-get install php5-gd curl libcurl3 libcurl3-dev php-curl //安装GD库,CURL等信息。
libcurl3-dev 改为 libcurl4-openssl-dev
php-curl 改为 php5-curl
新命令 $sudo apt-get install php5-gd curl libcurl3 libcurl4-openssl-dev php5-curl
sudo service mysql restart
sudo service apache2 restart//重启后才有效

2、利用phpinfo()查看拓展是否被正确加载
在浏览器输入192.168.1.103/info.php可以查看是否添加成果

4-4 通过SSH管理服务器文件
ssh就是sftp,在开发文件的时候都是本地开发,但是在开发测试完成后,我们就可将文版本上线,就可以通过ssh方式将我们的新的文件添加到服务器里。
协议选择:sftp-ssh file transfer protocol
添加文件等操作,都是通过ssh连接工具可以进行可视化的文件管理操作

Ubuntu Server 14.04 开启Root用户SSH权限:
vi /etc/ssh/sshd_config
将PermitRootLogin without-password 修改为PermitRootLogin yes 即可。
修改好后别忘了重启sshd服务
/etc/init.d/ssh restart 又或者是 service ssh restart
之后,root用户即可直接SSH远程管理服务器了。


第五章 LAMP环境配置与优化

5-1 LAMP环境文件目录概述
Ubuntu系统下,通过apt-get工具安装的软件配置文件均放置在/etc下,并为每个软件建立一个以软件名称为名的文件夹用于区分不同软件的配置文件。
图片描述
5-3 LAMP环境配置文件详解
LAMP环境配置 – Apache
一、Apache加载配置时会首先加载apache.conf文件(配置文件的入口)
apache.conf文件以include关键字将其他配置文件包含在其中,这1有助于修改配置,2按照一定的属性分开放置,配置灵活
图片描述
二、核心配置:
mods- 存放Apache模块配置文件
sites-
存放虚拟主机的配置文件
关键词available表示可以使用;enabled表示已启用的
enabled通过ln -s命令建立available的软连接
Apache会在加载配置过程中将所有软连接一次性全部加载,以方便软连接误删时再次建立软连接启动模块
图片描述

MySQL核心配置文件:my.cnf
PHP核心配置文件:php.ini
图片描述

5-4 虚拟主机工作原理
【Apache Virtual-Host 原理】
一台服务器上放置多个完全独立的网站,虚拟主机就是通过Apache来分辨出来访的二级域名。通过识别来分别访问各各目录下的站点。

虚拟主机的应用场景:
假设慕课网开发了三个系统,分别是:视频系统、论坛系统和办公系统 慕课网有个一级域名 imooc.com,现在给这三个系统分别配置二级域名video.imooc.com bbs.imooc.com oa.imooc.com

假设慕课网有台lamp服务器,在文件系统中分别建立了三个目录(对应三个系统,论坛,办公,视频系统),分别用于存放这三个系统的项目文件,这三个目录可以由我们任意建立,配置DNS把这三个二级域名都解析到这台服务器上,也就是让三个二级域名都指向同一个服务器ip,让Apache来区分用户是通过哪个二级域名访问这台服务器的 根据不同的二级域名访问对应项目所在的目录,也就是说一台服务器上可以同时放置多个完全独立的网站或者系统,用不同的域名访问对应的系统。
图片描述
5-5 手动模拟DNS
图片描述
要模拟使用场景,首先需要修改hosts文件,让这三个二级域名都指向我们装在VM虚拟机里的ubuntu服务器192.168.0.104,因为我们的数组系统扮演的是客户端的角色,要访问VM虚拟机里的服务器,就需要修改客户端系统的hosts文件来模拟DNS解析,打开系统的hosts文件,在末尾加上:
192.168.104 video.imooc.com
192.168.104 bbs.imooc.com
192.168.104 oa.imooc.com
图片描述
----
linux, hosts的文件在 /etc/hosts

在使用windows os ,通过修改 C:\Windows\System32\drivers\etc\host 文件来模拟DNS,也就是说,你修改后的 host里的内容会指向你的定义的地址 如: 192.168.1.105 bbs.imooc.com ,当你在本地浏览器输入这个网址的时候,它会打开你指定的ip地址!

5-6 通过终端工具操作服务器创建目录
为三个项目创建不同的目录,目录的位置可以根据实际需要在任何位置创建,apache的默认目录是/var/
cd /var/www/html :Apache站点默认访问目录

创建三个不同站点的不同目录,目录存放地点不影响客户端访问:
mkdir /wwwroot/{video,bbs,oa} //集合方式在根目录下创建目录
cd wwwroot
分别在这三个文件中加入html文件
cd video
sudo vim index.html
这里是video目录
:wq
cd ../bbs
sudo vim index.html
这里是bbs目录
:wq
cd ../oa
sudo vim index.html
这里是oa目录
:wq
到此目录创建完毕,且每个目录的输出不同。

5-7 在Apache中配置虚拟主机
Apache配置虚拟主机
1、先在hosts里面添加域名指向虚拟机IP地址
2、现新建的项目让它放在根目录下/wwwroot里面,再在wwwroot文件里面新建vedio文件夹、bbs文件夹和oa文件夹。
3、cd /etc/apache2进入/etc/apache2文件配置目录,在进入目录下的sites-available目录,复制默认配置文件default.conf 为video.conf、bbs.conf和oa.conf, 我的虚拟机装的系统是Ubuntu 14.04-164bit,默认配置文件为000-default.conf,具体命令如下:
cp /etc/apache2/sites-available
sudo cp 000-default.conf video.conf //作为video项目的配置文件
sudo cp 000-default.conf bbs.conf //作为bbs项目的配置文件
sudo cp 000-default.conf oa.conf //作为oa项目的配置文件
4、复制完成后,编辑3个新复制出来的文件,
添加ServerName vedio.imooc.com //增加解析域名
并修改DocumentRoot /wwwroot/video //将解析到以上域名时打开的目录 一个域名对应一个目录,这里我的配置文件跟视频教学的配置文件有点不同,只需要改着两个地方就行了
sudo vim vedio.conf
sudo vim bbs.conf
sudo vim oa.conf
配置好后保存退出。
5、上面3个文件修改完后,需要在/etc/apache2/sites-enabled目录下创建软连接,系统才会加载他们
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/ vedio.conf vedio.conf
sudo ln -s ../sites-available/bbs.conf bbs.conf
sudo ln -s ../sites-available/oa.conf oa.conf
6、视频教学到此就结束,重启apache2就可以了,我系统版本跟教学的不一样,还需要修改一个地方,就是/etc/apache2/apache2.conf
sudo vim /etc/apache2/apache2.conf
<Directory /wwwroot/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
添加如下代码:
保存重启apache服务,
sudo service apache2 restart

// 在vedio.conf、bbs.conf、oa.conf里加
<Directory /wwwroot/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
这样安装了ubunutu 14的小伙伴就不会在主机的浏览器出现403错误,亲测有效。
// 老师的注释
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
这段代码如果在主配置文件中则表示全局文件夹权限设置。
如果外部没有这段,可以在每个虚拟机配置文件中分别设置。
如果主配置文件中,和虚拟主机配置文件中均有这个设置,以最后加载的为准。

理解apache配置虚拟主机。思路:
(1)首先是client的域名指向一特定服务器。
(2)在服务器中将各种域名指向某一特定的项目(网页)。
对于2中的具体操作:
一:首先在任意位置创建好自己的项目。
二:修改apache的配置文件,使apache将特定的域名指向特定的项目。
对于二:
1.在apache的配置文件夹sites-available下添加虚拟主机,在创建的虚拟主机中绑定特定的域名和项目的路径、之后再sites-enable下创建指向虚拟主机的软连接即可。

5-8 MySQL数据存储目录迁移
MysqL数据存储目录迁移
1、停止MySQL的服务
sudo service mysql stop
2、查看数据库地址
cd /var/lib
3、查看MySQL的权限和用户组
ll /var/lib
4、创建数据库迁移目录
sudo mkdir /mysqldata
5、修改用户组和权限
sudo chown -vR mysql:mysql /mysqldata (-R递归修改,-v显示详细的处理信息)
sudo chmod -vR 700 /mysqldata
6、复制原有数据库文件
su
cp -av /var/lib/mysql/* /mysqldata/
7、修改数据库配置文件
sudo vim /etc/mysql/my.cnf
修改:datadir = /mysqldata/
8、修改appormar 配置
sudo vim /etc/apparmor.d/user.sbin.mysqld
修改为:/mysqldata/ r, /mysqldata/** rwk,
9、重启apparmor
sudo service apparmor reload
10、启动MySQL
sudo service mysql start
11、登陆MySQL
mysql -uroot -p
12、创建数据库
create database aaabbb;
13、查看迁移目录下的数据库文件
su
cd /mysqldata
ll
14、删除原数据库文件
rm -rvf /usr/lib/mysql

最好不要删除原来的输出存储目录/var/lib/mysql 这里面有一些系统文件,如果删除了,mysql服务就启动不了,要删除也可以最好到配置文件里面把文件路径修改一下。

5-10 安装PHPMyAdmin
图片描述
phpmyadmin安装
sudo apt-get install phpmyadmin
sudo ln -s/usr/share/phpmyadmin/ /var/www/pma
手动安装:
1.下载phpmyadmin
2.使用 FileZilla 通过 SFTP 方式上传到 /var/www/pma/ (ubuntu 14.04是链接到/var/www/html/pma) 目录

5-11 开启MYSQL的remote access
mysql默认只允许本机访问。如果其他机器想访问服务器的mysql,需要开启远程权限。
1、sudo vim /etc/mysql/my.cnf //打开配置文件
找到参数,bind-address
bind-address //表示允许访问的客户端IP地址。注释掉,任何IP都可以访问。
2、在phpmyadmin里查看用户列表,新建phpmyadmin账户,(主机处填%,表示任何主机都可以访问mysql)
3、重启mysql,加载新的配置
sudo service mysql restart


第六章 课程扩展与总结
6-1 简单的服务器集群介绍
lamp服务器集群
图片描述

点击查看更多内容
12人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消