在部署前需安装Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)、Composer等必要组件。
sudo yum install epel-release -y sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
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
sudo yum install mysql-server -y sudo systemctl start mysqld sudo systemctl enable mysqld sudo mysql_secure_installation # 完成安全初始化配置
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
创建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,需启用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>
/var/www/html/thinkphp
(或其他目录)。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_ # 可选表前缀
确保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目录需可写(上传/缓存)
sudo systemctl start nginx php-fpm mysqld # 启动Nginx、PHP-FPM、MySQL sudo systemctl enable nginx php-fpm mysqld # 设置开机自启
http://your_domain.com
,若看到ThinkPHP欢迎页面则部署成功。.env
文件,设置APP_DEBUG=false
,避免敏感信息泄露。/etc/php.ini
:zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000
listen 443 ssl
)。sudo systemctl status php-fpm
),确认Nginx配置中的fastcgi_pass
路径正确。try_files $uri $uri/ /index.php?$query_string;
,且PATH_INFO
参数已开启。ls -ld /var/www/html/thinkphp
)。