在服务器上搭建PHP环境详细指南

前期准备
(一)确认系统信息
在开始搭建之前,需要先了解服务器所使用的操作系统类型及版本,常见的如CentOS、Ubuntu等Linux发行版,可以通过命令uname -a
来查看详细的系统信息,包括内核版本等内容,这将有助于后续选择合适的软件包管理工具以及对应的安装方式。
操作系统 | 常用软件包管理工具 | 示例命令格式 |
---|---|---|
CentOS | yum | yum install [package_name] |
Ubuntu/Debian | apt-get | apt-get install [package_name] |
(二)更新系统软件源
为确保能获取到最新稳定的软件组件,建议首先更新系统的软件源缓存,对于基于yum的系统(如CentOS),可执行yum update -y
;而对于使用apt系列的系统(像Ubuntu),则运行apt-get update
,此操作会同步本地的软件包索引与远程仓库的数据,保证后续安装的是可用且较新的版本。
安装Web服务器(以Apache为例)
(一)安装Apache HTTP服务器
- CentOS系统:使用
yum install httpd -y
命令进行安装,该命令会自动解决依赖关系并完成Apache服务的部署,安装完成后,通过systemctl start httpd
启动服务,并用systemctl enable httpd
设置开机自启。 - Ubuntu系统:对应的命令是
apt-get install apache2 -y
,同样地,启动和启用服务分别使用service apache2 start
与systemctl enable apache2
。
(二)配置防火墙放行端口
默认情况下,防火墙可能会阻止外部对Web服务的访问,通常HTTP服务使用的是80端口(HTTPS为443),以下是开放80端口的方法:
- CentOS:
firewall-cmd --zone=public --add-port=80/tcp --permanent
,然后重载防火墙规则firewall-cmd --reload
。 - Ubuntu:
ufw allow 80/tcp
。
可以通过浏览器输入服务器公网IP地址来验证是否成功安装并运行了Apache服务器,如果看到“It works!”页面,则表示这部分配置正确。

安装PHP解释器
(一)添加EPEL存储库(针对CentOS)
由于官方源中的PHP版本可能不是最新的,我们可以添加Extra Packages for Enterprise Linux (EPEL)仓库来获得更多选择,执行以下命令添加EPEL源:
yum install epel-release -y
(二)安装PHP及其扩展模块
- CentOS:使用
yum install php php-mysqlnd php-gd php-mbstring php-xmlrpc php-soap php-bcmath -y
一次性安装主程序以及一些常用的扩展模块。php-mysqlnd
用于支持MySQL数据库连接,php-gd
处理图像相关功能等。 - Ubuntu:相应的命令为
apt-get install php libapache2-mod-php php-mysql php-gd php-mbstring php-xmlrpc php-soap php-bcmath -y
,这里额外安装了libapache2-mod-php
以便让Apache能够解析PHP代码。
安装完毕后,重启Apache使新安装的PHP模块生效:
- CentOS:
systemctl restart httpd
- Ubuntu:
service apache2 restart
再次创建一个简单的PHP测试文件(例如info.php
如下:
<?php phpinfo(); ?>
将其放置在Apache默认文档根目录下(一般是/var/www/html/
),然后在浏览器中访问该文件路径,若能正常显示PHP的配置信息页面,说明PHP已成功集成到Web服务器中。

配置虚拟主机(可选)
当有多个域名指向同一台服务器时,可以通过配置虚拟主机实现不同站点间的隔离,以下是一个简单的基于名称的虚拟主机配置示例(适用于Apache):
编辑配置文件(路径可能因系统而异,常见于/etc/httpd/conf/httpd.conf
或/etc/apache2/sites-available/000-default.conf
):
<VirtualHost :80> ServerName www.example1.com DocumentRoot "/var/www/html/site1" ErrorLog logs/example1_error.log </VirtualHost> <VirtualHost :80> ServerName www.example2.com DocumentRoot "/var/www/html/site2" ErrorLog logs/example2_error.log </VirtualHost>
保存修改后,重新加载Apache配置:
- CentOS:
apachectl configtest && systemctl restart httpd
- Ubuntu:
apachectl configtest && service apache2 restart
相关问题与解答
问题1:如何更改PHP的时间戳时区设置?
解答:要更改PHP的时间戳时区,可以在PHP配置文件(通常是/etc/php.ini
)中找到date.timezone
指令并进行修改,若要设置为上海时区,可将该行改为date.timezone = Asia/Shanghai
,修改完成后,记得重启Web服务器使更改生效,也可以在单个脚本中使用date_default_timezone_set('Asia/Shanghai');
函数临时改变当前脚本内的时区设置。
问题2:为什么访问PHP页面出现下载而不是解析执行?
解答:出现这种情况可能是由于以下几个原因导致的:一是Apache没有正确加载PHP模块,检查Apache配置文件中是否有类似LoadModule php_module modules/libphp7.so
这样的加载语句;二是文件扩展名不正确,确保你的PHP文件是以.php
三是权限问题,确认Web服务器用户对PHP文件所在目录有足够的读取权限,针对这些问题逐一排查即可解决问题