在阿里云Linux系统上建站是一个涉及环境配置、服务部署和安全优化的系统性过程,以下以主流的CentOS系统为例,结合LAMP(Linux+Apache+MySQL+PHP)环境,详细讲解从基础准备到网站上线的完整步骤。

基础环境准备
-
购买与配置ECS实例
登录阿里云控制台,进入ECS管理界面,创建实例时选择“公共镜像”中的CentOS 7.x及以上版本,配置建议:- 实例规格:初期可选1vCPU/2GB内存(如g6.large.2),后期根据流量升级;
- 网络类型:选择“专有网络”,确保安全组策略合理;
- 系统盘:默认40GB SSD,若网站数据量大可扩容;
- 安全组:开放必要端口(如HTTP 80、HTTPS 443、SSH 22),并设置IP白名单限制访问来源。
实例创建后,通过SSH工具(如Xshell、PuTTY)远程连接,输入用户名(root)和密码/密钥对登录,首次登录需执行系统更新:
yum update -y
-
配置时间同步与防火墙
确保系统时间准确,安装并启动NTP服务:yum install ntp -y systemctl start ntpd systemctl enable ntpd
关闭防火墙(或开放指定端口),以CentOS 7为例:
(图片来源网络,侵删)systemctl stop firewalld # 临时关闭 systemctl disable firewalld # 禁止开机启动 # 或开放80/443端口: firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
安装LAMP环境组件
安装Apache服务
Apache是最流行的Web服务器之一,通过yum安装:
yum install httpd -y
安装后启动服务并设置开机自启:
systemctl start httpd systemctl enable httpd
验证安装:在浏览器中输入ECS公网IP,若显示Apache测试页,则安装成功,网站默认根目录为/var/www/html,可通过修改/etc/httpd/conf/httpd.conf中的DocumentRoot调整。
安装MySQL数据库
阿里云推荐使用Percona或MariaDB(MySQL分支),此处以MariaDB为例:

yum install mariadb-server mariadb -y systemctl start mariadb systemctl enable mariadb
执行安全脚本设置root密码、移除匿名用户等:
mysql_secure_installation
根据提示操作,建议设置强密码并禁止root远程登录(后期可通过普通用户授权)。
安装PHP及常用扩展
PHP是网站脚本语言,需安装对应版本的PHP及扩展(以PHP 7.4为例):
yum install epel-release -y # 安装EPEL源 rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm # 添加Remi源 yum install --enablerepo=remi-php74 php php-fpm php-mysqlnd php-gd php-xml php-mbstring -y
安装后启动PHP-FPM(Apache与PHP集成需通过PHP-FPM):
systemctl start php-fpm systemctl enable php-fpm
测试PHP是否正常:在/var/www/html目录下创建info.php为<?php phpinfo(); ?>,访问http://ECS_IP/info.php,若显示PHP配置信息则成功。
配置网站与数据库
创建网站目录及数据库
假设网站域名为example.com,执行以下操作:
mkdir -p /var/www/example.com # 创建网站根目录 chown -R apache:apache /var/www/example.com # 设置所有者为apache用户 chmod -R 755 /var/www/example.com # 设置权限
登录MySQL创建数据库及用户:
mysql -u root -p
进入MySQL后执行:
CREATE DATABASE example_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'YourStrongPassword'; GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
配置虚拟主机
编辑Apache配置文件,添加网站虚拟主机:
vim /etc/httpd/conf.d/example.com.conf
``` 根据实际域名和路径修改):
```apache
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog /var/log/httpd/example.com_error.log
CustomLog /var/log/httpd/example.com_access.log combined
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
保存后重启Apache服务:
systemctl restart httpd
部署网站程序
上传网站源码
可通过以下方式上传源码(如WordPress、Discuz等):
- SCP/SFTP工具:使用Xshell等工具的文件传输功能,将本地源码包上传至
/var/www/example.com; - wget下载:若源码为公开下载链接(如WordPress官网),可直接在服务器下载:
cd /var/www/example.com wget https://wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz mv wordpress/* . # 解压并移动文件 rm -rf wordpress latest.tar.gz # 清理临时文件
配置网站权限
确保网站目录权限正确,避免文件无法写入:
chown -R apache:apache /var/www/example.com
find /var/www/example.com -type d -exec chmod 755 {} \; # 目录权限755
find /var/www/example.com -type f -exec chmod 644 {} \; # 文件权限644
优化与安全配置
-
安装SSL证书(HTTPS)
可通过阿里云免费SSL证书服务申请证书,下载后上传至服务器,配置Apache启用HTTPS:vim /etc/httpd/conf.d/example.com-ssl.conf
添加以下内容(替换证书路径):
<VirtualHost *:443> ServerName example.com DocumentRoot /var/www/example.com SSLEngine on SSLCertificateFile /etc/pki/tls/certs/example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/example.com.key SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle </VirtualHost>重启Apache后,通过
https://example.com访问,若显示安全锁则配置成功。 -
安全加固措施
- 禁用root远程登录:编辑
/etc/ssh/sshd_config,将PermitRootLogin yes改为no,重启SSH服务; - 安装安全软件:如Fail2ban(防暴力破解)、ClamAV(杀毒);
- 定期备份数据:通过阿里云云备份或手动打包网站文件和数据库,上传至OSS存储。
- 禁用root远程登录:编辑
性能优化建议
- 启用缓存:安装Redis或Memcached,为PHP和数据库缓存加速;
- 配置CDN:通过阿里云CDN加速静态资源(图片、CSS、JS),减轻服务器压力;
- 开启Gzip压缩:在Apache配置中添加
mod_deflate模块,压缩传输内容。
相关问答FAQs
Q1:如何解决网站访问时出现403 Forbidden错误?
A:403错误通常是由于目录权限或SELinux配置问题导致,可按以下步骤排查:
- 检查网站目录权限:确保
/var/www/example.com及子目录所有者为apache,权限为755(目录)和644(文件); - 临时关闭SELinux测试:
setenforce 0,若恢复正常则需永久关闭或配置SELinux策略(semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"); - 检查Apache配置文件中
AllowOverride是否设置为All(需启用.htaccess伪静态时)。
Q2:如何备份数据库和网站文件?
A:可通过以下方式手动备份:
- 备份数据库:使用
mysqldump命令导出SQL文件,mysqldump -u example_user -p example_db > /backup/example_db_$(date +%Y%m%d).sql
输入密码后,文件将保存在
/backup目录,需提前创建该目录(mkdir /backup); - 备份网站文件:使用
tar命令打包网站目录,tar -czf /backup/example.com_$(date +%Y%m%d).tar.gz /var/www/example.com
备份文件建议定期上传至阿里云OSS,避免服务器故障导致数据丢失。
