引言
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上构建一个高效的服务器环境。这个过程虽然需要一些耐心,但能够为您提供更好的性能和灵活性。在编译过程中,根据需要调整配置选项,以适应您的具体需求。