商城首页欢迎来到中国正版软件门户

您的位置:首页 >Linux下PHP如何配置安全

Linux下PHP如何配置安全

  发布于2026-08-06 阅读(0)

扫一扫,手机访问

在Linux环境下配置PHP的安全性,确实是个系统工程,但也没想象中那么复杂。下面这些步骤和要点,都是经过实践检验的,能帮你把防护网织得密实一些。

Linux下PHP如何配置安全

1. 更新系统和软件

别小看这一步,很多安全漏洞其实都是通过官方更新修复的。先把系统、PHP、Web服务器(Apache或Nginx)、数据库(MySQL或PostgreSQL)等所有组件都升级到最新版本,这是最基础也是最重要的一步。

sudo apt update && sudo apt upgrade -y

2. 使用安全的PHP版本

PHP版本号不是越高越好,但一定要用官方还在维护的稳定版本。旧版本往往有已知的安全漏洞,除非有特殊兼容需求,否则别犹豫,直接上最新稳定版。比如,当前主流是7.4或8.x,根据项目需求选择。

sudo apt install php7.4 php7.4-cli php7.4-fpm php7.4-mysql

3. 配置PHP安全选项

PHP的配置文件php.ini是安全策略的核心。下面这些设置,建议一一核对并启用:

; 启用错误报告,生产环境关闭显示错误
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

; 禁用危险函数,坚决禁用eval、exec、passthru、shell_exec、system等
disable_functions = eval,exec,passthru,shell_exec,system

; 文件上传限制,根据实际需求调整大小
upload_max_filesize = 2M
post_max_size = 8M
file_uploads = On

; 启用OPcache,提升性能
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

; 安全头,防止XSS、点击劫持等攻击
headers.append = "X-Content-Type-Options: nosniff"
headers.append = "X-Frame-Options: SAMEORIGIN"
headers.append = "X-XSS-Protection: 1; mode=block"
headers.append = "Strict-Transport-Security: max-age=31536000; includeSubDomains"

4. 使用HTTPS

所有数据在传输过程中都应该加密,这已经成了标配。用Let's Encrypt免费获取SSL证书,再配合certbot自动续期,成本几乎为零。

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com

5. 配置Web服务器

不同的Web服务器,安全配置的侧重点也不同。下面分别给出Apache和Nginx的典型配置示例。

Apache

编辑/etc/apache2/apache2.conf或站点配置文件,添加以下内容实现HTTP到HTTPS的强制跳转,并配置SSL。


    ServerName yourdomain.com
    Redirect permanent / https://yourdomain.com/



    
        ServerName yourdomain.com
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLHonorCipherOrder on
        SSLCipherSuite HIGH:!aNULL:!MD5
    

Nginx

编辑/etc/nginx/sites-a vailable/yourdomain,同样的思路,强制HTTPS并配置SSL。

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        root /var/www/html;
        index index.php index.html index.htm;
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

6. 使用防火墙

UFW(Uncomplicated Firewall)是Linux下最简便的防火墙工具之一。只开放必要的端口(如80和443),其他全部关闭。

sudo ufw allow 'Nginx Full'
sudo ufw enable

7. 定期备份

安全配置再完善,也不能保证100%不出问题。定期备份网站文件和数据库,是最后的防线。建议使用cron任务实现自动化备份。

sudo tar -czvf /backup/yourdomain_$(date +%F).tar.gz /var/www/html
mysqldump -u root -p yourdatabase > /backup/yourdatabase_$(date +%F).sql

8. 使用安全插件和库

PHP生态中很多第三方库和框架,也要确保它们是最新版本,没有已知漏洞。定期用composer update或类似工具更新依赖,并关注安全公告。

以上这些步骤,基本覆盖了Linux下PHP安全配置的常见重点。但安全是个持续的过程,不是做完一次就万事大吉。定期检查日志、关注漏洞情报、及时打补丁,才能让防护网始终有效。

本文转载于:https://www.yisu.com/ask/41237232.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注