在服务器上部署PHP网站,核心流程就是:准备服务器环境、上传网站代码、配置Web服务器和数据库、设置域名与SSL证书,最后完成安全与性能调优,只要按顺序操作,普通开发者也能在半小时内完成上线。
服务器部署php网站教程:从零开始的环境准备
选择服务器与操作系统
部署PHP网站的第一步是选择硬件载体,国内用户通常面临云服务器和物理服务器两种选择,对于个人站长或中小企业,云服务器是主流方案,简米云、酷番云、华为云都提供按需付费的实例,操作系统方面,CentOS 7和Ubuntu 22.04 LTS是两类最常见的选择,前者偏重稳定,后者软件包更新更快。
行业共识认为,2核4G配置的云服务器可以支撑日均几千次访问的PHP网站,如果预算有限,1核2G也能跑动轻量级应用,但并发处理能力会明显受限。
远程连接服务器
拿到服务器后,你需要通过SSH工具连接,Windows用户推荐使用Xshell或PuTTY,macOS用户直接打开终端即可,连接命令格式如下:
ssh root@你的服务器IP地址
首次连接会提示确认指纹,输入yes后回车,再输入root密码即可登录,登录成功后,你会看到命令行提示符,这代表已经进入服务器系统。
php网站部署到服务器的具体步骤
安装LNMP环境
LNMP是Linux + Nginx + MySQL + PHP的组合,相比Apache,Nginx在处理高并发静态资源时性能更优,这里给出Ubuntu系统的安装命令:
apt update apt install nginx mysql-server php-fpm php-mysql php-curl php-json php-cgi
安装过程中会询问是否继续,输入y确认,安装完成后,检查各服务状态:
systemctl status nginx systemctl status mysql systemctl status php-fpm
如果显示active (running),说明服务已正常启动,CentOS系统则使用yum install命令,软件包名称略有差异,比如PHP版本默认是7.2,需要额外配置EPEL和Remi仓库才能获取更高版本。
上传网站源码
代码上传有三种常用方式:
- Git拉取:在服务器上执行
git clone命令,适合有代码仓库的项目 - FTP上传:使用FileZilla等工具,适合一次性上传全部文件
- 宝塔面板:通过网页端拖拽上传,适合不熟悉命令行的用户
代码放置目录通常在/var/www/html或/usr/share/nginx/html,上传后需要给目录设置权限,让PHP-FPM进程可以读写:
chown -R www-data:www-data /var/www/html chmod -R 755 /var/www/html
配置Nginx站点
在/etc/nginx/sites-available/目录下新建配置文件,写入以下内容:
server {
listen 80;
server_name 你的域名.com;
root /var/www/html;
index index.php index.html;
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
保存后建立软链接到sites-enabled目录,然后测试配置并重载:
ln -s /etc/nginx/sites-available/你的配置 /etc/nginx/sites-enabled/ nginx -t systemctl reload nginx
创建数据库
PHP网站大多依赖MySQL存储数据,进入MySQL命令行:
mysql -u root -p
执行SQL语句创建数据库和专用用户:
CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER '用户名'@'localhost' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON 数据库名. TO '用户名'@'localhost'; FLUSH PRIVILEGES;
之后在网站配置文件中填写数据库连接信息,比如WordPress的wp-config.php或Laravel的.env文件。
服务器配置php网站需要注意的安全问题
修改默认SSH端口
默认的22端口每天会遭受大量自动化扫描攻击,编辑/etc/ssh/sshd_config,将Port 22改为高位端口,比如Port 22026,然后重启SSH服务。修改前务必确保防火墙放行新端口,否则会把自己锁在门外。
设置PHP安全参数
编辑php.ini配置文件,常用安全调整如下:
expose_php = Off:隐藏PHP版本号disable_functions = exec,system,passthru,shell_exec:禁用危险函数upload_max_filesize = 20M:根据业务需求调整上传大小post_max_size = 20M:对应POST请求数据限制
保存后重启PHP-FPM生效。
配置防火墙规则
使用UFW或firewalld只放行必要端口:
ufw allow 80/tcp ufw allow 443/tcp ufw allow 22026/tcp ufw enable
对于HTTPS流量,还需要在nginx配置中启用SSL证书。Let‘s Encrypt的免费证书足够大多数场景使用,通过certbot工具可以自动申请和续期。
php网站部署过程中的常见故障排查
页面显示空白或500错误
这种状况在多数情况下与PHP语法错误或文件权限有关,查看错误日志定位问题:
tail -100 /var/log/nginx/error.log tail -100 /var/log/php8.1-fpm.log
如果是权限问题,重新执行chown和chmod命令,如果是PHP代码错误,根据日志中的文件路径和行号修改代码。
数据库连接失败
检查三个要素:数据库服务是否运行、账号密码是否正确、配置文件路径是否写对,执行以下命令验证:
systemctl status mysql mysql -u 用户名 -p -h localhost 数据库名
伪静态配置失效
ThinkPHP、Laravel等框架依赖伪静态规则,在nginx的location块中添加:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
WordPress则加上固定链接规则的rewrite配置。
服务器部署php网站需要什么配置才算够用
这取决于网站类型和预期流量,一个简单的企业展示站,1核1G内存的入门实例即可运行,包含商城功能或API接口的网站,2核4G是合理起点,如果计划做推广引流,建议直接上4核8G并开启OPcache加速。
数据库和Web分离部署是流量增长后的常规操作,将MySQL迁移到独立服务器,能有效降低单一节点的负载压力。
用宝塔面板还是手动配置
宝塔面板(BT Panel)在国内用户中流行度较高,它提供图形化界面,点击鼠标就能完成环境安装、站点创建、SSL证书配置等操作,好处是上手快,坏处是服务器资源占用偏高,且对系统底层控制力弱。
手动配置的优点是每项服务都按需定制,对故障排查和性能调优更有帮助。如果你是初学者,先用宝塔跑通流程,再逐步学习手工配置,这个路径比较平滑。
Q&A:服务器发布php网站常见疑问
服务器部署php网站的流程大约需要多长时间
首次操作一般需要2到3小时,其中环境安装和配置占大头,熟悉流程后,后续部署同类网站可以压缩到30分钟以内,如果使用镜像市场预装LNMP环境的系统盘,时间还能进一步缩短。
域名必须备案才能访问服务器上的PHP网站吗
服务器在中国大陆地区时,域名必须完成ICP备案才能通过80端口对外提供服务,备案流程通常需要7到20个工作日,如果使用香港或海外服务器,则无需备案,但访问速度可能受网络链路影响,据工信部数据,备案审核周期近年已明显缩短。
PHP网站从旧服务器迁移到新服务器怎么操作
先在旧服务器打包网站目录和数据库,使用mysqldump导出SQL文件,新服务器按上文步骤装好环境后,将备份文件上传并解压,导入数据库,再修改配置文件中IP或域名信息,最后切换域名解析,等待生效即可完成迁移。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/567091.html




