centos

如何定制centos上的lamp环境

小樊
51
2025-09-20 07:52:21
栏目: 智能运维

如何在CentOS上定制LAMP环境
LAMP(Linux + Apache + MySQL/MariaDB + PHP)是经典的开源Web环境,适用于搭建动态网站、Web应用等。以下是在CentOS系统上定制LAMP环境的详细步骤,涵盖基础安装、个性化配置及优化建议。

一、前置准备:更新系统与安装必要工具

在开始前,确保系统软件包为最新版本,并安装编译工具及依赖库,避免后续安装出现问题。

# 更新系统所有软件包
sudo yum update -y

# 安装开发工具组(包含gcc、make等编译工具)
sudo yum groupinstall "Development Tools" -y

# 安装常用依赖库(用于Apache、MySQL、PHP的编译与运行)
sudo yum install -y apr-devel apr-util-devel pcre-devel openssl-devel libxml2-devel bzip2-devel libcurl-devel

二、安装与配置Apache HTTP Server

Apache是LAMP环境的Web服务器组件,负责处理HTTP请求。可根据需求选择YUM包管理器安装(快速便捷)或源码编译安装(自定义功能)。

1. YUM包管理器安装(推荐新手)

# 安装Apache
sudo yum install httpd -y

# 启动Apache服务并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

# 检查Apache状态(确保显示"active (running)")
sudo systemctl status httpd

验证安装:在浏览器访问http://<服务器IP>,若看到Apache默认欢迎页面(如“Testing 123…”),则说明安装成功。

2. 源码编译安装(自定义配置)

若需要最新版本或特定功能(如调整MPM模式),可选择源码编译:

# 安装依赖包
sudo yum install -y gcc gcc-c++ make cmake ncurses-devel libxml2-devel perl-devel libcurl-devel openssl-devel

# 下载Apache源码(以2.4.54为例)
cd /usr/local/src
wget https://www.apache.org/dyn/closer.cgi?action=download&filename=httpd/httpd-2.4.54.tar.gz
tar -xzvf httpd-2.4.54.tar.gz
cd httpd-2.4.54

# 配置编译选项(指定安装路径、启用必要模块)
./configure --prefix=/usr/local/apache2 \
            --sysconfdir=/usr/local/apache2/etc \
            --with-included-apr \
            --enable-so \
            --enable-deflate=shared \
            --enable-ssl=shared \
            --enable-rewrite=shared \
            --with-mpm=prefork  # 可选:prefork(多进程)、worker(多线程)、event(事件驱动)

# 编译并安装
make
sudo make install

# 创建符号链接(方便命令调用)
sudo ln -s /usr/local/apache2/bin/apachectl /usr/sbin/apachectl

# 启动Apache并设置开机自启
sudo apachectl start
sudo systemctl enable apache2  # 需创建systemd服务文件(略)

配置防火墙:允许HTTP(80端口)流量通过:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

三、安装与配置MySQL/MariaDB数据库

MySQL/MariaDB是LAMP环境的数据库组件,用于存储网站数据。推荐使用YUM仓库安装(简单稳定),若需要最新版本可选择官方YUM仓库

1. 安装MariaDB(CentOS默认替代MySQL)

# 安装MariaDB Server
sudo yum install mariadb-server mariadb -y

# 启动MariaDB并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 运行安全配置脚本(设置root密码、移除匿名用户等)
sudo mysql_secure_installation

验证安装:登录MariaDB:

mysql -u root -p

输入密码后,执行SHOW DATABASES;,若显示系统数据库(如information_schema),则说明成功。

2. 安装MySQL(官方版本)

若需使用MySQL官方版本,需先添加YUM仓库:

# 下载MySQL YUM仓库(以MySQL 8.0为例)
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

# 安装MySQL Server
sudo yum install mysql-community-server -y

# 启动MySQL并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 获取临时root密码(查看日志)
sudo grep 'temporary password' /var/log/mysqld.log

# 运行安全配置脚本(同MariaDB)
sudo mysql_secure_installation

四、安装与配置PHP及扩展

PHP是LAMP环境的脚本语言组件,负责处理动态内容。可根据需求选择YUM包管理器安装(快速)或源码编译安装(自定义功能)。

1. YUM包管理器安装(推荐)

# 安装EPEL仓库(提供额外软件包)
sudo yum install epel-release -y

# 安装Remi仓库(提供最新PHP版本)
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

# 启用Remi仓库中的PHP 7.4(可根据需求更换版本,如7.3、8.0)
sudo yum-config-manager --enable remi-php74

# 安装PHP及常用扩展(mysqlnd用于MySQL连接、gd用于图片处理、mbstring用于多字节字符串等)
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-zip -y

# 启动PHP-FPM(若使用PHP-FPM)并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

验证PHP安装:创建info.php文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

在浏览器访问http://<服务器IP>/info.php,若看到PHP信息页面,则说明安装成功。

2. 源码编译安装(自定义功能)

若需要特定PHP版本或扩展,可选择源码编译:

# 安装依赖包
sudo yum groupinstall "Development Tools" -y
sudo yum install -y openssl-devel bzip2-devel libcurl-devel libxml2-devel mysql-devel

# 下载PHP源码(以7.4.33为例)
cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33

# 配置编译选项(启用必要模块,如pdo_mysql、gd等)
./configure --prefix=/usr/local/php \
            --with-config-file-path=/usr/local/php/etc \
            --enable-fpm \
            --with-fpm-user=www \
            --with-fpm-group=www \
            --enable-mbstring \
            --enable-zip \
            --enable-curl \
            --with-mysqli=mysqlnd \
            --with-pdo-mysql=mysqlnd \
            --with-openssl \
            --with-gd \
            --with-libxml-dir=/usr/include/libxml2

# 编译并安装
make
sudo make install

# 复制配置文件
sudo cp sapi/fpm/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp sapi/fpm/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

# 启动PHP-FPM并设置开机自启
sudo /usr/local/php/sbin/php-fpm
sudo systemctl enable php-fpm  # 需创建systemd服务文件(略)

五、配置Apache与PHP协同工作

若使用Apache作为Web服务器,需配置其支持PHP解析。

1. 修改Apache配置文件

编辑Apache主配置文件(/etc/httpd/conf/httpd.conf),添加以下内容:

# 加载PHP模块(模块路径可能因安装方式不同而变化)
LoadModule php7_module modules/libphp7.so  # YUM安装路径
# LoadModule php7_module /usr/local/php/libphp7.so  # 源码编译路径

# 添加PHP文件类型处理
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# 设置默认DocumentRoot(确保目录存在且有权限)
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All  # 允许.htaccess文件覆盖配置
    Require all granted
</Directory>

重启Apache

sudo systemctl restart httpd

六、定制化配置(可选)

根据实际需求,可进行以下定制:

1. 配置虚拟主机(多站点支持)

若需要托管多个网站,可创建虚拟主机配置文件:

# 创建网站目录
sudo mkdir -p /var/www/{site1,site2}
sudo chown -R apache:apache /var/www/  # 设置目录所有者(Apache用户)

# 新建虚拟主机配置文件(/etc/httpd/conf.d/site1.conf)
sudo vi /etc/httpd/conf.d/site1.conf

添加以下内容(以site1.example.com为例):

<VirtualHost *:80>
    ServerName site1.example.com
    DocumentRoot "/var/www/site1"
    ErrorLog "/var/log/httpd/site1_error.log"
    CustomLog "/var/log/httpd/site1_access.log" combined

    <Directory "/var/www/site1">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

重启Apache

sudo systemctl restart httpd

验证:在浏览器访问http://site1.example.com,若显示对应站点内容,则说明成功。

2. 优化PHP配置

编辑PHP配置文件(/etc/php.ini/usr/local/php/etc/php.ini),调整以下参数:

; 设置时区(如Asia/Shanghai)
date.timezone = Asia/Shanghai

; 调整上传文件大小限制(默认2M,可根据需求改为100M)
upload_max_filesize = 100M
post_max_size = 100M

; 开启错误报告(开发环境使用,生产环境建议关闭)
display_errors = On
error_reporting = E_ALL

重启PHP-FPM与Apache

sudo systemctl restart php-fpm
sudo systemctl restart httpd

七、安全加固

LAMP环境部署后,需进行基本安全设置,防止未授权访问:

1. 配置SELinux(可选)

若SELinux处于Enforcing模式,需调整策略允许Apache访问网站目录:

# 临时设置为Permissive模式(测试用)
sudo setenforce 0

# 永久修改SELinux模式(需编辑/etc/selinux/config文件)
sudo vi /etc/selinux/config

SELINUX=enforcing改为SELINUX=permissive,然后重启系统。

2. 防火墙设置

确保防火墙仅允许必要流量(HTTP、HTTPS):

# 允许HTTP(80端口)和HTTPS(443端口)
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

八、测试LAMP环境

创建info.php文件验证环境是否正常:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

在浏览器访问http://<服务器IP>/info.php,若看到包含PHP版本、模块信息的页面,则说明LAMP环境定制成功。

通过以上步骤,你可在CentOS系统上定制符合需求的LAMP环境。根据实际项目需求,可进一步调整Apache虚拟主机、PHP扩展或MySQL配置,优化环境性能与安全性。

0
看了该问题的人还看了