如何在虚拟云主机上搭建tp项目?

HCRM技术_小炮 云主机 2026-01-05 35 3

我来详细介绍一下在虚拟云主机上搭建ThinkPHP项目的步骤,以阿里云ECS为例(其他云服务商类似):

一、云主机准备阶段

购买云主机配置建议

系统选择:CentOS 7+/Ubuntu 20.04+

基础配置:1核2G以上(小型项目足够)

安全组设置:开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)端口

二、环境搭建步骤

1 登录云主机

ssh root@your_server_ip

2.2 安装必要的软件(以CentOS 7为例)

安装PHP 7.4+(TP6+要求)

添加EPEL和Remi仓库
yum install -y epel-release
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
安装PHP及相关扩展
yum install -y php81 php81-php-fpm php81-php-mysqlnd \
php81-php-gd php81-php-mbstring php81-php-xml \
php81-php-curl php81-php-redis php81-php-opcache
创建软链接
ln -sf /usr/bin/php81 /usr/bin/php
ln -sf /usr/sbin/php-fpm81 /usr/sbin/php-fpm

安装Nginx

yum install -y nginx
systemctl start nginx
systemctl enable nginx

安装MySQL/MariaDB

MariaDB
yum install -y mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb
安全设置
mysql_secure_installation
创建数据库
mysql -u root -p
CREATE DATABASE tp_project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'tp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON tp_project.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;
exit

安装Composer

下载Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
移动到全局
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
配置国内镜像(可选但推荐)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

三、部署ThinkPHP项目

1 创建项目目录

mkdir -p /var/www/tp_project
cd /var/www/tp_project

2 安装ThinkPHP

方法1:通过Composer创建(推荐)
composer create-project topthink/think tp_project
或方法2:安装基础版
composer create-project topthink/think tp
进入项目目录
cd tp_project

3 配置Nginx虚拟主机

vim /etc/nginx/conf.d/tp_project.conf

添加以下配置:

server {
    listen 80;
    server_name your_domain.com;  # 或云主机IP
    root /var/www/tp_project/public;
    index index.php index.html index.htm;
    
    access_log /var/log/nginx/tp_access.log;
    error_log /var/log/nginx/tp_error.log;
    
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
            break;
        }
    }
    
    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;
    }
    
    location ~ /\.ht {
        deny all;
    }
}

4 配置ThinkPHP

复制环境配置文件
cp .example.env .env
编辑数据库配置
vim .env

修改数据库配置:

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = tp_project
USERNAME = tp_user
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8mb4
PREFIX = tp_

5 设置目录权限

设置项目目录权限
chown -R nginx:nginx /var/www/tp_project
chmod -R 755 /var/www/tp_project
chmod -R 777 /var/www/tp_project/runtime

6 重启服务

重启Nginx和PHP-FPM
systemctl restart nginx
systemctl restart php81-php-fpm

四、优化配置

1 配置PHP-FPM优化

vim /etc/opt/remi/php81/php-fpm.d/www.conf

修改关键参数:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

2 配置OPcache加速

vim /etc/opt/remi/php81/php.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

五、域名配置(可选)

1 绑定域名

1、在域名管理后台添加A记录指向云主机IP

2、修改Nginx配置中的server_name

2 SSL证书配置(HTTPS)

使用Let's Encrypt免费证书
yum install -y certbot python3-certbot-nginx
certbot --nginx -d your_domain.com

六、快速部署脚本

创建一个一键部署脚本deploy_tp.sh

#!/bin/bash
检查是否为root用户
if [ $(id -u) != "0" ]; then
    echo "Error: 请使用root用户执行此脚本!"
    exit 1
fi
定义变量
PROJECT_NAME="tp_project"
PROJECT_PATH="/var/www/${PROJECT_NAME}"
DOMAIN="your_domain.com"
安装依赖
yum update -y
yum install -y epel-release
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
yum install -y nginx mariadb-server
安装PHP
yum install -y php81 php81-php-fpm php81-php-mysqlnd \
php81-php-gd php81-php-mbstring php81-php-xml \
php81-php-curl
创建项目目录
mkdir -p ${PROJECT_PATH}
cd ${PROJECT_PATH}
安装Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
安装ThinkPHP
composer create-project topthink/think .
配置权限
chown -R nginx:nginx ${PROJECT_PATH}
chmod -R 755 ${PROJECT_PATH}
chmod -R 777 ${PROJECT_PATH}/runtime
重启服务
systemctl restart nginx
systemctl restart php81-php-fpm
systemctl restart mariadb
echo "ThinkPHP项目部署完成!"
echo "访问地址:http://${DOMAIN}"

七、常见问题解决

502 Bad Gateway

检查PHP-FPM状态
systemctl status php81-php-fpm
检查Nginx错误日志
tail -f /var/log/nginx/error.log

数据库连接失败

检查MySQL服务
systemctl status mariadb
检查防火墙
firewall-cmd --list-all
测试连接
mysql -u tp_user -p -h 127.0.0.1 tp_project

目录权限问题

修复SELinux(如果启用)
setsebool -P httpd_can_network_connect 1
restorecon -Rv /var/www/

八、后续维护建议

1、备份策略:定期备份数据库和代码

2、日志监控:设置日志轮转和监控

3、安全加固:定期更新系统和组件

4、性能监控:安装监控工具如htop、nmon

九、宝塔面板快速部署(新手推荐)

如果觉得命令行操作复杂,可以使用宝塔面板:

安装宝塔面板(CentOS)
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh
安装后通过面板地址登录,一键安装:
1. LNMP环境
2. 创建站点
3. 上传TP代码
4. 配置伪静态(选择thinkphp规则)

这样你的ThinkPHP项目就成功部署到云主机了!根据实际需求调整配置即可。

文章摘自:https://idc.huochengrm.cn/zj/22791.html

评论

精彩评论
  • 2026-01-21 00:11:10

    在虚拟云主机上搭建TP项目,需先创建虚拟机并安装操作系统和必要的开发环境,接着下载和解压相关软件与框架至服务器指定目录;配置数据库、缓存等组件并确保网络连接正常后启动服务进程即可开始项目开发部署工作流程了!

  • 2026-04-20 17:04:27

    在虚拟云主机上搭建TP项目,需安装PHP、MySQL等环境,配置项目文件,确保代码运行正常。

  • 2026-05-20 12:43:09

    在虚拟云主机上搭建TP项目,首先安装LAMP环境,配置数据库,然后下载TP框架源码,上传至主机,通过配置文件设置数据库连接,最后在浏览器访问即可看到TP项目运行界面。