Linux(CentOS7)搭建LAMP服务环境

本文涉及的产品
云防火墙,500元 1000GB
简介: 本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。

1、MySQL高版本5.7及以上安装在CentOS7x64位系统,安装过程在以往笔记里找,这里不再赘述;

2、安装Apache-Httpd,下载地址:http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.23.tar.gz

在编译安装Apache(httpd-2.4.3)时分别出现了apr not found、APR-util not found、pcre-config for libpcre not found的问题,下面就httpd-2.4.3的这些问题解决来实际操作一把。

http://apr.apache.org/download.cgi 下载apr-1.4.5.tar.gz、apr-util-1.3.12.tar.gz

https://sourceforge.net/projects/pcre/files 下载pcre-8.31.zip 或者 pcre2-10.22.tar.gz

1.解决apr not found问题

[root@localhost bin]# tar -zxf apr-1.5.2.tar.gz

[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr

[root@localhost apr-1.5.2]# make && make install

[root@localhost apr-1.5.2]# make install

2.解决APR-util not found问题

[root@localhost bin]# tar -zxf apr-util-1.5.4.tar.gz

[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/

[root@localhost apr-util-1.5.4]# make && make install

[root@localhost apr-util-1.5.4]# make install

在安装apr-util时,缺少/opt/apr-util-1.5.4/xml/expat/libexpat.la文件 

在当前目录 执行命令:yum search libexpat 即可解决;

3、解决pcre-config for libpcre not found问题

[root@localhost ~]# unzip pcre-8.10.zip 

[root@localhost ~]# cd pcre-8.10 

[root@localhost pcre-8.10]# ./configure --prefix=/usr/local/pcre 

[root@localhost pcre-8.10]# make && make install

先将支持Apache-httpd的几个程序安装完,之后在安装Apache【反正安装没坏处】

解压Apache:tar -zxvf Apache-httpd-2.4.24.tar.gz

md5sum httpd-2.4.23.tar.gz

tar zvxf httpd-2.4.23.tar.gz 

./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --enable-modules=all --enable-rewrite  --enable-ssl --with-ssl --enable-cgid --enable-cgi

apr是为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库

2.4.23Apche之后的编译版本命令有所不同:

(除了指定Apache的安装目录外,还要安装apr、apr-util、pcre,并指定参数)make && make install

因为httpd默认端口:80,已经给tomcat使用了,所以要去安装目录/usr/local/apache/conf/httpd.conf

vim它,修改它的listener:80,变成8082

启动:/usr/local/apache/bin/apachectl start 报错:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. 

Set the 'ServerName' directive globally to suppress this message

vim httpd.conf 配置文件,增加一行:ServerName  localhost[先配置虚拟机ip]:8081

防火墙开启端口8081,windows可远程访问apachehttpd服务

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

CentOS7防火墙设置:firewall-cmd --zone=public --add-port=8082/tcp --permanent

  防火墙重启: firewall-cmd --reload

•停止Apache:/usr/local/apache/bin/apachectl stop

•重启Apache:/usr/local/apache/bin/apachectl restart

cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #复制服务到服务列表

如果复制没有权限,使用软链接:ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd

service httpd start / stop restart 启动httpd

chmod 755 /etc/init.d/httpd  

chkconfig --add httpd 报错:service httpd does not support chkconfig

解决办法:打开vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面) 

#description: Activates/Deactivates Apache Web Server

3、安装PHP(下载php-5.5-.38.tar.gz)

  • 因为httpd默认端口:80,已经给tomcat使用了,所以要去安装目录/usr/local/apache/conf/httpd.conf
    
    vim它,修改它的listener:80,变成8082
    
    启动:/usr/local/apache/bin/apachectl start 报错:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. 
    
    Set the 'ServerName' directive globally to suppress this message
    
    vim httpd.conf 配置文件,增加一行:ServerName  localhost[先配置虚拟机ip]:8081
    
    防火墙开启端口8081,windows可远程访问apachehttpd服务
    
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    
    CentOS7防火墙设置:firewall-cmd --zone=public --add-port=8082/tcp --permanent
    
      防火墙重启: firewall-cmd --reload
    
    •停止Apache:/usr/local/apache/bin/apachectl stop
    
    •重启Apache:/usr/local/apache/bin/apachectl restart
    
    cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #复制服务到服务列表
    
    如果复制没有权限,使用软链接:ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd
    
    service httpd start / stop restart 启动httpd
    
    chmod 755 /etc/init.d/httpd  
    
    chkconfig --add httpd 报错:service httpd does not support chkconfig
    
    解决办法:打开vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面) 
    
    #description: Activates/Deactivates Apache Web Server
    

    make: *** [sapi/cli/PHP] 错误 1

#make clean  

#make

<?php>

phpinfo();

<?>

浏览器打开测试test.php,环境不能解析php代码,访问出现源代码;

修改vim /usr/local/apache/conf/httpd/conf

找到AddType内容

#添加[MIME映射](https://www.baidu.com/s?wd=MIME%E6%98%A0%E5%B0%84&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdmHc4rH6LuWfdPAFbnhnv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1RLnHf1PHcY),让apache把PHP文件当成代码文件来执行

AddType application/x-httpd-php .php .phtml

重启apache--httpd服务就好了

\[so:warn\] \[pid 3020:tid 139963331409728\] AH01574: module php5\_module is already loaded, skipping

apache重装php环境,重复加载php5\_module模块,编辑apache/conf/httpd.conf 删除即可;

(20014)Internal error (specific information not available): AH00058: Error retrieving pid file logs/httpd.pid

要删除apache/logs/httpd.pid这个进程文件;
相关文章
|
11天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
11天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
48 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
11天前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
29 1
CentOS 7.x时间同步服务chrony配置详解
|
17天前
|
前端开发 Linux
深度探索Linux操作系统 —— 构建桌面环境3
深度探索Linux操作系统 —— 构建桌面环境
28 12
|
10天前
|
Shell Linux API
C语言在linux环境下执行终端命令
本文介绍了在Linux环境下使用C语言执行终端命令的方法。首先,文章描述了`system()`函数,其可以直接执行shell命令并返回结果。接着介绍了更强大的`popen()`函数,它允许程序与命令行命令交互,并详细说明了如何使用此函数及其配套的`pclose()`函数。此外,还讲解了`fork()`和`exec`系列函数,前者创建新进程,后者替换当前进程执行文件。最后,对比了`system()`与`exec`系列函数的区别,并针对不同场景推荐了合适的函数选择。
|
17天前
|
Linux 编译器 C语言
深度探索Linux操作系统 —— 构建桌面环境2
深度探索Linux操作系统 —— 构建桌面环境
24 6
|
12天前
|
Linux
centos linux内核下载
centos linux内核下载
|
12天前
|
Kubernetes Linux Docker
在centos7上搭建k8s环境
在centos7上搭建k8s环境
|
4月前
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
36 2
|
安全 Ubuntu 网络协议
Linux中的服务管理
Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。
138 3