thinkphp项目在centos上的部署流程是什么
导读:ThinkPHP项目在CentOS上的部署流程 1. 环境准备 在部署前需安装以下基础软件(以CentOS 7/8为例): Web服务器:选择Nginx(推荐)或Apache; PHP环境:需满足ThinkPHP版本要求(如ThinkPH...
ThinkPHP项目在CentOS上的部署流程
1. 环境准备
在部署前需安装以下基础软件(以CentOS 7/8为例):
- Web服务器:选择Nginx(推荐)或Apache;
- PHP环境:需满足ThinkPHP版本要求(如ThinkPHP 6需PHP ≥ 7.2),并安装必要扩展(
php-mysqlnd、php-gd、php-mbstring、php-xml、php-curl等); - 数据库:推荐MySQL/MariaDB;
- 依赖管理工具:Composer(用于管理PHP依赖)。
具体安装命令(以Nginx+PHP-FPM+MySQL为例):
# 更新系统
sudo yum update -y
# 安装Nginx
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
# 安装PHP及扩展(通过Remi仓库安装PHP 7.4,可根据需求调整版本)
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
# 安装MySQL
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation # 完成安全配置(设置root密码、移除匿名用户等)
2. 配置Web服务器
Nginx配置
创建ThinkPHP专属虚拟主机配置文件(如/etc/nginx/conf.d/thinkphp.conf),内容如下:
server {
listen 80;
server_name your_domain.com;
# 替换为你的域名或IP
root /path/to/your/thinkphp/project/public;
# 项目public目录(关键:入口文件在此)
index index.php index.html index.htm;
# 路由重写(支持PATHINFO,解决ThinkPHP URL重写问题)
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP处理(FastCGI转发至PHP-FPM)
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
# PHP-FPM socket路径(需与php-fpm.conf一致)
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# 禁止访问.htaccess文件(安全)
location ~ /\.ht {
deny all;
}
}
测试Nginx配置并重启:
sudo nginx -t # 检查配置语法
sudo systemctl restart nginx
Apache配置(可选)
若使用Apache,需启用mod_rewrite模块并创建虚拟主机:
sudo a2enmod rewrite # 启用重写模块
sudo systemctl restart httpd
# 创建虚拟主机配置(/etc/httpd/conf.d/thinkphp.conf)
<
VirtualHost *:80>
ServerName your_domain.com
DocumentRoot /path/to/your/thinkphp/project/public
<
Directory /path/to/your/thinkphp/project/public>
Options Indexes FollowSymLinks
AllowOverride All # 允许.htaccess覆盖
Require all granted
<
/Directory>
<
/VirtualHost>
3. 部署ThinkPHP项目
方式一:通过Composer创建项目(推荐)
直接在服务器上通过Composer创建ThinkPHP项目(需提前安装Composer):
# 安装Composer(全局)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# 创建项目(以ThinkPHP 6为例)
cd /path/to/your/thinkphp
composer create-project topthink/think project-name
项目目录结构示例:
/path/to/your/thinkphp/project-name/
├── app/ # 应用目录
├── public/ # 入口目录(需指向Nginx的root)
├── config/ # 配置目录
├── vendor/ # Composer依赖
└── ...
方式二:上传现有项目
若项目已开发完成,可通过FTP/SFTP或Git上传至服务器指定目录(如/path/to/your/thinkphp/project)。
4. 配置数据库
创建数据库与用户
登录MySQL,执行以下命令:
-- 创建数据库
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
退出MySQL:exit;
配置ThinkPHP数据库连接
修改项目根目录下的.env文件(优先级高于config/database.php):
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=your_database_name
DB_USER=your_username
DB_PASSWORD=your_password
DB_PORT=3306
DB_PREFIX=tp_ # 表前缀(可选)
5. 安装项目依赖
进入项目目录,通过Composer安装依赖:
cd /path/to/your/thinkphp/project-name
composer install --no-dev --optimize-autoloader # 生产环境建议关闭dev依赖并优化自动加载
6. 设置目录权限
确保项目目录权限正确(避免Web服务器无法访问):
sudo chown -R nginx:nginx /path/to/your/thinkphp/project-name # 若使用Nginx(用户为nginx)
# 若使用Apache(用户为apache),则改为:sudo chown -R apache:apache /path/to/your/thinkphp/project-name
sudo chmod -R 755 /path/to/your/thinkphp/project-name
sudo chmod -R 775 /path/to/your/thinkphp/project-name/runtime # runtime目录需可写(存储缓存、日志等)
7. 启动服务并访问项目
启动Web服务
# 启动Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# 启动PHP-FPM(若未启动)
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
访问项目
在浏览器中输入http://your_domain.com(或服务器IP),若看到ThinkPHP欢迎页面,则部署成功。
8. 生产环境优化(可选)
- 关闭调试模式:修改
.env文件,设置APP_DEBUG = false; - 开启OPcache:在
php.ini中启用OPcache(提升PHP性能); - 配置Redis缓存:修改
config/cache.php,使用Redis替代文件缓存; - 设置Supervisor:管理PHP进程(避免进程意外终止):
添加以下内容(以ThinkPHP 6为例):sudo yum install supervisor -y sudo vim /etc/supervisor/conf.d/thinkphp.conf更新Supervisor配置并启动:[program:thinkphp] command=php /path/to/your/thinkphp/project-name/think run autostart=true autorestart=true stderr_logfile=/var/log/thinkphp.err.log stdout_logfile=/var/log/thinkphp.out.logsudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start thinkphp
通过以上步骤,ThinkPHP项目即可在CentOS服务器上稳定运行。部署过程中需注意权限设置、路径配置及依赖完整性,避免常见问题(如502 Bad Gateway、路由失效)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: thinkphp项目在centos上的部署流程是什么
本文地址: https://pptw.com/jishu/747428.html
