如何利用ThinkPHP在Centos上高效搭建网站,实现兼容性优化?
- 内容介绍
- 文章标签
- 相关推荐
什么是ThinkPHP和CentOS?
ThinkPHP是一个强大的PHP开发框架。能够极大简化编程工作,让开发者专注于业务逻辑。痛点:很多新手在安装时忽略依赖库的安装,导致报错。
CentOS是一款稳定、安全且兼容性好Linux发行版。痛点:在CentOS上使用yum管理器时常因仓库未启用而找不到所需包。
在CentOS上安装必要组件
安装PHP及
通过yum包管理器一次性安装主要PHP组件:sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring
痛点:有时会出现php-fpm.service无法启动的问题,需检查socket方法是否正确。
配置PHP
编辑 /etc/php.ini 并修改以下关键参数:
date.timezone = Asia/Shanghai
upload_max_filesize = 100M
post_max_size = 100M
痛点:忘记保存修改后会导致上传限制仍为默认值。
安装Nginx
sudo yum install nginx
痛点: Nginx启动失败通常是因为防火墙阻止了80端口。
配置Nginx为ThinkPHP服务
server {
listen 80;server_name yourdomain.com;root /usr/share/nginx/html;index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?
$query_string;}
location ~ \.php$ {
include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;说起来,include fastcgi_params;}
}
部署ThinkPHP项目
创建并准备目录
sudo mkdir -p /usr/share/nginx/html/thinkphp_project
sudo chown -R nginx:nginx /usr/share/nginx/html/thinkphp_project
sudo chmod -R 755 /usr/share/nginx/html/thinkphp_project
痛点旧主机迁移时runtime目录仍保留旧方法信息,导致页面空白。解决方法是在新主机上重新创建或清空runtime目录。
上传项目文件
# 将本地TP5项目打包后上传至服务器
sudo rsync -avz /path/to/local/tpj_project/ /usr/share/nginx/html/thinkphp_project/
-
sudy systemctl restart nginx -
sudy systemctl restart php-fpm
访问测试
-
如果出现“It works!”或ThinkPHP欢迎页则说明部署成功。
- yum install mysql-server。
-
&& 常见兼容性陷阱
- # 分别创建子域名目录,并在各自配置文件中指定 root 方法;\item # 每个子站点使用独立的 .env 或 config/database.php 防止数据相互干扰;\item # 在 Nginx 中添加多个 server 块,分别监听不同 server_name;老实说,\end{ul}
| 常见问题及方法 | |
|---|---|
| Nginx无法启动|检查防火墙端口、SELinux状态还有Nginx语法错误。其实, | |
| FastCGI 方法不匹配|确认 fastcgi_pass 指向实际存在的 php-fpm socket。 | |
- ≤/ul>
什么是ThinkPHP和CentOS?
ThinkPHP是一个强大的PHP开发框架。能够极大简化编程工作,让开发者专注于业务逻辑。痛点:很多新手在安装时忽略依赖库的安装,导致报错。
CentOS是一款稳定、安全且兼容性好Linux发行版。痛点:在CentOS上使用yum管理器时常因仓库未启用而找不到所需包。
在CentOS上安装必要组件
安装PHP及
通过yum包管理器一次性安装主要PHP组件:sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring
痛点:有时会出现php-fpm.service无法启动的问题,需检查socket方法是否正确。
配置PHP
编辑 /etc/php.ini 并修改以下关键参数:
date.timezone = Asia/Shanghai
upload_max_filesize = 100M
post_max_size = 100M
痛点:忘记保存修改后会导致上传限制仍为默认值。
安装Nginx
sudo yum install nginx
痛点: Nginx启动失败通常是因为防火墙阻止了80端口。
配置Nginx为ThinkPHP服务
server {
listen 80;server_name yourdomain.com;root /usr/share/nginx/html;index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?
$query_string;}
location ~ \.php$ {
include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;说起来,include fastcgi_params;}
}
部署ThinkPHP项目
创建并准备目录
sudo mkdir -p /usr/share/nginx/html/thinkphp_project
sudo chown -R nginx:nginx /usr/share/nginx/html/thinkphp_project
sudo chmod -R 755 /usr/share/nginx/html/thinkphp_project
痛点旧主机迁移时runtime目录仍保留旧方法信息,导致页面空白。解决方法是在新主机上重新创建或清空runtime目录。
上传项目文件
# 将本地TP5项目打包后上传至服务器
sudo rsync -avz /path/to/local/tpj_project/ /usr/share/nginx/html/thinkphp_project/
-
sudy systemctl restart nginx -
sudy systemctl restart php-fpm
访问测试
-
如果出现“It works!”或ThinkPHP欢迎页则说明部署成功。
- yum install mysql-server。
-
&& 常见兼容性陷阱
- # 分别创建子域名目录,并在各自配置文件中指定 root 方法;\item # 每个子站点使用独立的 .env 或 config/database.php 防止数据相互干扰;\item # 在 Nginx 中添加多个 server 块,分别监听不同 server_name;老实说,\end{ul}
| 常见问题及方法 | |
|---|---|
| Nginx无法启动|检查防火墙端口、SELinux状态还有Nginx语法错误。其实, | |
| FastCGI 方法不匹配|确认 fastcgi_pass 指向实际存在的 php-fpm socket。 | |
- ≤/ul>

