我来详细介绍一下在虚拟云主机上搭建ThinkPHP项目的步骤,以阿里云ECS为例(其他云服务商类似):
一、云主机准备阶段
系统选择:CentOS 7+/Ubuntu 20.04+
基础配置:1核2G以上(小型项目足够)
安全组设置:开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)端口
二、环境搭建步骤
ssh root@your_server_ip
2.2 安装必要的软件(以CentOS 7为例)
添加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
yum install -y nginx systemctl start nginx systemctl enable nginx
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
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项目
mkdir -p /var/www/tp_project cd /var/www/tp_project
方法1:通过Composer创建(推荐) composer create-project topthink/think tp_project 或方法2:安装基础版 composer create-project topthink/think tp 进入项目目录 cd tp_project
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;
}
}复制环境配置文件 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_
设置项目目录权限 chown -R nginx:nginx /var/www/tp_project chmod -R 755 /var/www/tp_project chmod -R 777 /var/www/tp_project/runtime
重启Nginx和PHP-FPM systemctl restart nginx systemctl restart php81-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
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、在域名管理后台添加A记录指向云主机IP
2、修改Nginx配置中的server_name
使用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}"七、常见问题解决
检查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
评论
乌雅晴照
回复在虚拟云主机上搭建TP项目,需先创建虚拟机并安装操作系统和必要的开发环境,接着下载和解压相关软件与框架至服务器指定目录;配置数据库、缓存等组件并确保网络连接正常后启动服务进程即可开始项目开发部署工作流程了!
奈依风
回复在虚拟云主机上搭建TP项目,需安装PHP、MySQL等环境,配置项目文件,确保代码运行正常。
郸伟才
回复在虚拟云主机上搭建TP项目,首先安装LAMP环境,配置数据库,然后下载TP框架源码,上传至主机,通过配置文件设置数据库连接,最后在浏览器访问即可看到TP项目运行界面。