引言

LAMP(Linux、Apache、MySQL、PHP)是一种流行的开源软件组合,常用于构建高性能的Web服务器。在CentOS系统上,通过源码编译LAMP可以提供更高的灵活性和性能优化。本文将详细讲解如何在CentOS上从源码编译LAMP,以构建一个高效的服务器环境。

准备工作

在开始之前,请确保您的CentOS系统满足以下条件:

  • 操作系统:CentOS 7.x 或更高版本
  • 硬件要求:足够的CPU和内存资源
  • 软件要求:gcc、gcc-c++、make等编译工具

安装编译工具

yum -y install gcc gcc-c++ make

关闭SELinux和firewalld防火墙

# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 临时关闭firewalld防火墙
systemctl stop firewalld
# 永久关闭firewalld防火墙
systemctl disable firewalld

安装Apache

Apache是一个流行的HTTP服务器,用于处理Web请求。

下载Apache源码

wget http://apache.org/dist/httpd/httpd-2.4.41.tar.bz2
tar -xjf httpd-2.4.41.tar.bz2
cd httpd-2.4.41

配置和编译

./configure --prefix=/usr/local/apache2 --enable-module=so
make
make install

启动Apache服务

/usr/local/apache2/bin/apachectl start

安装MySQL

MySQL是一个开源的关系型数据库管理系统。

下载MySQL源码

wget http://dev.mysql.com/get/mysql-5.7.31.tar.gz
tar -xzvf mysql-5.7.31.tar.gz
cd mysql-5.7.31

配置和编译

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/var/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make
make install

配置MySQL

cp support-files/my-default.cnf /etc/my.cnf

初始化MySQL数据库

/usr/local/mysql/bin/mysqld_safe --user=mysql &

创建MySQL用户和密码

mysql -u root -p

进入MySQL后,执行以下命令创建新用户和密码:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

安装PHP

PHP是一种流行的服务器端脚本语言。

下载PHP源码

wget http://php.net/distributions/php-7.4.10.tar.gz
tar -xzvf php-7.4.10.tar.gz
cd php-7.4.10

配置和编译

./configure --prefix=/usr/local/php --with-config-file-path=/etc/php --enable-fpm --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-openssl=/usr/local/openssl --with-zlib --enable-zip
make
make install

配置Apache以支持PHP

编辑Apache配置文件,添加以下行:

LoadModule php7_module modules/libphp7.so
AddType application/x-httpd-php .php

配置PHP-FPM

cp php.ini-production /etc/php.ini

启动PHP-FPM

/usr/local/php/sbin/php-fpm

总结

通过源码编译LAMP,您可以在CentOS上构建一个高效的服务器环境。这个过程虽然需要一些耐心,但能够为您提供更好的性能和灵活性。在编译过程中,根据需要调整配置选项,以适应您的具体需求。