凌峰创科服务平台

linux配置php服务器

在Linux系统中配置PHP服务器是许多开发者和系统管理员的基本技能,本文将详细介绍在主流Linux发行版(如Ubuntu/Debian和CentOS/RHEL)上通过Apache和Nginx两种Web服务器搭建PHP环境的完整步骤,包括安装配置、安全优化及常见问题处理。

linux配置php服务器-图1
(图片来源网络,侵删)

环境准备与系统更新

在开始配置前,确保系统已更新至最新状态,避免因软件包版本过旧导致兼容性问题,以Ubuntu/Debian为例,执行以下命令:

sudo apt update && sudo apt upgrade -y

对于CentOS/RHEL系统,需先安装EPEL仓库,再更新系统:

sudo yum install epel-release -y && sudo yum update -y

确保系统已安装必要的编译工具(如build-essentialgcc),后续编译安装PHP扩展时可能需要用到。

通过Apache配置PHP服务器

Apache是一款成熟的开源Web服务器,与PHP的集成历史悠久,配置简单。

linux配置php服务器-图2
(图片来源网络,侵删)

安装Apache与PHP

以Ubuntu/Debian为例,使用apt安装:

sudo apt install apache2 php libapache2-mod-php -y

对于CentOS/RHEL系统,使用yumdnf

sudo yum install httpd php php-mysql -y  # CentOS 7及以下
sudo dnf install httpd php php-mysql -y  # CentOS 8+

安装完成后,启动Apache并设置开机自启:

sudo systemctl start apache2  # Ubuntu/Debian为apache2,CentOS/RHEL为httpd
sudo systemctl enable apache2

配置PHP与Apache集成

Apache通过模块方式加载PHP,Ubuntu/Debian默认已安装libapache2-mod-php模块,无需额外配置,CentOS/RHEL需确保php包包含mod_php模块(较新版本默认集成)。

验证PHP模块是否加载:

sudo apache2ctl -M | grep php  # Ubuntu/Debian
sudo httpd -M | grep php       # CentOS/RHEL

若输出包含php7_module(版本号可能不同),则表示模块已正确加载。

测试PHP页面

创建PHP测试文件,默认网站目录为/var/www/html(Ubuntu/Debian)或/var/www/html(CentOS/RHEL):

sudo nano /var/www/html/info.php
<?php
phpinfo();
?>

保存后,在浏览器访问http://服务器IP/info.php,若显示PHP详细信息页面,则说明配置成功。

注意:生产环境中需删除info.php文件,避免泄露服务器敏感信息。

通过Nginx配置PHP服务器

Nginx以其高性能、低资源占用著称,常用于高并发场景,需通过FastCGI与PHP集成(通常搭配PHP-FPM使用)。

安装Nginx与PHP-FPM

Ubuntu/Debian系统:

sudo apt install nginx php-fpm -y

CentOS/RHEL系统:

sudo yum install nginx php-fpm -y  # CentOS 7及以下
sudo dnf install nginx php-fpm -y  # CentOS 8+

安装完成后,启动Nginx和PHP-FPM并设置开机自启:

sudo systemctl start nginx php-fpm
sudo systemctl enable nginx php-fpm

配置Nginx支持PHP

Nginx需通过fastcgi_pass将PHP请求转发给PHP-FPM处理,修改默认站点配置文件/etc/nginx/sites-available/default(Ubuntu/Debian)或/etc/nginx/conf.d/default.conf(CentOS/RHEL):

sudo nano /etc/nginx/sites-available/default

找到location ~ \.php$部分,确保配置如下:

location ~ \.php$ {
    root           /var/www/html;
    fastcgi_pass   unix:/var/run/php/php7.4-fpm.sock;  # Ubuntu/Debian,路径可能因版本不同
    # fastcgi_pass   127.0.0.1:9000;                  # CentOS/RHEL或TCP方式
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

注意fastcgi_pass的路径需与PHP-FPM配置一致,Ubuntu/Debian的PHP-FPM套接字文件通常位于/var/run/php/php{版本}-fpm.sock,可通过ls /var/run/php/查看;CentOS/RHEL默认使用TCP(0.0.1:9000)。

修改PHP-FPM配置(可选)

若需调整PHP-FPM进程数,编辑/etc/php/{版本}/fpm/pool.d/www.conf(Ubuntu/Debian)或/etc/php-fpm.d/www.conf(CentOS/RHEL),修改pmpm.max_childrenpm.start_servers等参数,优化性能:

pm = dynamic
pm.max_children = 50
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

修改后重启PHP-FPM:

sudo systemctl restart php-fpm

测试PHP页面

与Apache类似,创建/var/www/html/info.php<?php phpinfo(); ?>,然后在浏览器访问http://服务器IP/info.php,确认PHP正常解析。

PHP常用配置与优化

修改PHP配置文件

PHP主配置文件为/etc/php/{版本}/php.ini(Ubuntu/Debian)或/etc/php.ini(CentOS/RHEL),可根据需求调整以下参数:

参数 默认值 推荐值 说明
upload_max_filesize 2M 32M 上传文件最大大小
post_max_size 8M 32M POST数据最大大小
memory_limit 128M 256M PHP脚本内存限制
max_execution_time 30 300 脚本最大执行时间(秒)
date.timezone Asia/Shanghai 设置时区

修改后需重启Web服务器(Apache/Nginx)和PHP-FPM(如修改了PHP-FPM配置)使配置生效。

安装PHP扩展

通过apt(Ubuntu/Debian)或yum/dnf(CentOS/RHEL)安装常用扩展,如MySQL支持、GD库等:

# Ubuntu/Debian
sudo apt install php-mysql php-gd php-curl php-xml php-mbstring -y
# CentOS/RHEL
sudo yum install php-mysqlnd php-gd php-curl php-xml php-mbstring -y

安装后重启PHP-FPM:sudo systemctl restart php-fpm

安全配置建议

  1. 禁用危险函数:在php.ini中设置disable_functions,禁用execsystemshell_exec等可能被恶意利用的函数。
  2. 限制文件访问权限:网站目录/var/www/html权限建议设为755,文件权限设为644,避免Web服务器用户以外的用户修改文件。
  3. 使用HTTPS:通过Let's Encrypt免费证书配置HTTPS,加密数据传输。
  4. 定期更新软件:及时更新Apache/Nginx、PHP及扩展版本,修复安全漏洞。

常见问题排查

  1. 页面显示PHP代码而非解析结果
    • Apache:检查libapache2-mod-php是否安装,模块是否加载。
    • Nginx:检查fastcgi_pass路径是否正确,PHP-FPM是否运行。
  2. 上传文件失败:检查php.iniupload_max_filesizepost_max_size是否足够,网站目录是否有写入权限。

相关问答FAQs

Q1: 如何在Linux系统中查看PHP版本?
A1: 通过命令行执行php -vphpinfo()查看,若系统默认PHP命令不可用,可尝试php{版本} -v(如php7.4 -v),或检查/usr/bin/php路径。

Q2: 配置完成后,访问PHP页面显示404错误怎么办?
A2: 首先确认文件路径是否正确(默认为/var/www/html),检查Nginx/Apache的网站配置中root参数是否指向正确目录,以及文件权限是否为644、目录权限为755,对于Nginx,还需检查location规则是否匹配PHP文件后缀。

分享:
扫描分享到社交APP
上一篇
下一篇