php网站怎么搭建域名

买完域名和服务器,站搭把PHP网站跑起来,建域最难的站搭一步其实是域名解析。很多人卡在这儿:代码写完了,建域数据库连上了,站搭浏览器一输域名——404或者“无法访问此网站”。建域问题不在PHP,站搭在DNS。建域

我拿一个真实场景说。站搭上个月帮朋友部署一个WordPress站点,建域服务器是站搭阿里云ECS,域名在腾讯云买的建域。他之前折腾了一整天,站搭域名死活打不开。建域我上去一看,站搭A记录填的是内网IP,不是公网IP。改完,十分钟搞定。这种事太常见了。

域名解析:A记录指向哪里

域名注册商那里会给你一个DNS管理面板。进去之后,添加一条A记录。主机记录填 @ 表示裸域名,填 www 表示带www的子域名。记录值填你服务器的公网IP。TTL默认600秒就行,不用动。

有个细节:如果你服务器在国内,域名没备案,80和443端口会被拦截。浏览器会转圈然后超时。这不是解析的问题,是备案的问题。我一般建议新手先用香港或海外服务器练手,免备案,省心。

Web服务器配置:让PHP文件被正确执行

域名解析通了,请求到了服务器,接下来看Nginx或Apache怎么处理。以Nginx为例,站点配置文件里得有这一段:

server {  listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/html; index index.php index.html; location ~ \.php$ {  fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

server_name 写你的域名。root 指向网站根目录。fastcgi_pass 指向PHP-FPM的监听地址。这三行错了任何一个,要么显示PHP源码,要么502。

我见过有人把 root 写成 /var/www/html/index.php,这会导致路径拼接错误。Nginx的root应该指向目录,不是文件。

PHP-FPM与文件权限

PHP-FPM跑起来之后,它需要一个用户身份来读取文件。Nginx通常用 www-data 用户。你的网站目录权限得让这个用户能读。我习惯这样设:

chown -R www-data:www-data /var/www/html chmod -R 755 /var/www/html

如果PHP需要写文件,比如上传目录或者缓存目录,单独给 775 或者 777。但别整个项目都给777,那是给自己挖坑。

一个容易忽略的点:DNS缓存

改完解析记录,别急着刷新浏览器。本地DNS缓存可能还是旧的。Windows上 ipconfig /flushdns,Mac上 sudo dscacheutil -flushcache。或者直接用手机4G网络测试,手机网络不走你本地的DNS缓存。

还有,域名注册商那边改NS服务器需要时间生效,通常几分钟到几小时。如果你刚把NS从默认改成Cloudflare之类的,等半小时再试。

HTTPS:不是必须但迟早要配

现在浏览器对HTTP站点会标“不安全”。用Let's Encrypt签个免费证书,Certbot一条命令的事:

certbot --nginx -d yourdomain.com -d www.yourdomain.com

它会自动改Nginx配置,加上443监听和证书路径。证书三个月过期,Certbot会自己续,不用管。

整个过程的核心就三件事:DNS把域名指到服务器IP,Web服务器把请求路由到PHP-FPM,PHP-FPM有权限读文件。任何一环断了,域名都打不开。排查的时候从外到内:先ping域名看解析对不对,再curl本地看Nginx通不通,最后看PHP-FPM进程在不在。

别被那些“一键部署面板”迷惑。宝塔确实省事,但出了问题你还是得知道底层在干什么。我建议至少手动配一次Nginx+PHP-FPM,以后再上面板,心里有底。