如何在CentOS LAMP上部署应用
sudo yum update -y,确保系统软件包为最新版本,避免兼容性问题。sudo yum install -y gcc gcc-c++ make cmake ncurses-devel libxml2-devel perl-devel libcurl openssl。sudo yum install httpd -y。sudo systemctl start httpd;sudo systemctl enable httpd。sudo yum install mariadb-server mariadb -y。sudo systemctl start mariadb;sudo systemctl enable mariadb。sudo mysql_secure_installation,按提示设置root密码、删除匿名用户、禁止root远程登录等。sudo yum install php php-mysql php-gd php-mbstring php-xml -y。sudo systemctl restart httpd。/var/www/html目录下创建info.php文件(内容为<?php phpinfo(); ?>),浏览器访问http://服务器IP/info.php,若看到PHP信息页面则表示成功。scp -r /本地/项目路径 user@服务器IP:/var/www/html/项目目录;git clone 项目仓库URL /var/www/html/项目目录。composer install(需提前安装Composer);npm install或yarn install;pip install -r requirements.txt。.env、config.php),设置数据库连接、缓存服务器等参数:DB_HOST=localhost
DB_USER=root
DB_PASSWORD=你的数据库密码
APP_ENV=production
apache)对项目目录有读写权限:sudo chown -R apache:apache /var/www/html/项目目录;sudo chmod -R 755 /var/www/html/项目目录。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。
java -jar app.jar,Node.js应用使用node app.js),建议在后台运行(如使用nohup或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。sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo yum install certbot python2-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
MaxKeepAliveRequests和KeepAliveTimeout参数(在/etc/httpd/conf/httpd.conf中);innodb_buffer_pool_size参数(在/etc/my.cnf中);xdebug),启用Opcode缓存(如opcache)。chown -R apache:apache /var/www/html/项目目录);lsof -i :端口号查看进程并终止(kill -9 PID);yum install 缺失的包名);apachectl configtest)。