rocky linuxLAMP源码搭建
时间: 2025-02-16 15:08:21 浏览: 74
### 安装准备
为了在Rocky Linux上通过LAMP栈(Linux, Apache, MySQL, PHP)从源码安装和配置Web服务器,需要先确保操作系统是最新的并已安装必要的依赖工具。这可以通过更新包管理器中的软件列表来完成,并安装编译所需的工具链和其他辅助库。
```bash
sudo dnf update -y
sudo dnf groupinstall "Development Tools" -y
sudo dnf install epel-release -y
```
上述命令会更新系统并将EPEL仓库加入到可用资源中以便获取更多第三方软件包的支持[^1]。
### 编译安装Apache HTTP Server
下载最新的稳定版Apache源代码压缩文件至本地机器:
```bash
cd /tmp/
wget http://archive.apache.org/dist/httpd/httpd-2.4.xx.tar.gz
tar zxvf httpd-2.4.xx.tar.gz
cd httpd-2.4.xx
```
注意:`xx`代表具体的版本号,请访问官方网站确认最新发布版本。
接着配置编译选项并开始编译过程:
```bash
./configure \
--enable-cgi \
--enable-rewrite \
--with-included-apr \
--with-pcre
make && sudo make install
```
此步骤指定了安装路径以及其他一些特性开关,如启用模块化加载(`so`)、CGI脚本支持(`cgi`)和支持URL重写规则(`rewrite`)等功能[^2]。
创建用于控制服务状态的Systemd单元文件以实现开机自启和服务管理自动化:
```bash
cp /usr/local/apache/bin/apachectl /etc/init.d/
chmod +x /etc/init.d/apachectl
cat > /usr/lib/systemd/system/apache.service << EOF
[Unit]
Description=apache
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/apachectl start
ExecReload=/etc/init.d/apachectl restart
ExecStop=/etc/init.d/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start apache.service
systemctl enable apache.service
ps aux | grep apache
```
这段脚本定义了一个名为`apache`的服务实例,并设置了其启动行为与生命周期管理方式;最后几条指令用来激活新添加的服务项并验证进程是否正常运行[^4]。
### 编译安装MySQL/MariaDB Database Server
对于数据库部分可以选择官方推荐的安全分支MariaDB作为替代方案之一。同样地,首先取得对应操作系统的二进制分发包或者自行编译源码。此处仅提供基于yum/dnf的方式快速部署:
```bash
sudo nano /etc/yum.repos.d/MariaDB.repo
```
编辑repo文件内容如下所示:
```ini
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.x/rockylinux/$releasever/amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```
保存退出后执行同步索引及安装动作:
```bash
sudo dnf clean all
sudo dnf install mariadb-server -y
sudo systemctl start mariadb
sudo mysql_secure_installation
```
以上流程完成了基本安全设置并向用户询问有关root密码等问题[^3]。
### 编译安装PHP Script Language Interpreter
前往官网寻找适合当前环境的最佳匹配发行版链接地址,解压归档之后参照README文档说明继续前进:
```bash
cd /tmp/
wget https://www.php.net/distributions/php-x.y.z.tar.gz
tar zxf php-x.y.z.tar.gz
cd php-x.y.z
```
配置阶段需指定额外参数让解释器能够识别先前建立好的httpd模块位置及其他关联扩展件的位置:
```bash
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysqli=mysqlnd \
--with-zlib-dir \
--with-freetype \
--with-jpeg-dir \
--with-png-dir \
--with-iconv-dir \
--with-gd \
--with-gettext \
--with-curl \
--with-openssl \
--with-mhash \
--with-libxml-dir=/usr \
--with-zlib \
--with-bz2 \
--with-readline \
--enable-shmop \
--disable-rpath \
--disable-static \
--enable-opcache=no \
--enable-soap \
--enable-calendar \
--enable-ftp \
--enable-exif \
--enable-wddx \
--enable-mbstring=all \
--enable-intl \
--without-pear \
--with-apxs2=/usr/local/apache/bin/apxs
make ZEND_EXTRA_LIBS='-liconv'
sudo make install
```
这里特别强调了要集成APXS工具链从而允许php以DSO形式嵌入web server内部工作。
调整Apache配置使其可以处理`.php`结尾类型的请求,在主配置文件内追加以下片段:
```apacheconf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
ScriptAlias /php/ "/usr/local/php/"
Action application/x-httpd-php "/php/index.php"
AddType text/html .php
DirectoryIndex index.html index.htm index.php
```
重启HTTPD服务生效更改:
```bash
sudo systemctl restart apache.service
```
此时应该已经成功架设起一套完整的LAMP架构站点环境,可通过浏览器测试页面展示效果进一步检验成果。
阅读全文
相关推荐

















