选择服务器环境与准备工作
在开始配置PHP之前,首先需要选择合适的服务器环境。对于PHP应用,最主流的两种环境组合是LNMP(Linux, Nginx, MySQL/MariaDB, PHP)和LAMP(Linux, Apache, MySQL/MariaDB, PHP)。Nginx以其高并发处理能力著称,而Apache则以其模块丰富和兼容性好闻名。您可以根据项目需求和熟悉程度进行选择。
在购买并登录云服务器后,首要任务是更新系统软件包以确保安全性和稳定性。以CentOS和Ubuntu这两种常见的Linux发行版为例,操作命令有所不同。
- CentOS / Rocky Linux:
sudo yum update -y
# 或者对于新版系统
sudo dnf update -y - Ubuntu / Debian:
sudo apt update
sudo apt upgrade -y
完成系统更新后,便可以开始安装Web服务器和PHP。
安装与配置Web服务器及PHP
本步骤将以LNMP环境在CentOS系统上的配置为例进行说明。
第一步:安装Nginx
Nginx通常位于默认的软件仓库中,可以直接安装。
sudo yum install nginx -y
安装完成后,启动Nginx并设置开机自启。
sudo systemctl start nginx
sudo systemctl enable nginx
在浏览器中访问你的服务器IP地址,应该能看到Nginx的默认欢迎页面。
第二步:安装PHP
现代Linux系统通常提供了多个PHP版本。你需要启用额外的软件仓库(如EPEL和Remi)来安装较新的版本。
sudo yum install epel-release -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
接下来,你可以列出可用的PHP版本并选择安装,例如安装PHP 8.0。
sudo yum module list php
sudo yum module enable php:remi-8.0 -y
sudo yum install php php-fpm php-mysqlnd -y
这里安装了PHP核心、PHP-FPM(FastCGI进程管理器)以及用于连接MySQL的扩展。
第三步:配置Nginx以支持PHP
关键的一步是告诉Nginx如何处理PHP文件。你需要编辑Nginx的服务器块(虚拟主机)配置文件。
sudo vi /etc/nginx/conf.d/default.conf
在server块中,找到处理请求的location部分,确保对.php文件的处理指向PHP-FPM。一个基本的配置示例如下:
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
配置修改后,重启Nginx和PHP-FPM服务以使更改生效。
sudo systemctl restart nginx
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
测试PHP配置与安装常用扩展
为了验证PHP是否已正确安装和配置,可以创建一个简单的PHP信息页面。
sudo echo “” > /usr/share/nginx/html/info.php
现在,在浏览器中访问 http://你的服务器IP/info.php。如果配置成功,你将看到一个显示详尽PHP配置信息的页面。出于安全考虑,测试完成后请务必删除此文件。
sudo rm /usr/share/nginx/html/info.php
根据你的项目需求,你可能还需要安装额外的PHP扩展。例如,为WordPress或Laravel安装常用扩展:
- php-gd: 用于图像处理。
- php-xml: 用于XML解析。
- php-curl: 用于通过HTTP请求与其它服务器通信。
- php-mbstring: 用于处理多字节字符串。
- php-zip: 用于处理压缩文件。
可以使用以下命令批量安装:
sudo yum install php-gd php-xml php-curl php-mbstring php-zip -y
安装任何新扩展后,都需要重启PHP-FPM服务。
安全加固与性能优化
一个基础的PHP环境搭建完成后,安全与性能是不可忽视的环节。
安全加固建议:
- 禁用危险函数: 编辑
php.ini文件(通常位于/etc/php.ini),找到disable_functions项,禁用如exec,system,shell_exec,passthru等可能带来安全风险的函数。 - 限制文件上传: 在
php.ini中设置file_uploads = On,并合理设置upload_max_filesize和post_max_size。 - 隐藏PHP版本信息: 在
php.ini中设置expose_php = Off,防止在HTTP头中泄露PHP版本。 - 配置防火墙: 确保云服务器的安全组和系统防火墙(如
firewalld或ufw)只开放必要的端口(如80, 443, 22)。
性能优化建议:
- 调整PHP-FPM进程池: 根据服务器内存和负载,编辑
/etc/php-fpm.d/www.conf文件,调整pm.max_children,pm.start_servers等参数。 - 启用OPcache: OPcache通过将预编译的PHP脚本字节码存储在内存中来大幅提升性能。确保已安装
php-opcache并在php.ini中启用它。 - 配置Nginx缓存: 对于静态资源,可以在Nginx中配置浏览器缓存,减少重复请求。
常见问题与解决方案(FAQ)
在配置过程中,你可能会遇到以下常见问题:
1. 访问PHP文件时,浏览器直接下载文件或显示源代码。
这通常意味着Nginx没有正确解析PHP文件。
- 检查: Nginx配置文件中是否正确配置了PHP处理块(
location ~ \.php$),并且fastcgi_pass指向了正确的地址和端口(通常是127.0.0.1:9000)。 - 检查: PHP-FPM服务是否正在运行。
sudo systemctl status php-fpm - 检查: Nginx和PHP-FPM所使用的用户(如
nginx或apache)是否有权读取PHP文件。
2. 页面显示“502 Bad Gateway”错误。
这通常表示Nginx无法连接到PHP-FPM后端。
- 检查: PHP-FPM服务是否启动。
sudo systemctl status php-fpm - 检查: Nginx配置中的
fastcgi_pass指令是否与PHP-FPM配置文件中监听的地址和端口一致(检查/etc/php-fpm.d/www.conf中的listen设置)。
3. 安装的PHP扩展未生效。
- 检查: 扩展是否确实成功安装。
- 操作: 安装扩展后,必须重启PHP-FPM服务。
sudo systemctl restart php-fpm - 检查: 可以在
phpinfo页面中搜索扩展名,确认其是否已加载。
4. 文件上传大小受限。
- 修改: 需要同时调整
php.ini中的upload_max_filesize和post_max_size两个参数,并且post_max_size的值应大于upload_max_filesize。 - 操作: 修改后,重启PHP-FPM服务。
通过以上步骤和问题排查指南,你应该能够成功在云服务器上配置一个稳定、安全且高效的PHP运行环境。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/38472.html