如何在centos lamp上部署应用
导读:如何在CentOS LAMP上部署应用 一、准备工作 系统更新:运行sudo yum update -y,确保系统软件包为最新版本,避免兼容性问题。 安装必要工具:安装编译工具和库文件,用于后续可能的源码编译安装:sudo yum ins...
如何在CentOS LAMP上部署应用
一、准备工作
- 系统更新:运行
sudo yum update -y
,确保系统软件包为最新版本,避免兼容性问题。 - 安装必要工具:安装编译工具和库文件,用于后续可能的源码编译安装:
sudo yum install -y gcc gcc-c++ make cmake ncurses-devel libxml2-devel perl-devel libcurl openssl
。
二、安装LAMP组件
1. 安装Apache(Web服务器)
- 使用YUM包管理器安装Apache:
sudo yum install httpd -y
。 - 启动Apache并设置开机自启:
sudo systemctl start httpd
;sudo systemctl enable httpd
。 - 验证安装:浏览器访问服务器IP地址,若看到“It works!”页面则表示成功。
2. 安装MySQL(数据库服务器)
- 安装MariaDB(CentOS默认的MySQL兼容数据库):
sudo yum install mariadb-server mariadb -y
。 - 启动MariaDB并设置开机自启:
sudo systemctl start mariadb
;sudo systemctl enable mariadb
。 - 运行安全脚本强化数据库安全:
sudo mysql_secure_installation
,按提示设置root密码、删除匿名用户、禁止root远程登录等。
3. 安装PHP(脚本语言)
- 安装PHP及常用扩展(如MySQL、GD、MBSTRING等):
sudo yum install php php-mysql php-gd php-mbstring php-xml -y
。 - 重启Apache以加载PHP模块:
sudo systemctl restart httpd
。 - 验证PHP安装:在
/var/www/html
目录下创建info.php
文件(内容为< ?php phpinfo(); ?>
),浏览器访问http://服务器IP/info.php
,若看到PHP信息页面则表示成功。
三、部署应用
1. 上传应用代码
- 将本地开发的应用代码上传至服务器,常用方式包括:
- SCP命令:
scp -r /本地/项目路径 user@服务器IP:/var/www/html/项目目录
; - Git克隆:
git clone 项目仓库URL /var/www/html/项目目录
。
- SCP命令:
2. 安装应用依赖
- 进入项目目录,根据项目类型安装依赖:
- PHP项目(如Laravel、ThinkPHP):
composer install
(需提前安装Composer); - Node.js项目:
npm install
或yarn install
; - Python项目(如Django、Flask):
pip install -r requirements.txt
。
- PHP项目(如Laravel、ThinkPHP):
3. 配置应用环境
- 修改应用配置文件(如
.env
、config.php
),设置数据库连接、缓存服务器等参数:DB_HOST=localhost DB_USER=root DB_PASSWORD=你的数据库密码 APP_ENV=production
- 设置文件权限:确保Web服务器用户(通常为
apache
)对项目目录有读写权限:sudo chown -R apache:apache /var/www/html/项目目录
;sudo chmod -R 755 /var/www/html/项目目录
。
4. 配置Web服务器
-
Apache虚拟主机配置(可选,多站点时使用):
在/etc/httpd/conf.d/
目录下创建虚拟主机配置文件(如yourdomain.conf
),内容如下:< VirtualHost *:80> ServerName yourdomain.com # 替换为你的域名或IP DocumentRoot /var/www/html/项目目录 < Directory /var/www/html/项目目录> AllowOverride All # 允许.htaccess文件覆盖配置 Require all granted < /Directory> ErrorLog /var/log/httpd/yourdomain-error.log CustomLog /var/log/httpd/yourdomain-access.log combined < /VirtualHost>
重启Apache使配置生效:
sudo systemctl restart httpd
。 -
PHP-FPM配置(若使用PHP-FPM处理PHP请求):
编辑/etc/php-fpm.d/www.conf
,修改以下参数(根据实际情况调整):listen = /run/php-fpm/www.sock # 监听Unix socket user = apache # 运行用户 group = apache # 运行组 pm = dynamic # 动态进程管理 pm.max_children = 50 # 最大子进程数 pm.start_servers = 5 # 启动时的子进程数 pm.min_spare_servers = 5 # 最小空闲子进程数 pm.max_spare_servers = 10 # 最大空闲子进程数
重启PHP-FPM:
sudo systemctl restart php-fpm
。
四、启动应用并设置开机自启
- 启动应用:根据应用类型启动服务(如Spring Boot应用使用
java -jar app.jar
,Node.js应用使用node app.js
),建议在后台运行(如使用nohup
或systemd
)。 - 设置开机自启:
- Systemd方式(推荐):创建服务文件(如
/etc/systemd/system/yourapp.service
),内容如下:
启用并启动服务:[Unit] Description=Your Application Service After=network.target [Service] ExecStart=/usr/bin/node /var/www/html/项目目录/app.js # 替换为你的应用启动命令 Restart=always User=apache Group=apache [Install] WantedBy=multi-user.target
sudo systemctl enable yourapp.service
;sudo systemctl start yourapp.service
。
- Systemd方式(推荐):创建服务文件(如
五、优化与安全
- 防火墙配置:允许HTTP(80端口)和HTTPS(443端口)流量:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
- HTTPS加密:使用Let’s Encrypt免费证书部署SSL(需安装Certbot):
sudo yum install certbot python2-certbot-apache -y sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
- 性能优化:
- 调整Apache的
MaxKeepAliveRequests
和KeepAliveTimeout
参数(在/etc/httpd/conf/httpd.conf
中); - 优化MySQL的
innodb_buffer_pool_size
参数(在/etc/my.cnf
中); - 禁用PHP不必要的模块(如
xdebug
),启用Opcode缓存(如opcache
)。
- 调整Apache的
六、常见问题解决
- 权限问题:若应用无法写入文件,检查目录权限(
chown -R apache:apache /var/www/html/项目目录
); - 端口冲突:若端口被占用,使用
lsof -i :端口号
查看进程并终止(kill -9 PID
); - 依赖缺失:根据错误提示安装缺失的依赖(如
yum install 缺失的包名
); - 配置错误:检查Web服务器(Apache/Nginx)和应用的配置文件语法(如
apachectl configtest
)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在centos lamp上部署应用
本文地址: https://pptw.com/jishu/723224.html