LNMP (Linux + Nginx + MySQL + PHP) 是一种常见的Web服务器架构组合。以下是配置PHP环境的详细步骤:
sudo apt update
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip
sudo yum install epel-release
sudo yum install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip
/etc/php/{version}/fpm/php.ini
(主配置文件)/etc/php/{version}/fpm/pool.d/www.conf
(进程池配置); 在php.ini中
max_execution_time = 30
memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
在Nginx的server配置中添加PHP处理:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 启动PHP-FPM
sudo systemctl start php7.4-fpm
# 设置开机启动
sudo systemctl enable php7.4-fpm
# 重启PHP-FPM
sudo systemctl restart php7.4-fpm
# 检查状态
sudo systemctl status php7.4-fpm
创建测试文件 /var/www/html/info.php
:
<?php phpinfo(); ?>
访问 http://your-server-ip/info.php
应该能看到PHP信息页面。
ini
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
ini
open_basedir = /var/www/html:/tmp
问题1:502 Bad Gateway - 检查PHP-FPM是否运行 - 检查Nginx配置中的fastcgi_pass路径是否正确 - 检查sock文件的权限
问题2:PHP脚本不执行 - 确保Nginx配置正确处理.php文件 - 检查文件权限(www-data用户需要有读取权限)
问题3:内存不足 - 调整php.ini中的memory_limit值 - 优化PHP-FPM进程池配置
按照以上步骤配置后,您的LNMP环境中的PHP应该可以正常工作。根据实际应用需求,可能还需要安装额外的PHP扩展模块。