LAMP/LNMP安装与配置

教程:
http://www.imooc.com/learn/703

什么是LAMP?

LAMP = Linux + Apache + MySQL + PHP

为什么使用LAMP?
涵盖整个Web开发流程。
流行( 全球70%网站在使用),免费(LAMP组成部分都是免费的),开源,轻量(最新Apache只有7M大小)。

Linux:
开源的类Unix操作系统,可以免费使用和自由传播。

CentOS,RedHat,Ubantu,红旗等都是其发行版本。

Linux和Windows:

质量的不同。
用户假设,软件哲学。

Linux优势:完全免费,稳定高效

PHP:

MySQL:
开源,免费,高性能的数据库。

Apache:
Web服务器软件。
监听端口,接受请求,解析HTTP协议,转发给PHP。
没有apache也就没有我们的网站开发。

Nginx:
与apache一样,都是服务器软件。
Nginx比apache:前景好,配置轻松,性能更加优秀。
apache是采用的轮询机制,nginx是一种高效的监听方式。

如何编译安装软件?

编译安装是在Linux安装软件的重要方式之一。
在linux中安装软件有两种主要的方式:
1)编译安装
对软件的源代码进行编译安装。
2)源安装
比如在CentOS中使用yum安装。

编译安装:
1)编译前的准备工作:
在命令行敲:

./configure

编译为二进制文件:

make

安装:

make install

实战环节

我们使用Oracle公司的VirtualBox这个软件做一个虚拟机。
网站:virtualbox.org

创建centos虚拟机,启动。(https://www.imooc.com/video/12897
启动的时候需要下载系统镜像。

安装好重启之后,配置网卡:


图片.png

注意还要添加DNS和网关:

DNS1=8.8.8.8
GATEWAY=10.10.10.1  # 这些都是和自己的内网一个网段的才行,包括上面的10.10.10.150。

http://www.jb51.net/os/RedHat/189963.html

重启网卡:

systemctl restart network.service

使防火墙运行22端口(ssh)连接:

firewall-cmd --zone=public --add-port=22/tcp --permanent
systemctl restart firewalld.service

在VirtualBox上面的网卡需要对虚拟机选择桥接网卡(设置->网络):


图片.png

将其在VirtualBox中重新启动。之后,我们就可以重新登录了。

LAMP之安装PHP:

我们可以在我们自己的mac上面使用ssh去连接虚拟机了。

# 先安装vim和wget
yum install -y vim  wget  # 安装vim可以安装它以及它的一系列依赖

我们选择安装7.0.26版本的PHP:
http://php.net/downloads.php#v7.0.26

php-7.0.26.tar.gz 点击,进入,选择:Hong Kong

邮件拷贝连接(http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror):

注意:
我们拷贝的地址,是(http://hk1.php.net/get/php-7.0.26.tar.gz.asc/from/this/mirror
我们要删除掉.asc:

http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror

然后:

wget  http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror

我们解压.tar.gz文件:

tar -zxvf mirror

我们使用ll,可以看到解压之后的文件:

-rw-------.  1 root        root            1454 Dec  4 14:59 anaconda-ks.cfg
-rw-r--r--.  1 root        root        18824456 Nov 21 20:20 mirror.1
drwxr-xr-x. 15 liaodalin01 liaodalin01     4096 Nov 21 19:57 php-7.0.26

php解压以后有一个问题,就是我们单纯的安装PHP,不能和nginx一起工作,只能和apache一起工作。
如果想和nginx一起工作作为webserver,我们需要安装一个软件(也是php的一个组件),叫作:FPM。
需要我们配置./configure的时候添加 --enable-fpm用来激活FPM。

我们使用:

yum install -y gcc gcc++ libxml2-devel

我们来编译安装PHP:

1)configure。进入解压后的php-7.0.26根目录,先configure

# 指定安装路径(一般来说是装在/usr/local/下)
./configure --prefix=/usr/local/php7/  --enable-fpm   

2)make编译(会比较慢,编译的时间长)

make

3)安装

make install

安装完成之后,我们在家目录下去测试:

cd ~
vim test.php
<?php
phpinfo();

然后执行:

/usr/local/php7/bin/php test.php

我们可以看到php的info的打印结果。

了解:
php-fpm是什么?
fastcgi的管理器,只能适用于php.
fastcgi是与语言无关的开放扩展,主要讲cgi的解释器进程保持在内存中,借此以获取较高的性能。
fastcgi一直执行着,不过每一次都要花时间去fork一个子进程。
cgi,全称是公共网关接口。是一个协议。

再顺序理一下:
CGI:是一个协议,能够保证webserver传递过来的数据是标准格式,方便CGI程序的编写者。
eg:我们访问index.php的时候,这个时候,nginx会根据配置文件,知道这个不是一个静态文件二直接返回,需要执行php解释器来处理,nginx会发送数据给解释器本次请求的url,以及请求参数等。总之,nginx给php传递什么数据都是由cgi这个协议来决定的。

访问index.php,nginx要启动cgi来处理,而我们的php解释器就是一个cgi程序,现在再来看下fastcgi。
cgi在处理程序的时候会fork一个子进程, 处理完成后释放,下次来请求的时候,再fork,再释放。这样的方式大家会觉得很笨,效率不高,所以fastcgi诞生了。
fastcgi是程序主动启动一个进程,这个进程有n个子进程,然后子进程都会常驻在内存中,避免了fork和释放。当然,fastcgi在忙的时候也会自己启动新的子进程来帮助,在比较闲的时候又会将这些子进程销毁,保证资源不浪费。
PHP-FPM(FastCGI Process Manager) 是实现了fastcgi这个协议的程序,之前是三方的,现在被PHP官网买了。(协议是用于被实现,自己只有标准,没有具体的实现)。所以现在我们就可以直接在官方下载和使用了。


安装mysql

我们进入:

dev.mysql.org

DOWNLOADS - > Community -> MySQL Community Server -> Generally Available(GA) releales 下选择Source Code, 和Generic Linux (Architecture Independent), 通用的linux架构(Compressed TAR Archive)。

我们选择下载,我们是下载到虚拟机上,我们右键,拷贝链接。在:No thanks, just start my download那里:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

我们在虚拟机中下载:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

使用tar解压:

tar -zxvf mysql

我们安装一些依赖包:

yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

我们进入到解压后的mysql根目录,然后cmake 编译:

注意:cmake是一个跨平台的安装工具。

最新版的mysql都使用cmake命令来进行安装,cmake的命令参数较多:

图片.png
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DMYSQL_DATADIR=/mydata/mysql/data  \
-DSYSCONFDIR=/etc  \
-DMYSQL_USER=mysql  \
-DWITH_MYISAM_STORAGE_ENGINE=1  \
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DWITH_ARCHIVE_STORAGE_ENGINE=1  \
-DWITH_MEMORY_STORAGE_ENGINE=1  \
-DWITH_READLINE=1  \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock  \
-DMYSQL_TCP_PORT=3306  \
-DENABLED_LOCAL_INFILE=1   \
-DENABLED_DOWNLOADS=1  \
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSET=all  \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci  \
-DWITH_DEBUG=0  \
-DMYSQL_MAINTAINER_MODE=0  \
-DWITH_SSL:STRING=bundled  \
-DWITH_ZLIB:STRING=bundled

注意:
如果有错的话重新下载这个版本安装:( wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

安装:

make install  

我们就安装好了mysql,使用:

mysqld 

启动Mysql。

启动之后,我们输入:mysql就可以进入mysql了。


安装Apache

打开Apache官网:httpd.apache.org

Download -> Apache HTTP Server 2.4.29 (httpd): 2.4.29 is the latest available version 2017-10-05

图片.png

我们点击右键,拷贝链接(http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz)。

在命令行,下载到虚拟机用户根目录:

wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz

使用tar解压:

tar -zxvf httpd

cd进入解压apache解压目录.

./configure --prefix=/usr/local/apache2

就在进行编译前的准备工作。
如果有错误说APR没有被发现,我们就安装APR。

我们在用户根目录下载APR以及APR-Util:

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz

并解压:

tar -zxvf apr
tar -zxvf apr-util

我们对apr和apr-util重命名。

mv apr-1.4.5 apr
mv apr-util-1.3.12 apr-util

我们要把这两个文件夹(apr,apr-util)丢到httpd-2.4.20这个目录中。

mv apr apr-utl httpd-2.4.20/srclib/

处理好apr和apr-util之后,我们下载一个依赖pcre(正则):

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz

下载好安装它(下载完之后它被命名为download文件夹),它是最后一个依赖。

mv download pcre.tar.bz2
tar -jxvf  pcre.tar.bz2

在解压完成后,进入解压目录:

cd pcre-8.37/

配置:

./configure --prefix=/usr/local/pcre-8.37

然后编译:

make

安装:

make install
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,173评论 5 124
  • linux下安装mysql 使用yum安装 1.打开页面http://dev.mysql.com/download...
    simple_five阅读 679评论 0 3
  • 系统环境 所需软件官方下载地址: 一、 安装开发包环境: 二、 关闭iptables和Selinux(生产...
    莫名其妙的一生阅读 1,279评论 0 4
  • 1.LAMP介绍  LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹阅读 1,035评论 0 1
  • 今天13号刚报的无戒老师的写作班,还是有点压力的,不知道自己是否有精力和毅力去完成日更的flag。虽然无戒老师说了...
    陈冠峰阅读 215评论 3 3