CentOS部署PHP项目完整步骤
CentOS 7.9 部署 PHP 7.4 MySQL 5.7.44 完整步骤由于 CentOS 7 已于 2024 年 6 月 30 日停止官方维护原有的 yum 源已不可用因此必须首先更换为阿里云镜像源才能正常安装软件。一、系统环境准备1.1 更换阿里云 YUM 源# 1. 备份原有源mv/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2/dev/null# 2. 下载阿里云 CentOS 7 源curl-o/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 3. 下载 EPEL 扩展源可选但推荐curl-o/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 4. 清理缓存并生成新缓存yum clean allyum makecache# 5. 更新系统可选耗时较长yum update-y1.2 安装基础开发工具yuminstall-yvimwgetcurlnet-tools gcc gcc-cmake二、安装 Nginx# 安装 Nginxyuminstall-ynginx# 设置开机自启并启动systemctlenablenginx systemctl start nginx# 验证安装nginx-v三、安装 PHP 7.4CentOS 7 默认源中 PHP 版本较低需要先安装 REMI 源来获取 PHP 7.4。3.1 安装 REMI 源# 安装 EPEL 和 REMI 源yuminstall-yepel-release yuminstall-yhttps://rpms.remirepo.net/enterprise/remi-release-7.rpm# 启用 REMI 的 PHP 7.4 仓库yuminstall-yyum-utils yum-config-manager--enableremi-php743.2 安装 PHP 7.4 及扩展# 安装 PHP 7.4 核心及常用扩展yuminstall-yphp php-cli php-fpm php-common\php-mysqlnd php-pdo\php-gd php-mbstring php-xml php-curl php-zip\php-bcmath php-json php-opcache php-fileinfo# 验证 PHP 安装php-vphp-m3.3 配置 PHP-FPM# 编辑 php-fpm 配置修改运行用户为 nginxsed-is/user apache/user nginx/g/etc/php-fpm.d/www.confsed-is/group apache/group nginx/g/etc/php-fpm.d/www.conf# 优化 php.ini生产环境vim/etc/php.ini# 建议修改以下参数# date.timezone Asia/Shanghai# expose_php Off# max_execution_time 300# max_input_time 300# memory_limit 256M# post_max_size 50M# upload_max_filesize 50M# 启动 PHP-FPMsystemctlenablephp-fpm systemctl start php-fpm# 验证启动状态systemctl status php-fpm四、安装 MySQL 5.7.444.1 添加 MySQL 官方 YUM 源# 下载 MySQL 5.7 官方源wgethttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装源rpm-ivhmysql57-community-release-el7-11.noarch.rpm# 验证源已添加yum repolist|grepmysql4.2 安装 MySQL 5.7# 安装 MySQL 5.7yuminstall-ymysql-community-server# 验证安装mysql--version4.3 配置 MySQL# 启动 MySQLsystemctlenablemysqld systemctl start mysqld# 获取临时密码greptemporary password/var/log/mysqld.log# 输出示例2024-01-15T06:23:45.123456Z 1 [Note] A temporary password is generated for rootlocalhost: Abc123!## 运行安全配置脚本mysql_secure_installation# 按提示输入临时密码然后设置新密码建议使用强密码五、配置 Nginx 支持 ThinkPHP创建 Nginx 站点配置文件vim/etc/nginx/conf.d/thinkphp.conf添加以下配置根据实际项目路径调整server { listen 80; server_name your_domain.com; # 替换为你的域名或 IP root /var/www/your_project/public; # 项目 public 目录 index index.php index.html; # 日志配置 access_log /var/log/nginx/thinkphp_access.log; error_log /var/log/nginx/thinkphp_error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; # 或使用 socketfastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 禁止访问 .env 等敏感文件 location ~ /\.env { deny all; } # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control public, immutable; } }测试并重载 Nginxnginx-tsystemctl reload nginx六、部署 ThinkPHP 项目6.1 创建项目目录mkdir-p/var/www/your_projectcd/var/www/your_project6.2 安装 ComposerPHP 依赖管理工具# 安装 Composercurl-sShttps://getcomposer.org/installer|phpmvcomposer.phar /usr/local/bin/composerchmodx /usr/local/bin/composer# 验证安装composer--version6.3 安装 ThinkPHP 项目方式一创建新项目composercreate-project topthink/think /var/www/your_project方式二上传已有项目# 使用 git 克隆gitclone your_repository_url /var/www/your_project# 或使用 scp 上传# 从本地上传scp -r ./your_project rootyour_server_ip:/var/www/6.4 安装项目依赖cd/var/www/your_projectcomposerinstall--optimize-autoloader --no-dev6.5 配置项目权限# 设置目录所有者chown-Rnginx:nginx /var/www/your_project# 设置目录权限find/var/www/your_project-typed-execchmod755{}\;find/var/www/your_project-typef-execchmod644{}\;# runtime 和 storage 目录需要可写权限chmod-R775/var/www/your_project/runtime6.6 配置数据库连接# 复制环境配置文件cp/var/www/your_project/.env.example /var/www/your_project/.env# 编辑 .env 文件vim/var/www/your_project/.env配置数据库信息APP_DEBUG false APP_TRACE false [DB] DATABASE_TYPE mysql DATABASE_HOSTNAME 127.0.0.1 DATABASE_DATABASE your_database_name DATABASE_USERNAME your_username DATABASE_PASSWORD your_password DATABASE_PORT 3306 DATABASE_PREFIX tp_6.7 创建数据库登录 MySQL 并创建数据库mysql-uroot-p执行 SQLCREATEDATABASEyour_database_nameCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;CREATEUSERyour_usernamelocalhostIDENTIFIEDBYyour_password;GRANTALLPRIVILEGESONyour_database_name.*TOyour_usernamelocalhost;FLUSHPRIVILEGES;EXIT;6.8 生成应用密钥如项目需要cd/var/www/your_project php think generate:key# 或根据实际框架命令七、防火墙与安全配置7.1 配置防火墙# 开放 HTTP 和 HTTPS 端口firewall-cmd--permanent--add-servicehttp firewall-cmd--permanent--add-servicehttps firewall-cmd--reload# 查看已开放端口firewall-cmd --list-all7.2 配置 SELinux如开启如果 SELinux 处于 enforcing 模式需要配置策略# 设置 Nginx 访问网络setsebool-Phttpd_can_network_connect1# 设置允许 Web 服务器读写文件chcon-R-thttpd_sys_rw_content_t /var/www/your_project/runtime八、验证部署8.1 测试 PHP 环境创建测试文件echo?php phpinfo(); ?/var/www/your_project/public/info.php访问http://your_server_ip/info.php看到 PHP 信息页面即表示环境配置成功。8.2 测试项目访问http://your_server_ip/看到 ThinkPHP 欢迎页面或项目首页即部署成功。8.3 删除测试文件rm-f/var/www/your_project/public/info.php九、常见问题排查问题现象可能原因解决方案502 Bad GatewayPHP-FPM 未启动或配置错误systemctl status php-fpm检查状态检查 Nginx 中 fastcgi_pass 配置404 Not FoundNginx 配置 root 未指向 public确认 root 路径为/var/www/your_project/public数据库连接失败.env 配置错误或数据库未授权核对 .env 中的数据库信息检查数据库用户权限权限错误runtime 目录不可写chmod -R 775 runtime确认目录所有者正确类找不到Composer 依赖未安装执行composer install --optimize-autoloader十、优化建议开启 OPcache在/etc/php.ini中设置opcache.enable1 opcache.memory_consumption128 opcache.max_accelerated_files10000 opcache.revalidate_freq60配置 HTTPS使用 Let’s Encrypt 免费证书yuminstall-ycertbot python2-certbot-nginx certbot--nginx-dyour_domain.com定期更新yum update-ycomposerupdate --optimize-autoloader --no-dev以上步骤已完成 PHP 7.4 MySQL 5.7.44 Nginx 环境的搭建以及 ThinkPHP 项目的完整部署。如有问题请查看 Nginx 日志/var/log/nginx/error.log和 PHP-FPM 日志/var/log/php-fpm/error.log进行排查。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470569.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!