Linux 6 下yum方式安装配置LAMP平台

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Linux下搭建LAMP是经典的不能再经典的中小企业站点构建平台。它的全称是Linux+Apache+Mysql+PHP,常用来搭建动态网站,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

Linux下搭建LAMP是经典的不能再经典的中小企业站点构建平台。它的全称是Linux+Apache+Mysql+PHP,常用来搭建动态网站,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。因此在网络上也有比叫有名的LAMP一键安装解决方案。但是对于运维人员来讲,有必要了解其完成的安装过程。本文主要描述基于CentOS 6 下使用yum方式来快速构建LAMP平台(Linux安装忽略)。

一、准备yum源(本文使用了163镜像)

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -P /etc/yum.repos.d/
# yum clean all
# yum makecache

二、安装apache httpd

详细可以参考:Linux下安装Apache httpd

###检查是否已安装httpd
# rpm -qa|grep httpd
        httpd-tools-2.2.15-45.el6.centos.x86_64
        httpd-2.2.15-45.el6.centos.x86_64

# yum -y install httpd   ###此时我们看到httpd的小版本从45变成了53
# rpm -qa|grep httpd
        httpd-tools-2.2.15-53.el6.centos.x86_64
        httpd-2.2.15-53.el6.centos.x86_64

###查询生成的相关配置文件
# rpm -qc httpd|grep conf
        /etc/httpd/conf.d/welcome.conf
        /etc/httpd/conf/httpd.conf
        /etc/httpd/conf/magic
        /etc/sysconfig/htcacheclean
        /etc/sysconfig/httpd

###启动httpd
# /etc/init.d/httpd start
        Starting httpd:                                            [  OK  ]
# netstat -nltp|grep 80
        tcp        0      0 :::80          :::*      LISTEN      7621/httpd

###验证web服务
# curl -I http://localhost
        HTTP/1.1 403 Forbidden
        Date: Tue, 12 Jul 2016 09:25:15 GMT
        Server: Apache/2.2.15 (CentOS)
        Accept-Ranges: bytes
        Content-Length: 4961
        Connection: close
        Content-Type: text/html; charset=UTF-8

###编写一个php页面测试
# echo "
> <html>
> <h1>This is a php test page.</h1>
> <?php
> phpinfo();
> ?>
> </html>">>/var/www/html/index.php  

###测试结果为phpinfo函数没有被解释
# curl http://localhost/index.php
        <html>
        <h1>This is a php test page.</h1>
        <?php
        phpinfo();
        ?>
        </html>

三、安装php

###安装php,同时会安装依赖包
# yum install php
        Installing:
         php                      x86_64     5.3.3-47.el6      base     1.1 M
        Installing for dependencies:
         php-cli                  x86_64     5.3.3-47.el6      base     2.2 M
         php-common               x86_64     5.3.3-47.el6      base     530 k

###查看php安装清单 
# rpm -ql php
        /etc/httpd/conf.d/php.conf
        /usr/lib64/httpd/modules/libphp5.so
        /var/lib/php/session
        /var/www/icons/php.gif 

###查看php的配置文件 
# grep -vE "^#|^$" /etc/httpd/conf.d/php.conf 
        <IfModule prefork.c>
          LoadModule php5_module modules/libphp5.so
        </IfModule>
        <IfModule worker.c>
          LoadModule php5_module modules/libphp5-zts.so
        </IfModule>
        AddHandler php5-script .php
        AddType text/html .php
        DirectoryIndex index.php

###在上面的配置文件中,由于php以模块化方式与httpd结合工作,根据httpd的mpm模式不同,
###其所需要的php模块格式有所不同;    prefork模式使用libphp5模块    worker和event模式则使用libphp5-zts模块

###重启httpd已使得php模块生效
# /etc/init.d/httpd configtest
        Syntax OK

# /etc/init.d/httpd restart
        Stopping httpd:                 [  OK  ]
        Starting httpd:                 [  OK  ]

###验证php模块已经被加载
# httpd -M |grep php
        php5_module (shared)

###验证php页面 
# curl http://localhost/index.php|more
        <html>
        <h1>This is a php test page.</h1>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
        <html><head>
        <style type="text/css">
        body {background-color: #ffffff; color: #000000;}
              ...........

###切换为使用worker工作模式
# cp /etc/sysconfig/httpd /etc/sysconfig/httpd.bk
# sed -i "s@#HTTPD=/usr/sbin/httpd.worker@HTTPD=/usr/sbin/httpd.worker@g" /etc/sysconfig/httpd
# grep -vE "^#|^$" /etc/sysconfig/httpd
        HTTPD=/usr/sbin/httpd.worker

###从下面的提示中,我们需要使用php5zts模块
# /etc/init.d/httpd restart
        Stopping httpd:                                            [  OK  ]
        Starting httpd: httpd.worker: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: 
        Syntax error on line 9 of /etc/httpd/conf.d/php.conf: Cannot load /etc/httpd/modules/libphp5-zts.so 
        into server: /etc/httpd/modules/libphp5-zts.so: cannot open shared object file: No such file or directory
                                                                   [FAILED]
###安装php-zts模块
# yum -y install php-zts
# rpm -ql php-zts
        /usr/lib64/httpd/modules/libphp5-zts.so

# ps -ef|grep http   ###查看httpd,已经切换为使用worker模式
        root      10339      1  0 04:35 ?        00:00:00 /usr/sbin/httpd.worker
        apache    10341  10339  0 04:35 ?        00:00:00 /usr/sbin/httpd.worker
        apache    10342  10339  0 04:35 ?        00:00:00 /usr/sbin/httpd.worker
        apache    10343  10339  0 04:35 ?        00:00:00 /usr/sbin/httpd.worker
        apache    10344  10339  0 04:35 ?        00:00:00 /usr/sbin/httpd.worker

四、安装mysql

# rpm -qa|grep mysql
        mysql-libs-5.1.73-5.el6_6.x86_64

# yum install mysql-server  
# rpm -qa|grep mysql      
        mysql-5.1.73-7.el6.x86_64
        mysql-libs-5.1.73-7.el6.x86_64
        mysql-server-5.1.73-7.el6.x86_64

###查看mysql安装产生的文件
# rpm -ql mysql-server
# rpm -ql mysql

# more /etc/my.cnf
        [mysqld]
        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock
        user=mysql
        # Disabling symbolic-links is recommended to prevent assorted security risks
        symbolic-links=0

        [mysqld_safe]
        log-error=/var/log/mysqld.log
        pid-file=/var/run/mysqld/mysqld.pid

# /etc/init.d/mysqld start
# /usr/bin/mysqladmin -u root password '***'
# mysql -uroot -p
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+

###安装php连接mysql驱动
#   yum install php-mysql

###查看安装完毕后生产的文件
# rpm -ql php-mysql
        /etc/php.d/mysql.ini      ### Author : Leshami
        /etc/php.d/mysqli.ini     ### Blog   : http://blog.csdn.net/leshami
        /etc/php.d/pdo_mysql.ini
        /usr/lib64/php/modules/mysql.so
        /usr/lib64/php/modules/mysqli.so
        /usr/lib64/php/modules/pdo_mysql.so

###测试到mysql的连接
#vim  /var/www/html/connmysql.php
<?php
    $conn = mysql_connect('127.0.0.1','root','***');
    if ($conn)
        echo "succ";
    else
        echo "failure";
    mysql_close();
?>

# curl http://localhost/connmysql.php
        succ

五、小结

1、apache httpd与php之间的衔接是通过模块化的方式来实现。
2、对于perfork模式使用libphp5模块,worker和event模式则使用libphp5-zts模块。
3、php与mysql则通过安装php-mysql包来实现php到mysql的访问。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
28天前
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
|
15天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
27天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
59 9
|
29天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
40 5
|
29天前
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
|
2月前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
42 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
59 2
|
25天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
131 0
|
2月前
|
NoSQL Ubuntu Linux
Linux平台安装MongoDB
10月更文挑战第11天
58 5
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
106 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库