凌峰创科服务平台

Linux如何搭建网站服务器?

在Linux系统中搭建网站服务器是许多开发者和运维人员的必备技能,本文将以CentOS 7系统为例,详细讲解从环境准备到服务配置的全过程,涵盖Apache/Nginx、MySQL、PHP等核心组件的安装与优化,帮助读者快速构建稳定高效的网站服务环境。

首先需要进行系统初始化准备,确保Linux系统基础环境稳定,登录服务器后更新系统软件包列表,执行yum update -y命令安装所有可用更新,同时关闭防火墙和SELinux以简化配置(生产环境需谨慎处理),命令为systemctl stop firewalldsystemctl disable firewalldsetenforce 0,接着安装必要的基础工具包,如yum install -y wget vim tree unzip,这些工具将在后续操作中频繁使用。

网站服务器的核心组件包括Web服务器、数据库服务及编程语言运行环境,在Web服务器选择上,Apache和Nginx是最主流的两种方案,Apache模块化设计成熟,适合动态内容处理;Nginx轻量高效,擅长反向代理和静态资源分发,本文将以Nginx为例进行讲解,其安装过程如下:首先添加EPEL源扩展软件仓库,执行yum install -y epel-release,然后通过yum install -y nginx完成安装,启动服务并设置开机自启systemctl start nginx && systemctl enable nginx,安装完成后可通过浏览器访问服务器IP地址,若看到Nginx欢迎页面则证明安装成功。

数据库服务通常选择MySQL或MariaDB,后者是MySQL的开源分支,完全兼容MySQL协议,安装MariaDB的命令为yum install -y mariadb-server mariadb,启动服务并设置开机自启systemctl start mariadb && systemctl enable mariadb,安全初始化是数据库配置的关键步骤,执行mysql_secure_installation向导,设置root密码、移除匿名用户、禁止root远程登录等操作,为网站应用创建专用数据库及用户,可通过登录MySQL控制台执行以下SQL语句:

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;

PHP作为动态网页编程语言,需根据网站需求选择合适版本,以安装PHP 7.4及常用扩展为例,首先添加Remi源(提供最新PHP版本): yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm,然后启用PHP 7.4仓库yum install -y yum-utils && yum-config-manager --enable remi-php74,最后安装PHP及扩展yum install -y php php-fpm php-mysqlnd php-gd php-json php-mbstring php-xml php-curl php-zip,启动PHP-FPM服务并设置开机自启systemctl start php-fpm && systemctl enable php-fpm,检查服务状态systemctl status php-fpm确保运行正常。

Nginx与PHP的协同配置是动态网站运行的核心,编辑Nginx配置文件vim /etc/nginx/nginx.conf,在http块中添加以下优化参数:

worker_processes auto;
worker_rlimit_nofile 65535;
events {
    worker_connections 2048;
    use epoll;
    multi_accept on;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}

创建网站配置文件vim /etc/nginx/conf.d/website.conf如下:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;
    root /var/www/website;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}

创建网站根目录并设置权限mkdir -p /var/www/website && chown -R nginx:nginx /var/www/website,重启Nginx服务systemctl restart nginx使配置生效,上传网站程序(如WordPress)到根目录,解压后设置正确权限chown -R nginx:nginx /var/www/website/wp-content

SSL证书配置是现代网站的安全基础,通过Let's Encrypt免费证书实现HTTPS加密,安装Certbot工具yum install -y certbot python2-certbot-nginx,执行证书申请命令certbot --nginx -d your_domain.com -d www.your_domain.com,按照提示完成邮箱配置和证书安装,Nginx将自动生成包含SSL配置的server块,重启服务后即可通过HTTPS访问网站。

性能优化方面,可通过调整PHP-FPM配置提升动态处理能力,编辑/etc/php-fpm.d/www.conf,修改以下参数:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500

重启PHP-FPM服务使配置生效,对于高流量网站,可配置Nginx缓存静态资源,在server块中添加:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 7d;
    add_header Cache-Control "public, no-transform";
}

网站安全维护不容忽视,定期执行以下操作:更新系统及软件包yum update -y,备份网站文件及数据库tar -czf website_backup.tar.gz /var/www/website && mysqldump -u root -p wordpress_db > db_backup.sql,配置Fail2ban防止暴力破解yum install -y fail2ban,创建规则文件/etc/fail2ban/jail.local

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 30m

监控网站运行状态是保障服务稳定的重要手段,安装Nginx状态监控模块yum install -y nginx-module-vts,配置Nginx生成状态页面,通过Prometheus+Grafana实现可视化监控,设置日志轮转/etc/logrotate.d/nginx,确保日志文件不会无限增长。

相关问答FAQs:

Q1: 如何解决Nginx访问PHP文件显示下载而非解析的问题?
A: 这通常是由于Nginx未正确配置PHP-FPM导致的,检查/etc/nginx/conf.d/website.conf中的location ~ .php$块是否包含fastcgi_param SCRIPT_FILENAME指令,确保路径与网站根目录匹配,同时确认PHP-FPM服务已启动且监听端口正确(默认9000),可执行netstat -tuln | grep 9000验证,若配置正确仍无效,尝试重启Nginx服务。

Q2: 网站访问缓慢如何排查性能瓶颈?
A: 可按以下步骤逐步排查:1) 使用tophtop检查服务器CPU、内存使用率;2) 通过df -h查看磁盘空间是否不足;3) 执行ab -n 1000 -c 10 http://your_domain.com/进行压力测试,观察响应时间和错误率;4) 检查Nginx错误日志/var/log/nginx/error.log定位具体错误;5) 分析慢查询日志/var/log/mariadb/slow-query.log优化数据库查询;6) 启用Nginx access_log分析访问模式,考虑添加缓存或优化静态资源加载。

分享:
扫描分享到社交APP
上一篇
下一篇