在 CentOS 上“PHP 配置加密”通常有以下几种常见理解,我分别说明,你可以按需选择:
场景:config.php 里有数据库密码,不想明文保存。
// config.php
$db_pass = getenv('DB_PASSWORD');
在 CentOS 中设置环境变量:
export DB_PASSWORD='your_strong_password'
或写入 systemd 服务:
# /etc/systemd/system/php-fpm.service.d/env.conf
[Service]
Environment=DB_PASSWORD=your_strong_password
$enc = file_get_contents('/etc/php/secret.enc');
$key = 'your_key';
$iv = '1234567890123456';
$config = openssl_decrypt($enc, 'AES-256-CBC', $key, 0, $iv);
生成加密文件:
echo "db_password=xxx" | openssl enc -aes-256-cbc -k your_key -out secret.enc
$encrypted = sodium_crypto_secretbox($data, $nonce, $key);
PHP 不支持直接“加密 php.ini”。
可行替代方案:
chmod 600 /etc/php.ini
chown root:root /etc/php.ini
场景:不想别人看到 PHP 代码。
示例(ionCube):
php -m | grep ioncube
yum install mod_ssl
配置 SSL 证书(Let’s Encrypt):
certbot --apache
✅ 配置文件用环境变量
✅ php.ini 权限 600
✅ 源码加密用 ionCube
✅ 全程 HTTPS
如果你能具体说明:
我可以给你更精准的命令和示例。