CentOS下ThinkPHP项目如何部署
导读:CentOS下ThinkPHP项目部署详细步骤 1. 环境准备 在部署前需安装Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)、Composer等必要组件。 安装Nginx(以Nginx为例):s...
CentOS下ThinkPHP项目部署详细步骤
1. 环境准备
在部署前需安装Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)、Composer等必要组件。
- 安装Nginx(以Nginx为例):
sudo yum install epel-release -y sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
- 安装PHP及扩展(ThinkPHP 6需PHP 7.4+):
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 # 完成安全初始化配置
- 安装Composer(PHP依赖管理工具):
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
2. 配置Web服务器
Nginx配置
创建ThinkPHP专属站点配置文件(如/etc/nginx/conf.d/thinkphp.conf
),内容如下:
server {
listen 80;
server_name your_domain.com;
# 替换为你的域名/IP
root /var/www/html/thinkphp/public;
# ThinkPHP项目public目录
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
# 路由转发到index.php
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
# PHP-FPM监听socket
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
# 支持PATH_INFO
}
location ~ /\.ht {
deny all;
# 禁止访问.htaccess文件
}
}
测试配置并重启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 /var/www/html/thinkphp/public
<
Directory /var/www/html/thinkphp/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<
/Directory>
<
/VirtualHost>
3. 部署ThinkPHP项目
- 上传项目代码:通过Git、FTP或SFTP将项目上传至
/var/www/html/thinkphp
(或其他目录)。 - 安装依赖:进入项目目录,执行Composer安装:
cd /var/www/html/thinkphp composer install --no-dev --optimize-autoloader # 生产环境关闭dev依赖
- 配置数据库:编辑
.env
文件(或config/database.php
),填写数据库连接信息:DB_TYPE=mysql DB_HOST=127.0.0.1 DB_NAME=your_db_name DB_USER=your_db_user DB_PASSWORD=your_db_password DB_PORT=3306 DB_PREFIX=tp_ # 可选表前缀
4. 设置权限
确保Web服务器用户(Nginx默认nginx
,Apache默认apache
)对项目目录有读写权限:
sudo chown -R nginx:nginx /var/www/html/thinkphp # 修改所属用户/组
sudo chmod -R 755 /var/www/html/thinkphp # 设置目录权限
sudo chmod -R 777 /var/www/html/thinkphp/runtime # runtime目录需可写(上传/缓存)
5. 启动服务并测试
- 启动服务:
sudo systemctl start nginx php-fpm mysqld # 启动Nginx、PHP-FPM、MySQL sudo systemctl enable nginx php-fpm mysqld # 设置开机自启
- 测试访问:
浏览器输入http://your_domain.com
,若看到ThinkPHP欢迎页面则部署成功。
6. 生产环境优化(可选)
- 关闭调试模式:修改
.env
文件,设置APP_DEBUG=false
,避免敏感信息泄露。 - 配置缓存:开启OPcache提升PHP性能,编辑
/etc/php.ini
:zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000
- 使用Redis缓存:安装Redis并配置ThinkPHP使用Redis存储会话/缓存,提升并发性能。
- 配置HTTPS:通过Let’s Encrypt申请免费SSL证书,配置Nginx支持HTTPS(
listen 443 ssl
)。
常见问题排查
- 502 Bad Gateway:检查PHP-FPM是否运行(
sudo systemctl status php-fpm
),确认Nginx配置中的fastcgi_pass
路径正确。 - 路由失效:确保Nginx配置中包含
try_files $uri $uri/ /index.php?$query_string;
,且PATH_INFO
参数已开启。 - 权限问题:若出现“Permission denied”错误,检查项目目录所属用户及权限(
ls -ld /var/www/html/thinkphp
)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下ThinkPHP项目如何部署
本文地址: https://pptw.com/jishu/721436.html