LAMP部署

本文详细介绍了如何在Linux系统上一步步搭建LAMP(Linux、Apache、MySQL、PHP)环境。首先,从Apache的源码下载、依赖安装、编译配置到启动服务,接着讲解了MySQL的源码安装、配置、初始化数据库以及设置密码。最后,阐述了PHP的安装过程,包括与Apache的集成。整个教程详细易懂,适合初学者。
摘要由CSDN通过智能技术生成

前言

    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加载使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值