在Ubuntu系统上部署ThinkPHP微服务,需依次安装PHP环境、Composer、Nginx和MySQL。然后配置Nginx站点,上传项目并运行composerinstall安装依赖,配置数据库连接,启动PHP-FPM服务,最后通过浏览器测试访问。也可采用Docker容器化部署以简化流程。
先说几个基本判断:在Ubuntu上部署ThinkPHP微服务,其实没有想象中那么复杂。只要把环境搭好、Nginx配好,剩下的就是项目本身的迁移和数据库配置了。下面一步步拆开来讲。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
先确认下系统里有没有这几样东西:PHP、Composer、Nginx、还有MySQL(或者其他你偏好的数据库)。缺一不可,但装起来也不费事。
PHP的安装包比较多,直接一次性拉全比较省心:
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-curl php-json php-zip php-gd php-mbstring php-xml php-pear php-bcmath
这里注意,php-fpm是必须的,后面Nginx要跟它配合工作。
Composer是PHP的依赖管理工具,ThinkPHP项目的依赖全靠它:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
装好之后,在任何目录下敲composer都能用,这就对了。
Nginx的安装很简单:
sudo apt install nginx
装完就可以启动服务了,不过先别急,配置文件还没写。
数据库环节:
sudo apt install mysql-server
sudo mysql_secure_installation
跑完mysql_secure_installation,会引导你做一些安全设置,比如设置root密码、删除匿名用户等。记住,千万别跳过这一步。
做完这一步,环境基本就绪了。
Nginx的核心是配置文件。这里需要为你的ThinkPHP项目单独创建一个配置文件:
sudo nano /etc/nginx/sites-a vailable/your_project
把以下内容贴进去,注意根据自己的实际情况调整路径和PHP版本:
server {
listen 80;
server_name your_domain_or_ip;
root /path/to/your/thinkphp/project;
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:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
然后启用这个配置并重启Nginx:
sudo ln -s /etc/nginx/sites-a vailable/your_project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
如果nginx -t输出“syntax is ok”,那就可以放心了。
现在把项目代码上传到服务器。假设你存在/var/www/your_project这个目录:
cd /var/www
git clone https://github.com/your_username/your_project.git
cd your_project
composer install
注意,composer install这一步可能会因为网络原因慢一些,耐心等就好。如果遇到扩展缺失的错误,回头检查第一步的PHP扩展是否都装全了。
找到项目根目录下的.env文件,把数据库连接信息填进去:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
数据库名、用户名、密码要和你之前创建的一致。配置好之后,可以跑迁移命令,把表结构建起来:
php artisan migrate
这一步如果报错,多半是数据库连接信息写错了,或者MySQL服务没启动。
确保PHP-FPM已经启动并设为开机自启:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
有些系统可能用的是php8.1-fpm之类的,版本号对不上就改一下。
打开浏览器,输入你的服务器IP或域名,如果能看到ThinkPHP的欢迎页面,那就说明部署成功了。如果白屏或报500错误,检查Nginx错误日志,通常问题出在php-fpm.sock路径或项目目录权限上。
如果你开了UFW防火墙,记得放行HTTP和HTTPS:
sudo ufw allow 'Nginx Full'
这条命令会同时开放80和443端口。
如果不想手动配置环境,Docker是一种更省心的方式。这里给出一套基础的Dockerfile和docker-compose.yml配置,可以直接用。
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libpq-dev zip unzip git && docker-php-ext-configure gd --with-freetype --with-jpeg && docker-php-ext-install gd pdo_mysql zip opcache
WORKDIR /var/www/html
COPY . /var/www/html
RUN composer install
CMD ["php-fpm"]
version: '3'
services:
app:
build: .
volumes:
- .:/var/www/html
environment:
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=your_database
- DB_USERNAME=your_username
- DB_PASSWORD=your_password
depends_on:
- db
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
db:
image: mysql:5.7
environment:
- MYSQL_DATABASE=your_database
- MYSQL_USER=your_username
- MYSQL_PASSWORD=your_password
- MYSQL_ROOT_PASSWORD=your_root_password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
然后运行:
docker-compose up -d
Docker会自动拉取镜像、构建容器、启动服务。当然,这只是一个基础版本,实际生产环境还需要考虑网络、存储、日志等细节,但作为开发或测试环境,已经够用了。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述