在Ubuntu Server下搭建LAMP环境
1 LAMP的安装
LAMP通常是指Linux+Apache+MySQL+PHP组合形成的一套可以运行PHP程序的体系,并不是一个软件的名称。没有安装MySQL的服务器依然可以在其它条件完备的情况下运行不涉及MySQL数据库读写操作的PHP程序,另外PHP并非只支持MySQL一种数据库产品,还支持其他的数据库产品。并非只有Apache可以通过扩展支持PHP的解析,Nginx,LightHttpd等其它软件同样可以。
Ubuntu一键安装LAMP环境的命令:
sudo apt-get install apache2 php5 mysql-server php5-mysql
或者使用tasksel安装LAMP套件:
sudo apt-get update && sudo apt-get install tasksel && sudo tasksel install lamp-server
给PHP添加常用扩展:
sudo apt-get install php5-gd curl libcurl3 libcurl3-dev php5-curl
安装完需要重启apache:
sudo service apache2 restart
Ubuntu系统LAMP环境配置
在Ubuntu系统中,通过apt-get工具安装的软件配置文件均放置在/etc下,并为每个软件建立一个以软件名称为名的文件夹用于区分不同软件的配置文件。
通过apt-get安装的LAMP组件的配置文件也在/etc目录下:
- Apache /etc/apache2
- MySQL /etc/mysql
- PHP /etc/php5
2 虚拟主机(Virtual-Host)原理
Apache通过Virtual-Host配置功能可以实现,一台服务器上可以同时放多个服务的网站,用户使用不同的域名访问不同的网站。
在Apache中配置虚拟主机的方法:
(1) 通过修改客户端hosts文件(/etc/hosts)来模拟DNS解析。
例如:
127.0.0.1 a.gerryyang.com
127.0.0.1 b.gerryyang.com
(2) 进入/etc/apache2/sites-available目录,将000-default.conf作为模板,分别复制两份,然后修改部分内容。
cp 000-default.conf a.conf
cp 000-default.conf b.conf
vi a.conf打开后:
添加ServerName:ServerName a.gerryyang.com
修改DocumentRoot:DocumentRoot /var/www/html/gerry_data
同理,对b.conf做同样操作。
然后,再进入/etc/apache2/sites-enabled目录,分别创建../sites-available/a.conf和../sites-available/b.conf两个配置文件的软链接:
ln -s ../sites-available/a.conf a.conf
ln -s ../sites-available/b.conf b.conf
最后,重启Apache2,sudo service apache2 restart
(3) 测试方法
curl "a.gerryyang.com/index.html"
curl "b.gerryyang.com/index.html"
3 MySQL数据存储目录迁移方法
(1) 停止MySQL服务
sudo service mysql stop
(2) 创建新的迁移目录,以及访问权限和之前的目录相同(MySQL的数据存储目录在/var/lib/mysql中
)
sudo mkdir /mysqldata
sudo chown -vR mysql:mysql /mysqldata/
sudo chmod -vR 700 /mysqldata/
sudo cp -av /var/lib/mysql/* /mysqldata/
(3) 修改MySQL的配置
sudo vim /etc/mysql/my.cnf
将datadir = /var/lib/mysql修改为:
datadir = /mysqldata
(4) Ubuntu还需要修改apparmor的配置文件
sudo vi /etc/apparmor.d/usr.sbin/mysqld
将:
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
注释,然后添加新目录的访问权限:
/mysqldata/ r,
/mysqldata/** rwk,
保存退出。
(5) 分别重启apparmor和mysql服务
sudo service apparmor reload
sudo service mysql restart
(6) 测试方法
建立一个新的数据库,MySQL会在数据存储目录建立一个与数据库同名的文件夹。
create database db_gerry;
show databases;
exit;
cd /mysqldata/ && ll
小结:
Apache支持virtual-host虚拟主机,可以将多个指向同一服务器的域名分别指定根目录以及权限配置并且互不干扰。通过apt-get安装的MySQL,其数据存储目录可以改变,以便更加符合数据安全的需求,但在迁移数据后需要修改apparmor中与MySQL相关的目录访问权限。默认情况下,出于安全的考虑,MySQL在初始状态下不允许远程连接,只允许服务器内部应用的本地连接。
4 安装phpmyadmin
phpmyadmin是非常流行的mysql管理工具。
两种安装方式:
(1) apt-get方式(/etc/phpmyadmin/)
sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin/ /var/www/pma
(2) 手动上传方式
先下载好phpmyadmin的安装包,然后通过ftp工具FileZilla上传到服务器。
5 开启MySQL的remote access
默认情况下MySQL只允许本地访问,而不允许远程访问(remote access)
(1) 第一步,修改vi /etc/mysql/my.cnf(针对整个服务器而言)
将
bind-address = 127.0.0.1
注释并退出。
(2) 第二步,修改user用户表
使用phpmyadmin添加一个新的用户,允许用公网IP来访问
(3) 因为修改过my.cnf配置,所以需要重启MySQL服务
sudo service mysql restart
(4) 测试
通过外网使用phpmyadmin或者Navicat进行访问测试
6 服务器集群介绍
一种简单的LAMP集群 (读写分离)
一大波用户请求到来 -> 负载均衡Nginx (分发请求) -> Apache+PHP (写入) -> MySQL#1 (同步) -> MySQL#2...#3
一大波用户请求到来 -> 负载均衡Nginx (分发请求) -> Apache+PHP (读取) -> MySQL#2...#3
国内外著名的巨型服务器集群
TTC - Tencent Table Cache (腾讯)
TFS - Taobao File System (阿里巴巴)
BAE - Baidu Application Engine (百度)
SAE - Sina Application Engine (新浪)
GFS - Google File System (谷歌)
在Ubuntu Server下搭建LAMP环境的更多相关文章
- 在Ubuntu Server下搭建LAMP环境学习记录
更新于2015/6/16日,因图片地址失效,请在此地址查看:http://note.youdao.com/share/?id=1c249ae6dc6150cbf692adec67b23a33& ...
- 在Ubuntu Server下配置LAMP环境
1. 下载Ubuntu Server,地址https://www.ubuntu.com/download/server 2. 在虚拟机上安装Ubuntu Server.根据安装引导过程一步步安装,跟在 ...
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- CentOS下搭建LAMP环境详解
前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...
- Ubuntu server下搭建Maven私服Nexus
Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...
- Ubuntu18.04下搭建LAMP环境
一.Apache2 web 服务器的安装 : 可以先更新一下服务器 1.sudo apt-get update # 获取最新资源包 2.sudo apt-get upgrade ...
- Centos6.4版本下搭建LAMP环境
Centos6.4版本下搭建LAMP环境 配置yum mkdir/mnt/cdrom mount/dev/cdrom /mnt/cdrom 装载光盘 vi /etc/yum.repos.d/Cent ...
- CentOS6.5下搭建LAMP环境(源码编译方式)
CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介 ...
- ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统
前言: 一直在WIN上使用PHP,不喜欢用WAMP,每次都是手动在windows配置环境,偶尔有一次装了小红帽玩了两天,感觉不是很习惯就换了回来,过了没几天见讨论LAMP环境,于是安装了ubuntu的 ...
随机推荐
- (转)Java进阶java int与Integer的区别
Java进阶java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象,用一个引 ...
- 解决java float double 浮点型参与计算失精度
本人前段时间做一个社区电商应用,发现了一个 天坑 ...................让我哭会 . 下面听听我的踩坑之路吧 ,电商肯定跟¥打交道了,计算少不了的.由于本人太菜 单纯的以为 fl ...
- 部署Seafile服务
介绍 官网:https://www.seafile.com 客户端/服务端下载:https://www.seafile.com/download/ 中文安装教程(MySQL版):http://manu ...
- YARN环境搭建 之 二:CentOS7.0 JDK配置
Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以上) 原材料:在Oracle官网下载的32位JDK: 说明: 1.C ...
- MySQL数据库的使用流程,代码解释+Hibernate连接数据库
数据库的使用流程: 1.注册驱动: 2.用DriverManager.getConnection方法获得连接对象con: A方法: 3.用连接对象的createStatement()方法,获得可以执 ...
- 图片放大不失真软件PhotoZoom的工具栏
PhotoZoom是一款极其简单的图片无损放大工具,简单几即可渲染出完美的放大照片,呈现无与伦比的画质效果.虽然简单,菜单和面板的功能很少,但却是设计师的必备神器,因为其简单易用性,它的软件菜单命令和 ...
- swap空间可以有效缓解内存压力
不太了解底层的人对swap空间的概念也很模糊,这里我简单举例,看看swap空间的作用 查看当前swap空间:3个方式 [root@localhost /home/xxx/kirin/os_diagno ...
- Css进阶练习(实现抽屉网样式布局)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C++基础 (1) 第一天 C++相对C的改进 命名空间 引用
第一天 语法 STL 数据结构 设计模式… 2 C++语言的间接 C++ = C语言+面向对象 本贾尼 语言分类: 不关心效率 只关心架构:java/脚本语言 效率:(内存要自己管理了,操作指针)C ...
- [luogu2272 ZJOI2007] 最大半连通子图 (tarjan缩点 拓扑排序 dp)
传送门 题目描述 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u的有向 ...