centos lamp环境下如何部署网站
导读:在 CentOS 上部署 LAMP 站点的标准流程 一 环境准备与组件安装 更新系统并安装组件(以 CentOS 7/8 为例,使用 yum/dnf): 更新与基础组件 sudo yum update -y 安装 Apache...
在 CentOS 上部署 LAMP 站点的标准流程
一 环境准备与组件安装
- 更新系统并安装组件(以 CentOS 7/8 为例,使用 yum/dnf):
- 更新与基础组件
- sudo yum update -y
- 安装 Apache HTTP Server
- sudo yum install httpd -y
- sudo systemctl start httpd & & sudo systemctl enable httpd
- 安装 MariaDB(或 MySQL)
- sudo yum install mariadb-server mariadb -y
- sudo systemctl start mariadb & & sudo systemctl enable mariadb
- 运行安全初始化:sudo mysql_secure_installation(设置 root 密码、移除匿名用户等)
- 安装 PHP(按需选择模块)
- 基础:sudo yum install php php-mysql php-gd php-mbstring php-xml -y
- 如需 PHP-FPM(推荐用于并发与性能):sudo yum install php-fpm -y
- 更新与基础组件
- 防火墙放行 HTTP/HTTPS
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
- 验证安装
- 访问服务器 IP 应看到 Apache 欢迎页
- 查看版本:httpd -v;检查服务:systemctl status httpd mariadb
二 部署网站代码与目录权限
- 选择站点目录(示例使用 /var/www/example.com/public_html)
- 创建目录与日志目录
- sudo mkdir -p /var/www/example.com/{ public_html,logs}
- 上传站点文件(如使用 scp/rsync/FTP)
- 示例:rsync -av ./src/ user@server:/var/www/example.com/public_html/
- 设置所有权与权限(Apache 运行用户通常为 apache)
- sudo chown -R apache:apache /var/www/example.com
- sudo find /var/www/example.com -type d -exec chmod 755 { } ;
- sudo find /var/www/example.com -type f -exec chmod 644 { } ;
- 创建目录与日志目录
- 创建测试页(确认 Web 与 PHP 正常)
- echo “” | sudo tee /var/www/example.com/public_html/info.php
- 浏览器访问:http://服务器IP/info.php(确认后建议删除该文件)
三 配置 Apache 虚拟主机与 PHP 处理模式
- 方式一 模块模式(mod_php,简单)
- 确认模块加载(通常已内置):cat /etc/httpd/conf.modules.d/php.conf
- 在 /etc/httpd/conf.d/example.com.conf 创建虚拟主机:
- <
VirtualHost *:80>
- ServerName example.com
- DocumentRoot /var/www/example.com/public_html
- <
Directory /var/www/example.com/public_html>
- Options Indexes FollowSymLinks
- AllowOverride All
- Require all granted
- ErrorLog /var/www/example.com/logs/error.log
- CustomLog /var/www/example.com/logs/access.log combined
- <
VirtualHost *:80>
- 检查语法并生效
- sudo httpd -t & & sudo systemctl reload httpd
- 方式二 PHP-FPM(推荐,性能更好)
- 启用并启动 PHP-FPM
- sudo systemctl enable --now php-fpm
- 在虚拟主机中使用 FilesMatch + proxy_fcgi 处理 PHP
- 在 内加入:
- <
FilesMatch .php$>
- SetHandler “proxy:fcgi://127.0.0.1:9000”
- <
FilesMatch .php$>
- 在 内加入:
- 重载服务
- sudo httpd -t & & sudo systemctl reload httpd
- 启用并启动 PHP-FPM
- 访问测试
- 浏览器访问:http://example.com(域名需已解析到服务器 IP)
四 数据库与站点初始化
- 登录数据库并创建库与用户(示例)
- mysql -u root -p
- CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER ‘example_user’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON example_db.* TO ‘example_user’@‘localhost’;
- FLUSH PRIVILEGES;
- 应用配置
- 将站点配置文件中的数据库 DB_NAME/DB_USER/DB_PASSWORD 指向上述库与用户
- 如应用需要,导入初始数据(如 .sql 备份)
- 安全建议
- 生产环境避免使用 root 远程连接数据库
- 限制数据库用户来源 IP,使用强密码与最小权限原则
五 常见问题与优化
- SELinux 与权限
- 如启用 SELinux,需确保目录上下文正确:
- sudo semanage fcontext -a -t httpd_sys_content_t “/var/www/example.com(/.*)?”
- sudo restorecon -R /var/www/example.com
- 或临时调试:sudo setenforce 0(不建议长期关闭)
- 如启用 SELinux,需确保目录上下文正确:
- 日志与排错
- 实时查看错误日志:tail -f /var/log/httpd/error_log
- 语法检查:sudo httpd -t
- 性能与安全优化
- Apache:调整 MaxKeepAliveRequests/KeepAliveTimeout
- MariaDB:根据内存调优 innodb_buffer_pool_size
- PHP:启用 OPcache,仅保留必要扩展
- HTTPS 与证书
- 使用 Let’s Encrypt/Certbot 一键启用 HTTPS
- sudo yum install certbot python2-certbot-apache -y
- sudo certbot --apache -d example.com -d www.example.com
- 使用 Let’s Encrypt/Certbot 一键启用 HTTPS
- 维护与升级
- 定期执行:sudo yum update -y
- 备份策略:定期备份代码、数据库与配置文件
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lamp环境下如何部署网站
本文地址: https://pptw.com/jishu/747819.html
