前言
LAMP架构是目前成熟企业网站的应用模式之一。指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。
LAMP是一个缩写词,具体包括Linux操作系统,Apache(httpd)网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言。
构建LAMP平台的安装顺序依次为Linux,Apache,MySQL,PHP;其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作
一、安装Apache(httpd)
apache源码官网:https://httpd.apache.org/
准备源码包:httpd-2.4.29.tar.bz2
安装httpd需要提前准备所需要的两个依赖包 apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz
下载的源码包自己选个目录存放,我放在opt目录下了
移动httpd需要的apr依赖包到httpd源码包根目录的srclib目录下并改名apr
移动httpd需要的apr-util依赖包到httpd源码包根目录的srclib目录下并改名apr-util
cd /opt
tar xzf apr-1.6.2.tar.gz
tar xzf apr-util-1.6.0.tar.gz
tar xjf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
下载源码安装httpd需要的一些组件
gcc =====>C语言的编译器
gcc-c++ =====>C++的编译器
make =====>源代码编译器(源代码转换成二进制文件)
pcre =====>pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel =====>perl的接口开发包
expat-devel =====>用于支持网站解析HTML、XML文件
perl =====>perl语言编译器
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl
进入httpd的源码包根目录执行./configure
./configure =====>编译之前模块配置
–prefix=/usr/local/httpd =====>指定 httpd 服务程序的安装路径
–enable-so =====>启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
–enable-rewrite =====>启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
–enable-charset-lite =====>启动字符集支持,以便支持使用各种字符集编码的页面
–enable-cgi =====>启用CGI(通用网关接口)脚本程序支持,便于增强网站的外部扩展应用访问能力
cd /opt/httpd-2.4.29
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
编译&&编译安装
make && make install
优化配置文件路径
ln -s /usr/local/httpd/conf/httpd.conf /etc/
执行启动httpd的命令可以以软连接的方式,也可以直接修改环境变量
①软连接方式
ln -s /usr/local/httpd/bin/* /usr/local/bin/
②直接修改环境变量
echo “export PATH=$PATH:/usr/local/httpd/bin” >> /etc/profile
要让刚才的修改马上生效,需要执行以下代码
source /etc/profile
便于service管理开机自启,将httpd的启动执行文件复制到/etc/init.d/目录下
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
编辑 /etc/init.d/httpd 该文件追加两行内容如下:
echo “# chkconfig: 35 85 21” >> /etc/init.d/httpd //35级别自动运行 第85个启动 第21个关闭
echo “# description: Apache is a World Wide Web serve” >> /etc/init.d/httpd //描述性信息可加可不加
将httpd加入到系统管理器
chkconfig --add httpd
启动httpd服务之前,对httpd的主配置文件进行一些修改
vim /usr/local/httpd/conf/httpd.conf 进入末行模式set nu 显示行号
//定位到52行–修改监听地址(安装httpd服务的主机IP地址)
Listen xxx.xxx.xxx.xxx:80
//定位到201行,取消注释,修改域名(自己定义一个域名)
ServerName www.xxx.com:80
//定位到225行查看默认首页存放路径
DocumentRoot “/usr/local/httpd/htdocs”
//定位到259行–默认首页文件名设置
DirectoryIndex index.html
修改完配置文件之后使用 httpd -t 命令 检查一下是否有语法错误
[root@localhost ~]# httpd -t
Syntax OK //显示此行说明配置文件设置没有问题可以启动
[root@localhost ~]# systemctl start httpd //启动服务
[root@localhost ~]# netstat -antp | grep 80 //过滤80端口,有说明启动成功
tcp 0 0 192.168.177.100:80 0.0.0.0:* LISTEN 15214/httpd
[root@localhost ~]#
二、安装MySQL
下载MySQL源码包到opt目录下并解压
cd /opt
tar xzf mysql-5.6.26.tar.gz
下载源码安装MySQL需要的一些组件
gcc =====>C语言的编译器
gcc-c++ =====>C++的编译器
ncurses =====>字符终端下图形互动功能的动态库
ncurses-devel =====>ncurses开发包
bison =====>语法分析器
cmake =====>mysql需要用cmake编译安装
autoconf =====>是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。
由于之前安装httpd的时候已经安装过gcc和gcc-c++了 这两个就不用重复安装了
yum -y install ncurses ncurses-devel bison cmake autoconf
进入MySQL源码包根目录执行cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql =====>指定MySQL的工作目录
-DDEFAULT_CHARSET=utf8 =====>指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci =====>指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all =====>指定支持其他字符集编码
-DSYSCONFIDIR=/etc =====>指定MySQL主配置文件目录,系统默认有一个MySQL的配置文件,源码安装MySQL之后需要覆盖掉系统原本自带的
-DMYSQL_DATADIR=/home/mysql/ =====>指定数据文件存放目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock =====>指定连接数据库的通讯文件(启动数据库的时候会生成)
cd /opt/mysql-5.6.26
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DSYSCONFIDIR=/etc
-DMYSQL_DATADIR=/home/mysql/
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
编译&&编译安装
make && make install
覆盖系统中默认的配置/etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
将MySQL启动服务交给service管理
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
设置权限
chmod 755 /etc/init.d/mysqld
设置开机自启
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld --level 35 on //相当于systemctl enable mysqld
创建普通用户管理mysql,并修改mysql安装目录下所有文件的属主属组为mysql,将mysql的服务交给mysql这个程序用户管理
useradd -s /sbin/nologin mysql //这个程序用户不可登录但是要有家目录,因为在cmake的时候指定了mysql的数据文件目录是/home/mysql
chown -R mysql:mysql /usr/local/mysql/ //递归修改mysql下所有文件内的属主属组
chown mysql:mysql /etc/my.cnf //配置文件也需要修改
为了方便操作,设置环境变量,申明/宣告mysql命令便于系统识别
echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile
初始化数据库
/usr/local/mysql/scripts/mysql_install_db
–user=mysql
–ldata=/var/lib/mysql
–basedir=/usr/local/mysql
–datadir=/home/mysql
修改MySQL的启动程序文件
vim /etc/init.d/mysqld
basedir=/usr/local/mysql //定位46行 指定工作目录
datadir=/home/mysql //定位47行 指定数据文件目录
启动mysqld服务并查看端口是否监听
[root@localhost support-files]# service mysqld start
Starting MySQL SUCCESS! //启动成功
[root@localhost support-files]# netstat -antp | grep 3306 //mysqld服务端口是3306
tcp6 0 0 :::3306 ::😗 LISTEN 6747/mysqld
[root@localhost support-files]#
使用mysqladmin命令给root用户设置登录mysql数据库的密码
mysqladmin -u root -p password “123456”
使用mysql命令登录mysql数据库
[root@localhost support-files]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.26 Source distribution
Copyright © 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> //看见mysql>说明登录mysql数据库成功
注意:(mysql -uroot -p123456) -u -p 参数不能有空格
三、安装PHP
下载上传PHP源码包(php-5.6.11.tar.bz2)到/opt目录下
yum -y install
gd =====>图像化处理的库
libpng =====>png格式图片的库
libpng-devel
pcre
pcre-devel
libxml2-devel =====>解析xml标记语言的库
libjpeg-devel =====>jpeg格式图片的库
同理之前安装httpd的时候已经安装过gcc和gcc-c++了 这两个就不用重复安装了
yum -y install gd libping libpng-devel libxml2-devel libjpeg-devel
进入/opt目录下解压php源码包,并进入php源码包根目录执行./configure
cd /opt
tar xjvf php-5.6.11.tar.bz2
cd php-5.6.11
–prefix=/usr/local/php5
–with-gd =====>激活gd 库的支持
–with-zlib =====>支持zlib功能,提供数据压缩功能的函式库
–with-apxs2=/usr/local/httpd/bin/apxs =====>用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
–with-mysql=/usr/local/mysql =====>关联数据库
–with-config-file-path=/usr/local/php5 =====>指定配置文件
–enable-mbstring =====>启用多字节字符串功能,以便支持中文等代码
./configure
–prefix=/usr/local/php5
–with-gd
–with-zlib
–with-apxs2=/usr/local/httpd/bin/apxs
–with-mysql=/usr/local/mysql
–with-config-file-path=/usr/local/php5
–enable-mbstring
编译 && 编译安装
make && make install
优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别,这里做软链接,修改环境变量的方式上面有说,这里不再操作了
ln -s /usr/local/php5/bin/* /usr/local/bin/
修改Apache配置文件让Apache支持PHP
vim /etc/httpd.conf 添加index.php
在392行下方插入以下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
检查156左右行默认支持php5的模块是否存在
创建、编辑php页面文件
vim /usr/local/httpd/htdocs/index.php
<?php phpinfo(); ?>重启服务
service httpd stop
service httpd start
小结
①Apache httpd 提供了静态页面的处理
②MySQL提供了数据的持久化
③PHP提供了动态页面的处理
④Apache和PHP的对接方式:
在/etc/httpd.conf配置文件中392行下面添加以下两行,让httpd服务可以识别php页面
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
⑤PHP和Apache的对接方式:
在php编译之前./configure时开启了此模块(with-apxs2=/usr/local/httpd/bin/apxs)用于指定Apache可以加载/识别对应的功能模块,让php服务模块直接提供给apache加载使用