简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

站内搜索

搜索

活动公告

11-02 12:46
10-23 09:32
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,将及时处理!
10-23 09:31
10-23 09:28
通知:签到时间调整为每日4:00(东八区)
10-23 09:26

详解Rocky Linux系统下PHP环境安装配置过程及常见错误解决方法助你快速搭建稳定高效的Web开发环境

3万

主题

424

科技点

3万

积分

大区版主

木柜子打湿

积分
31917

三倍冰淇淋无人之境【一阶】财Doro小樱(小丑装)立华奏以外的星空【二阶】⑨的冰沙

发表于 2025-9-28 22:00:01 | 显示全部楼层 |阅读模式 [标记阅至此楼]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Rocky Linux作为CentOS的替代品,已成为企业级服务器的热门选择。本文将详细介绍在Rocky Linux系统上安装配置PHP环境的完整过程,并针对常见问题提供解决方案,帮助你快速搭建稳定高效的Web开发环境。

一、准备工作

在开始安装PHP环境之前,我们需要确保系统是最新的,并安装一些必要的工具。

首先,更新系统包:
  1. sudo dnf update -y
复制代码

安装必要的工具:
  1. sudo dnf install -y epel-release yum-utils
复制代码

添加Remi存储库,这是PHP最新版本的官方推荐源:
  1. sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
复制代码

二、安装Web服务器

1. 安装Apache
  1. sudo dnf install -y httpd
复制代码

启动Apache服务并设置开机自启:
  1. sudo systemctl start httpd
  2. sudo systemctl enable httpd
复制代码

检查Apache状态:
  1. sudo systemctl status httpd
复制代码

配置防火墙允许HTTP和HTTPS流量:
  1. sudo firewall-cmd --permanent --add-service=http
  2. sudo firewall-cmd --permanent --add-service=https
  3. sudo firewall-cmd --reload
复制代码

2. 安装Nginx(可选)

如果你更喜欢使用Nginx作为Web服务器,可以按照以下步骤安装:
  1. sudo dnf install -y nginx
复制代码

启动Nginx服务并设置开机自启:
  1. sudo systemctl start nginx
  2. sudo systemctl enable nginx
复制代码

检查Nginx状态:
  1. sudo systemctl status nginx
复制代码

配置防火墙允许HTTP和HTTPS流量:
  1. sudo firewall-cmd --permanent --add-service=http
  2. sudo firewall-cmd --permanent --add-service=https
  3. sudo firewall-cmd --reload
复制代码

三、安装PHP

首先,查看可用的PHP版本:
  1. sudo dnf module list php
复制代码

根据需要选择PHP版本并启用相应的模块。例如,要安装PHP 8.1:
  1. sudo dnf module enable php:remi-8.1 -y
复制代码

安装PHP及其常用扩展:
  1. sudo dnf install -y php php-cli php-common php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json
复制代码

启动PHP-FPM服务并设置开机自启:
  1. sudo systemctl start php-fpm
  2. sudo systemctl enable php-fpm
复制代码

检查PHP-FPM状态:
  1. sudo systemctl status php-fpm
复制代码

验证PHP安装:
  1. php -v
复制代码

四、安装数据库

1. 安装MariaDB
  1. sudo dnf install -y mariadb-server mariadb
复制代码

启动MariaDB服务并设置开机自启:
  1. sudo systemctl start mariadb
  2. sudo systemctl enable mariadb
复制代码

运行安全安装脚本:
  1. sudo mysql_secure_installation
复制代码

此脚本将引导你设置root密码、删除匿名用户、禁止root远程登录等安全设置。

2. 安装MySQL(可选)

如果你更喜欢使用MySQL而不是MariaDB,可以按照以下步骤安装:

添加MySQL存储库:
  1. sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
复制代码

安装MySQL服务器:
  1. sudo dnf install -y mysql-community-server
复制代码

启动MySQL服务并设置开机自启:
  1. sudo systemctl start mysqld
  2. sudo systemctl enable mysqld
复制代码

获取临时root密码:
  1. sudo grep 'temporary password' /var/log/mysqld.log
复制代码

运行安全安装脚本:
  1. sudo mysql_secure_installation
复制代码

五、配置PHP与Web服务器

1. 配置Apache与PHP

创建一个PHP测试文件:
  1. sudo vi /var/www/html/info.php
复制代码

添加以下内容:
  1. <?php
  2. phpinfo();
  3. ?>
复制代码

保存文件后,通过浏览器访问http://your_server_ip/info.php,你应该能看到PHP信息页面。

2. 配置Nginx与PHP

创建一个Nginx配置文件:
  1. sudo vi /etc/nginx/conf.d/default.conf
复制代码

添加以下内容:
  1. server {
  2.     listen 80;
  3.     server_name your_domain.com;
  4.     root /var/www/html;
  5.     index index.php index.html index.htm;
  6.     location / {
  7.         try_files $uri $uri/ /index.php?$query_string;
  8.     }
  9.     location ~ \.php$ {
  10.         try_files $uri =404;
  11.         fastcgi_pass unix:/var/run/php-fpm/www.sock;
  12.         fastcgi_index index.php;
  13.         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  14.         include fastcgi_params;
  15.     }
  16. }
复制代码

保存文件后,重启Nginx服务:
  1. sudo systemctl restart nginx
复制代码

创建一个PHP测试文件:
  1. sudo vi /var/www/html/info.php
复制代码

添加以下内容:
  1. <?php
  2. phpinfo();
  3. ?>
复制代码

保存文件后,通过浏览器访问http://your_server_ip/info.php,你应该能看到PHP信息页面。

六、常见错误及解决方法

1. 依赖问题

在安装PHP或其扩展时,可能会遇到缺少依赖包的错误。

解决方法:
  1. sudo dnf install -y @development-tools
  2. sudo dnf install -y libxml2-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel
复制代码

有时,添加的存储库可能不可用或已过期。

解决方法:
  1. sudo dnf clean all
  2. sudo dnf update
复制代码

如果问题仍然存在,可以尝试重新添加存储库:
  1. sudo dnf remove remi-release
  2. sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
复制代码

2. 配置问题

当PHP-FPM与Web服务器(如Nginx)无法正常通信时,可能会导致502错误。

解决方法:检查PHP-FPM配置文件/etc/php-fpm.d/www.conf,确保以下设置正确:
  1. listen = /var/run/php-fpm/www.sock
  2. listen.owner = nginx
  3. listen.group = nginx
  4. listen.mode = 0660
复制代码

如果使用Apache,则应为:
  1. listen = /var/run/php-fpm/www.sock
  2. listen.owner = apache
  3. listen.group = apache
  4. listen.mode = 0660
复制代码

重启PHP-FPM服务:
  1. sudo systemctl restart php-fpm
复制代码

默认情况下,PHP对上传文件的大小有限制,这可能会导致上传大文件时失败。

解决方法:编辑PHP配置文件/etc/php.ini,修改以下设置:
  1. upload_max_filesize = 64M
  2. post_max_size = 64M
  3. memory_limit = 256M
复制代码

重启PHP-FPM服务:
  1. sudo systemctl restart php-fpm
复制代码

3. 权限问题

如果Web服务器(Apache或Nginx)无法访问网站文件,可能会导致403 Forbidden错误。

解决方法:确保网站文件的所有权和权限正确:
  1. sudo chown -R apache:apache /var/www/html  # 对于Apache
  2. # 或
  3. sudo chown -R nginx:nginx /var/www/html    # 对于Nginx
  4. sudo chmod -R 755 /var/www/html
复制代码

如果使用SELinux,还需要设置正确的SELinux上下文:
  1. sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
  2. sudo restorecon -Rv /var/www/html
复制代码

如果PHP-FPM无法写入日志文件,可能会导致错误信息无法记录。

解决方法:确保日志目录存在并具有正确的权限:
  1. sudo mkdir -p /var/log/php-fpm
  2. sudo chown -R apache:apache /var/log/php-fpm  # 对于Apache
  3. # 或
  4. sudo chown -R nginx:nginx /var/log/php-fpm    # 对于Nginx
  5. sudo chmod -R 755 /var/log/php-fpm
复制代码

4. 性能优化问题

PHP执行缓慢可能是由于配置不当或缺少优化。

解决方法:安装并配置OPcache:
  1. sudo dnf install -y php-opcache
复制代码

编辑PHP配置文件/etc/php.d/10-opcache.ini,确保以下设置正确:
  1. opcache.enable=1
  2. opcache.memory_consumption=128
  3. opcache.interned_strings_buffer=8
  4. opcache.max_accelerated_files=4000
  5. opcache.revalidate_freq=60
  6. opcache.fast_shutdown=1
  7. opcache.enable_cli=1
复制代码

重启PHP-FPM服务:
  1. sudo systemctl restart php-fpm
复制代码

数据库连接缓慢可能是由于配置不当或资源不足。

解决方法:优化数据库配置,编辑MySQL/MariaDB配置文件/etc/my.cnf或/etc/my.cnf.d/mysql-server.cnf,添加或修改以下设置:
  1. [mysqld]
  2. innodb_buffer_pool_size = 1G
  3. innodb_log_file_size = 256M
  4. innodb_log_buffer_size = 64M
  5. innodb_flush_log_at_trx_commit = 2
  6. innodb_flush_method = O_DIRECT
  7. query_cache_type = 1
  8. query_cache_size = 128M
  9. query_cache_limit = 4M
复制代码

重启数据库服务:
  1. sudo systemctl restart mariadb  # 或 mysqld
复制代码

七、安全配置建议

1. PHP安全配置

编辑PHP配置文件/etc/php.ini,进行以下安全设置:
  1. ; 禁用危险函数
  2. disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  3. ; 隐藏PHP版本
  4. expose_php = Off
  5. ; 限制文件访问
  6. open_basedir = /var/www/html/:/tmp/
  7. ; 启用安全模式
  8. sql.safe_mode = On
  9. ; 禁用全局变量
  10. register_globals = Off
  11. ; 启用会话加密
  12. session.cookie_httponly = 1
  13. session.use_only_cookies = 1
  14. session.cookie_secure = 1
复制代码

2. Web服务器安全配置

编辑Apache配置文件/etc/httpd/conf/httpd.conf,进行以下安全设置:
  1. # 隐藏服务器版本
  2. ServerTokens Prod
  3. ServerSignature Off
  4. # 禁用目录浏览
  5. Options -Indexes
  6. # 禁用符号链接
  7. Options -FollowSymLinks
  8. # 设置适当的超时
  9. Timeout 30
  10. # 限制请求大小
  11. LimitRequestBody 10485760
  12. # 启用HTTPS
  13. LoadModule ssl_module modules/mod_ssl.so
复制代码

编辑Nginx配置文件/etc/nginx/nginx.conf,进行以下安全设置:
  1. # 隐藏Nginx版本
  2. server_tokens off;
  3. # 禁用目录浏览
  4. autoindex off;
  5. # 限制请求方法
  6. if ($request_method !~ ^(GET|HEAD|POST)$ ) {
  7.     return 405;
  8. }
  9. # 限制请求大小
  10. client_max_body_size 10m;
  11. # 启用HTTPS
  12. server {
  13.     listen 443 ssl;
  14.     ssl_certificate /path/to/certificate.crt;
  15.     ssl_certificate_key /path/to/private.key;
  16.     ssl_protocols TLSv1.2 TLSv1.3;
  17.     ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
  18.     ssl_prefer_server_ciphers on;
  19. }
复制代码

3. 数据库安全配置

创建一个具有有限权限的数据库用户,而不是使用root用户:
  1. CREATE DATABASE my_database;
  2. CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'strong_password';
  3. GRANT ALL PRIVILEGES ON my_database.* TO 'my_user'@'localhost';
  4. FLUSH PRIVILEGES;
复制代码

定期备份数据库:
  1. mysqldump -u root -p my_database > my_database_backup.sql
复制代码

八、总结

在Rocky Linux系统上安装和配置PHP环境需要多个步骤,包括安装Web服务器、PHP和数据库,以及进行适当的配置。本文详细介绍了整个过程,并提供了常见错误及其解决方法。通过遵循这些步骤和建议,你可以快速搭建一个稳定、安全、高效的Web开发环境。

记住,维护一个Web环境不仅仅是安装和配置,还包括定期更新、监控和优化。定期检查系统日志、更新软件包、备份数据是保持环境安全和稳定的关键。

希望本文能帮助你在Rocky Linux系统上成功搭建PHP环境,并为你的Web开发项目提供坚实的基础。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

频道订阅

频道订阅

加入社群

加入社群

联系我们|TG频道|RSS

Powered by Pixtech

© 2025 Pixtech Team.