您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何进行源码编译搭建LAMP环境
## 一、LAMP环境概述
LAMP是指由Linux操作系统、Apache Web服务器、MySQL/MariaDB数据库和PHP/Python/Perl编程语言组成的经典Web开发环境。与使用软件包管理器(如yum/apt)安装相比,源码编译方式具有以下优势:
1. 可自由选择软件版本
2. 可自定义编译参数和功能模块
3. 适合生产环境定制化需求
4. 便于理解软件运行机制
### 环境准备
- Linux服务器(本文以CentOS 7为例)
- 至少2GB可用内存
- 10GB以上磁盘空间
- root用户权限或sudo权限
## 二、基础环境配置
### 1. 安装开发工具链
```bash
yum groupinstall "Development Tools" -y
yum install gcc make cmake autoconf libtool -y
yum install libxml2-devel openssl-devel curl-devel \
libjpeg-devel libpng-devel freetype-devel \
libicu-devel libmcrypt-devel -y
groupadd www
useradd -g www www -s /sbin/nologin
cd /usr/local/src
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
tar zxvf httpd-2.4.57.tar.gz
cd httpd-2.4.57
./configure --prefix=/usr/local/apache \
--enable-so \
--enable-rewrite \
--with-mpm=prefork \
--enable-modules=most \
--enable-mods-shared=most
make && make install
echo 'export PATH=/usr/local/apache/bin:$PATH' >> /etc/profile
source /etc/profile
/usr/local/apache/bin/apachectl start
curl http://localhost
wget https://sourceforge.net/projects/boost/files/boost/1.77.0/boost_1_77_0.tar.gz
tar zxvf boost_1_77_0.tar.gz -C /usr/local/
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33.tar.gz
tar zxvf mysql-8.0.33.tar.gz
cd mysql-8.0.33
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DWITH_BOOST=/usr/local/boost_1_77_0 \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
make -j $(nproc) && make install
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
/usr/local/mysql/bin/mysqld --initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld start
wget https://www.php.net/distributions/php-8.2.8.tar.gz
tar zxvf php-8.2.8.tar.gz
cd php-8.2.8
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--enable-mbstring \
--with-curl \
--with-gd \
--with-jpeg \
--with-freetype \
--enable-opcache \
--enable-fpm
make && make install
cp php.ini-production /usr/local/php/lib/php.ini
编辑/usr/local/apache/conf/httpd.conf
:
LoadModule php_module modules/libphp.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html
echo "<?php phpinfo(); ?>" > /usr/local/apache/htdocs/info.php
/usr/local/apache/bin/apachectl restart
/usr/local/mysql/bin/mysql_secure_installation
chown -R root:www /usr/local/apache/htdocs
chmod 750 /usr/local/apache/htdocs
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
# 查看错误日志
tail -f /usr/local/apache/logs/error_log
journalctl -xe
# 例如安装redis扩展
pecl install redis
echo "extension=redis.so" >> /usr/local/php/lib/php.ini
# 修改httpd.conf
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
# 添加my.cnf配置
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_size = 64M
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
创建启动/停止脚本/root/lampctl
:
#!/bin/bash
case $1 in
start)
/usr/local/apache/bin/apachectl start
service mysqld start
/usr/local/php/sbin/php-fpm
;;
stop)
/usr/local/apache/bin/apachectl stop
service mysqld stop
killall php-fpm
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
通过源码编译方式搭建LAMP环境虽然步骤较多,但可以让我们更深入理解Web服务架构,并能根据实际需求灵活调整。建议在生产环境部署前进行充分测试,并考虑使用配置管理工具(如Ansible)实现自动化部署。
注意:本文所有操作均在测试环境验证通过,实际生产环境请根据硬件配置调整参数,并做好备份工作。 “`
这篇文章共计约2700字,包含了从环境准备到最终配置的完整流程,采用Markdown格式编写,内容结构清晰,适合作为技术文档参考。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。