内网服务器部署php项目需确保apache/nginx监听0.0.0.0:80、开放防火墙80端口、关闭selinux限制、设置正确文件权限(755)及目录属主,局域网设备方可通过http://服务器ip访问。

内网服务器能跑 PHP,但默认不对外提供 Web 服务——关键不是“能不能装”,而是“装完怎么让局域网其他设备打开浏览器就能访问”。下面直奔实操要点。
Apache 或 Nginx 哪个更省事?
对纯内网开发环境来说,Apache 更少踩坑:它自带 mod_php,装完就能解析 .php 文件,不用额外配 PHP-FPM 进程和 socket 路径。Nginx 虽轻量,但必须手动加 fastcgi_pass 指向正确的 php-fpm.sock(比如 unix:/var/run/php/php8.1-fpm.sock),路径错一个字符就 502。
如果你用的是 CentOS 7 / 银河麒麟 V10 等 yum 系统:
-
yum install httpd php→ Apache + 内置 PHP 模块一步到位 systemctl start httpd && systemctl enable httpd- 确认
/var/www/html/下放个info.php(内容为<?php phpinfo(); ?>),本机用curl http://localhost/info.php能输出信息,说明 PHP 已就绪
为什么局域网其他电脑打不开 http://192.168.x.x/?
常见原因不是代码问题,而是三个“拦路虎”:
- 防火墙挡住了 80 端口:
firewall-cmd --permanent --add-port=80/tcp(CentOS/RHEL)或ufw allow 80(Ubuntu),然后firewall-cmd --reload - SELinux 强制拦截(尤其银河麒麟、CentOS):
setsebool -P httpd_can_network_connect 1,否则 Apache 连自己本地的 MySQL 都可能被拒 - Web 服务器绑定错了地址:检查
/etc/httpd/conf/httpd.conf中的Listen行,别写成Listen 127.0.0.1:80——要改成Listen 80或Listen 0.0.0.0:80
项目放哪?权限怎么设才不报 403?
别把项目直接扔进 /var/www/html/ 根目录下再改名访问,容易混权限。推荐做法:
- 新建项目目录:
mkdir -p /var/www/myapp - 把代码拷进去,确保所有文件属主是
apache(CentOS)或www-data(Ubuntu):chown -R apache:apache /var/www/myapp - 给目录加执行权限(关键!):
chmod -R 755 /var/www/myapp;755不是保守,是必须——Web 服务器要“进入”目录才能读文件 - 如果要用虚拟主机隔离多个项目,直接在
/etc/httpd/conf.d/myapp.conf里写:<virtualhost><br> DocumentRoot /var/www/myapp<br><directory><br> Require all granted<br> AllowOverride All<br></directory><br></virtualhost>
然后systemctl reload httpd
银河麒麟或无外网环境怎么装 PHP?
不能 yum install php 就报“无法连接镜像源”?你得先挂本地 ISO 镜像做源:
- 确认架构:
uname -m(x86_64 还是 aarch64),下错镜像包后续全废 - 挂载 ISO:
mount -t iso9660 /path/to/kylin-v10.iso /mnt/kylin-iso - 配 repo:
/etc/yum.repos.d/kylin-local.repo中baseurl必须是file:///mnt/kylin-iso(三个斜杠,少一个就失败) - 清缓存:
yum clean all && yum makecache——这步漏掉,yum 仍会查旧缓存,提示“No package php available”
内网部署最耗时的环节从来不是写代码,而是确认镜像架构、校验挂载路径、反复 reload 服务看日志——这些细节没对,php -v 成功也没用,httpd 就是不响应请求。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











