在阿里云ECS实例上基于SUSE Linux操作系统搭建网站,需完成环境准备、服务安装、配置优化及安全设置等步骤,以下是详细操作流程:
准备工作
-
创建ECS实例
登录阿里云控制台,选择“云服务器ECS”,创建新实例,镜像选择“SUSE Linux Enterprise Server 15 SP3”(或其他SUSE版本),实例规格根据网站需求选择(如入门级1vCPU/2G内存可满足小型网站),网络配置选择“专有网络VPC”,安全组需开放80(HTTP)、443(HTTPS)及22(SSH)端口。 -
连接ECS实例
使用SSH工具连接服务器,命令示例:ssh root@ECS公网IP
首次登录建议修改root密码:
passwd
。
环境初始化
-
更新系统
SUSE使用zypper
包管理器,执行以下命令更新系统:sudo zypper update
-
安装必要工具
安装wget
(下载文件)、vim
(编辑文件)、unzip
(解压文件)等工具:sudo zypper install wget vim unzip
安装Web服务器(Nginx)
Nginx是一款轻量级高性能Web服务器,适合搭建静态或动态网站。
-
安装Nginx
SUSE官方源中包含Nginx,直接安装:sudo zypper install nginx
-
启动并设置开机自启
sudo systemctl start nginx # 启动服务 sudo systemctl enable nginx # 设置开机自启
-
配置Nginx虚拟主机
以搭建WordPress网站为例,创建网站目录及配置文件:sudo mkdir -p /var/www/html/wordpress # 网站根目录 sudo chown -R nginx:nginx /var/www/html/wordpress # 设置目录所有者 sudo chmod -R 755 /var/www/html/wordpress # 设置目录权限
编辑Nginx配置文件:
sudo vim /etc/nginx/conf.d/wordpress.conf
添加以下内容(替换
your_domain.com
为实际域名):server { listen 80; server_name your_domain.com www.your_domain.com; root /var/www/html/wordpress; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } access_log /var/log/nginx/wordpress_access.log; error_log /var/log/nginx/wordpress_error.log; }
-
检查配置并重启Nginx
sudo nginx -t # 检查配置语法 sudo systemctl restart nginx # 重启服务
安装数据库(MariaDB)
MariaDB是MySQL的分支,兼容性高,适合网站数据存储。
-
安装MariaDB
sudo zypper install mariadb mariadb-server
-
启动数据库并设置开机自启
sudo systemctl start mariadb sudo systemctl enable mariadb
-
初始化数据库安全配置
执行以下命令设置root密码、移除匿名用户等:sudo mysql_secure_installation
根据提示操作,建议设置root密码(如
YourPass123!
),其他选项默认即可。 -
创建网站数据库及用户
登录MariaDB:mysql -u root -p
执行SQL语句(替换
wordpress_db
为数据库名,wordpress_user
为用户名,user_pass
为用户密码):CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'user_pass'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
安装PHP及扩展
WordPress等动态网站需PHP环境支持。
-
安装PHP及必要扩展
sudo zypper install php7-fpm php-mysqlnd php-gd php-json php-mbstring php-xml php-curl php-zip
(注:SUSE 15默认PHP7,若需更高版本可添加第三方源。)
-
配置PHP-FPM
编辑PHP-FPM配置文件,调整时区、上传文件大小等:sudo vim /etc/php7/fpm/php.ini
修改以下参数:
upload_max_filesize = 32M # 上传文件大小限制 post_max_size = 32M # POST数据大小限制 date.timezone = Asia/Shanghai # 时区设置
-
启动PHP-FPM并设置开机自启
sudo systemctl start php7-fpm sudo systemctl enable php7-fpm
部署网站程序(以WordPress为例)
-
下载WordPress安装包
cd /var/www/html/wordpress sudo wget https://wordpress.org/latest.zip sudo unzip latest.zip sudo mv wordpress/* . # 解压并移动文件到根目录 sudo rm -rf latest.zip wordpress # 清理临时文件
-
配置数据库连接
复制并编辑WordPress配置文件:sudo cp wp-config-sample.php wp-config.php sudo vim wp-config.php
修改数据库信息(对应第五步创建的数据库):
define('DB_NAME', 'wordpress_db'); define('DB_USER', 'wordpress_user'); define('DB_PASSWORD', 'user_pass'); define('DB_HOST', 'localhost');
-
设置网站权限
sudo chown -R nginx:nginx /var/www/html/wordpress
配置SSL证书(HTTPS)
为网站启用HTTPS,提升安全性,使用Let’s Encrypt免费证书:
-
安装Certbot
sudo zypper install certbot python3-certbot-nginx
-
申请证书并自动配置Nginx
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
按提示输入邮箱,同意条款,选择HTTP和HTTPS重定向(推荐),Certbot会自动修改Nginx配置并启用HTTPS。
-
自动续签证书
Certbot默认已设置定时任务自动续签,可通过以下命令检查:systemctl status certbot.timer
安全设置
-
配置防火墙
若使用SUSE防火墙(firewalld),开放HTTP/HTTPS端口:sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
-
禁用root远程登录(可选)
编辑SSH配置文件:sudo vim /etc/ssh/sshd_config
修改
PermitRootLogin no
,保存后重启SSH服务:sudo systemctl restart sshd
访问网站
在浏览器中输入http://your_domain.com
(或https://your_domain.com
),若显示WordPress安装界面,说明搭建成功,根据提示完成网站基本信息配置(如站点标题、管理员账号等)。
相关问答FAQs
问题1:搭建网站后无法访问,如何排查?
解答:
- 检查Nginx服务状态:
systemctl status nginx
,若未启动则执行systemctl start nginx
; - 检查安全组是否开放80/443端口:登录阿里云ECS控制台,进入安全组配置;
- 检查防火墙规则:
firewall-cmd --list-services
,确认http/https已添加; - 检查网站目录权限:
ls -ld /var/www/html/wordpress
,确保所有者为nginx; - 查看Nginx错误日志:
tail -f /var/log/nginx/wordpress_error.log
,定位具体错误原因。
问题2:如何定期备份网站数据和数据库?
解答:
可通过crontab
设置定时任务,结合mysqldump
备份数据库、tar
打包网站文件,示例脚本:
#!/bin/bash # 备份目录 BACKUP_DIR="/backup/wordpress" DATE=$(date +%Y%m%d_%H%M%S) # 创建备份目录 mkdir -p $BACKUP_DIR # 备份数据库 mysqldump -u root -pYourPass123! wordpress_db > $BACKUP_DIR/wordpress_db_$DATE.sql # 备份网站文件 tar -czf $BACKUP_DIR/wordpress_files_$DATE.tar.gz /var/www/html/wordpress # 删除7天前的备份(可选) find $BACKUP_DIR -name "*.sql" -o -name "*.tar.gz" -mtime +7 -exec rm {} ;
将脚本保存为/usr/local/bin/backup_wordpress.sh
,添加执行权限:chmod +x /usr/local/bin/backup_wordpress.sh
,然后添加crontab任务:
0 2 * * * /usr/local/bin/backup_wordpress.sh # 每天凌晨2点执行
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31178.html