菜鸟科技网

服务器上搭建php环境

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

服务器上搭建php环境-图1
(图片来源网络,侵删)

前期准备

(一)确认系统信息

在开始搭建之前,需要先了解服务器所使用的操作系统类型及版本,常见的如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服务器

  1. CentOS系统:使用yum install httpd -y命令进行安装,该命令会自动解决依赖关系并完成Apache服务的部署,安装完成后,通过systemctl start httpd启动服务,并用systemctl enable httpd设置开机自启。
  2. Ubuntu系统:对应的命令是apt-get install apache2 -y,同样地,启动和启用服务分别使用service apache2 startsystemctl enable apache2

(二)配置防火墙放行端口

默认情况下,防火墙可能会阻止外部对Web服务的访问,通常HTTP服务使用的是80端口(HTTPS为443),以下是开放80端口的方法:

  • CentOSfirewall-cmd --zone=public --add-port=80/tcp --permanent,然后重载防火墙规则firewall-cmd --reload
  • Ubuntuufw allow 80/tcp

可以通过浏览器输入服务器公网IP地址来验证是否成功安装并运行了Apache服务器,如果看到“It works!”页面,则表示这部分配置正确。

服务器上搭建php环境-图2
(图片来源网络,侵删)

安装PHP解释器

(一)添加EPEL存储库(针对CentOS)

由于官方源中的PHP版本可能不是最新的,我们可以添加Extra Packages for Enterprise Linux (EPEL)仓库来获得更多选择,执行以下命令添加EPEL源:

yum install epel-release -y

(二)安装PHP及其扩展模块

  1. CentOS:使用yum install php php-mysqlnd php-gd php-mbstring php-xmlrpc php-soap php-bcmath -y一次性安装主程序以及一些常用的扩展模块。php-mysqlnd用于支持MySQL数据库连接,php-gd处理图像相关功能等。
  2. 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模块生效:

  • CentOSsystemctl restart httpd
  • Ubuntuservice apache2 restart

再次创建一个简单的PHP测试文件(例如info.php如下:

<?php phpinfo(); ?>

将其放置在Apache默认文档根目录下(一般是/var/www/html/),然后在浏览器中访问该文件路径,若能正常显示PHP的配置信息页面,说明PHP已成功集成到Web服务器中。

服务器上搭建php环境-图3
(图片来源网络,侵删)

配置虚拟主机(可选)

当有多个域名指向同一台服务器时,可以通过配置虚拟主机实现不同站点间的隔离,以下是一个简单的基于名称的虚拟主机配置示例(适用于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配置:

  • CentOSapachectl configtest && systemctl restart httpd
  • Ubuntuapachectl 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文件所在目录有足够的读取权限,针对这些问题逐一排查即可解决问题

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