CentOS7通过yum安装httpd和php8.0

本文详细介绍了在CentOS 7上配置firewalld、安装httpd和php8.0,以及如何整合并修改防火墙、httpd和php配置,适合初学者了解部署过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

为了安装kodexplorer必须得部署php环境,所以首次接触了下php
记录一下自己安装php80并与httpd整合的过程
操作全是使用root权限进行操作


一、配置firewalld

CentOS7默认使用firewall来配置防火墙
如果没有安装,则使用yum进行安装

yum install -y firewalld

启动服务

systemctl start firewalld

设置开机自启动

systemctl enable firewalld

firewall的配置文件是以xml的格式,存储在 /usr/lib/firewalld/ 和 /etc/firewalld/ 目录中
可以通过命令行或者直接修改配置文件的方式修改firewall的配置

这里通过开放一下httpd和php80的端口

firewall-cmd --permanent --zone=public --add-port=80/tcp

重新加载防火墙

firewall-cmd --reload

二、安装httpd

使用yum直接安装。

yum install -y httpd

安装完成后启动服务

systemctl start httpd

查看httpd状态(没修改配置的话一般都能启动成功,配置我们后面再改)

systemctl status httpd

设置开机自启动

systemctl enable httpd

查看httpd版本(CentOS7 yum 安装的httpd版本目前是Apache/2.4.6)

httpd -V | head -n 1

这里可以通过自己创建个index文件简单验证一下服务是否正常

echo "test" > /var/www/html/index.html

打开浏览器可以看到我们的测试主页(我使用的服务器IP是192.168.1.21)
在这里插入图片描述
通过yum安装的httpd默认文件和存放的目录是
服务目录: /etc/httpd
主配置文件: /etc/httpd/conf/httpd.conf
网站数据目录: /var/www/html
访问日志: /var/log/httpd/access_log
错误日志:/var/log/httpd/error_log

三、安装php8.0

安装remi扩展源

yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

如果网不好的话可以考虑下清华软件源

yum install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm

确认一下能安装的php8.0和相关插件

yum list | grep php80

安装php8.0和其他插件(插件功能可以自己查一下,这里把一些比较常用的都放进来了)

yum -y install −−enablerepo=remi-php80 php80 php80-php php80-php-xml php80-php-xmlrpc php80-php-pecl-mcrypt php80-php-fpm php80-php-pecl-apcu php80-php-mbstring php80-php-gd php80-php-json php80-php-pecl-json-post php80-php-pdo php80-php-mysqlnd php80-php-pecl-mysql php80-php-opcache php80-php-pear php80-php-soap php80-php-intl php80-php-pear

确认安装结果

yum list installed | grep php

通过remi安装的php的指令是php80,这里建立一下软链接

ln -sf /usr/bin/php80 /usr/bin/php

查看安装的php版本

php -v

启动php-fpm(有需要的话可以给服务改名,我这边就没改了)

systemctl start php80-php-fpm

设置为开机自启动

systemctl enable php80-php-fpm

重启一下httpd

systemctl restart httpd

这里可以通过自己创建个php文件简单验证一下服务是否正常

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

打开浏览器可以看到我们的测试页面
在这里插入图片描述

这样安装的php80的配置目录是/etc/opt/remi/php80/
主配置文件是/etc/opt/remi/php80/php.ini

到这里其实我们的部署就已经完成了,后面讲一下部分比较常用的配置修改

四、修改httpd配置

比较常用的就是修改httpd的监听端口,修改httpd的网站数据目录
这里我们需要对/etc/httpd/conf/httpd.conf进行修改
修改配置文件之前先对配置文件进行备份

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
  1. 修改监听端口,我这里把端口修改为30080/tcp
    在这里插入图片描述
    可在命令行执行sed指令进行修改
sed -i "42s/Listen 80/Listen 30080/g" /etc/httpd/conf/httpd.conf

因为30080为非标准端口,所以还得增加SELinux中的http端口(如果图方便可以直接关闭SELinux)

getenforce 查看当前SELinux的模式
setenforce 0 关闭
setenforce 1 开启

查看SELinux中http使用的端口

semanage port -l | grep http

在这里插入图片描述
添加一下30080端口

semanage port -a -t http_port_t -p  tcp 30080
// -l是查询,-a是添加

再查看一下SELinux中http使用的端口
在这里插入图片描述
添加成功

重启httpd服务

systemctl restart httpd

防火墙关闭旧端口,开放新端口,并重新加载

firewall-cmd --permanent --zone=public --remove-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=30080/tcp
firewall-cmd --reload
  1. 修改httpd的网站数据目录,我这里把目录修改为/home/wwwroot/
    在这里插入图片描述
    可在命令行执行sed指令进行修改,我这边是直接将原有的/var/www/html替换成/home/wwwroot
sed -i "s#/var/www/html#/home/wwwroot#g" /etc/httpd/conf/httpd.conf 

在这里插入图片描述
中间的Option Indexes FollowSymLinks可以注释掉,它的作用是显示 Apache 目录列表
如果你的文件根目录里有 index.html,浏览器就会显示 index.html的内容,如果没有 index.html,浏览器就会显示文件根目录的目录列表,目录列表包括文件根目录下的文件和子目录
这里应该禁止掉(在前面加个#注释掉即可)

创建目录

mkdir -p /home/wwwroot

需要修改新建目录的安全上下文
查看默认目录的安全上下文

ls -lZd /var/www/html

在这里插入图片描述
修改新建目录的安全上下文

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

立即生效的命令

restorecon -Rv /home/wwwroot/

查看新建目录的安全上下文
在这里插入图片描述
到这步就基本没问题了,简单测试一下

echo "test" > /home/wwwroot/index.html
echo "<?php phpinfo(); ?>" > /home/wwwroot/info.php
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
另外,如果主页使用的是php,也应该在ifModule dir_module中添加index.php
在这里插入图片描述
在ifModule mine_module中添加一行AddType application/x-httpd-php .php
如果需要将.txt、.html后缀文件也作为PHP文件解析的话,可以改为添加AddType application/x-httpd-php .php .html .txt
在这里插入图片描述

五、修改php配置

晚点再编辑,都是些常见配置项的说明


总结

以上就是今天要讲的内容
参考文档:
初心者向け CentOS7.9 に PHP8.0をインストール
使用Apache服务部署静态网站

以下是在 CentOS 7.9 上安装 Nextcloud 并使用 PHP 8.0 的步骤: 1. 更新系统安装必要的软件: ``` sudo yum update sudo yum install epel-release sudo yum install wget unzip httpd mariadb mariadb-server php php-common php-mysqlnd php-gd php-mbstring php-mcrypt php-xml php-zip php-intl php-json php-opcache php-apcu-bc ``` 2. 安装 PHP 8.0: ``` sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install yum-utils sudo yum-config-manager --disable remi-php54 sudo yum-config-manager --disable remi-php55 sudo yum-config-manager --disable remi-php56 sudo yum-config-manager --disable remi-php70 sudo yum-config-manager --disable remi-php71 sudo yum-config-manager --disable remi-php72 sudo yum-config-manager --disable remi-php73 sudo yum-config-manager --disable remi-php74 sudo yum-config-manager --enable remi-php80 sudo yum update sudo yum install php php-common php-mysqlnd php-gd php-mbstring php-mcrypt php-xml php-zip php-intl php-json php-opcache php-apcu-bc ``` 3. 下载并解压 Nextcloud: ``` cd /var/www sudo wget https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip sudo unzip nextcloud-22.1.1.zip sudo chown -R apache:apache nextcloud ``` 4. 创建一个新的 MariaDB 数据库: ``` sudo mysql -u root -p CREATE DATABASE nextcloud; GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT; ``` 5. 配置 Apache: ``` sudo vi /etc/httpd/conf.d/nextcloud.conf ``` 在文件中添加以下内容: ``` Alias /nextcloud "/var/www/nextcloud/" <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory> ``` 6. 启动 Apache MariaDB: ``` sudo systemctl start httpd sudo systemctl start mariadb ``` 7. 打开 Nextcloud 安装页面: 在浏览器中访问 http://你的服务器地址/nextcloud 按照安装向导进行 Nextcloud 的安装8. 安装完成后,你需要在 Nextcloud 中启用 PHP 8.0: ``` sudo vi /var/www/nextcloud/config/config.php ``` 在文件中添加以下内容: ``` 'php_version' => '8.0', ``` 保存并关闭文件。然后重启 Apache: ``` sudo systemctl restart httpd ``` 现在,你已经成功在 CentOS 7.9 上安装了 Nextcloud 并使用了 PHP 8.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值