首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 源码搭建lnmp

Linux 源码搭建 LNMP(Linux+Nginx+MySQL+PHP)环境是一个常见的服务器配置任务,适用于需要高性能和灵活性的 Web 应用程序。以下是详细步骤和相关概念:

基础概念

  1. Linux:一种开源的操作系统,广泛用于服务器环境。
  2. Nginx:一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。
  3. MySQL:一个流行的关系型数据库管理系统。
  4. PHP:一种广泛使用的开源脚本语言,特别适合 Web 开发。

优势

  • 性能:Nginx 以其高性能和低资源消耗著称。
  • 灵活性:源码安装允许深度定制和优化。
  • 安全性:可以针对具体需求进行安全配置。
  • 可扩展性:易于添加新的服务和模块。

类型

  • 静态网站:仅包含 HTML、CSS 和 JavaScript 文件。
  • 动态网站:使用 PHP 等服务器端脚本语言生成内容。

应用场景

  • Web 应用程序:如论坛、博客、电子商务平台等。
  • API 服务:提供 RESTful 或 GraphQL 接口。
  • 内容管理系统(CMS):如 WordPress、Drupal 等。

搭建步骤

1. 安装必要的依赖

代码语言:txt
复制
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

2. 下载并编译 Nginx

代码语言:txt
复制
wget http://nginx.org/download/nginx-1.21.3.tar.gz
tar -zxvf nginx-1.21.3.tar.gz
cd nginx-1.21.3
./configure --prefix=/usr/local/nginx
make
sudo make install

3. 安装 MySQL

代码语言:txt
复制
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
ln -s /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql
sudo chown -R root:root .
sudo scripts/mysql_install_db --user=root
sudo bin/mysqld_safe --user=root &

4. 安装 PHP

代码语言:txt
复制
wget https://www.php.net/distributions/php-7.4.21.tar.gz
tar -zxvf php-7.4.21.tar.gz
cd php-7.4.21
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
make
sudo make install

5. 配置 Nginx 和 PHP-FPM

编辑 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf

代码语言:txt
复制
server {
    listen 80;
    server_name yourdomain.com;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

编辑 PHP-FPM 配置文件 /usr/local/php/etc/php-fpm.d/www.conf

代码语言:txt
复制
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen = /run/php/php7.4-fpm.sock

6. 启动服务

代码语言:txt
复制
sudo /usr/local/nginx/sbin/nginx
sudo /usr/local/php/sbin/php-fpm

常见问题及解决方法

1. Nginx 无法启动

原因:可能是端口被占用或配置文件错误。

解决方法

  • 检查端口占用情况:sudo netstat -tuln | grep 80
  • 检查 Nginx 配置文件语法:sudo /usr/local/nginx/sbin/nginx -t

2. PHP 文件无法解析

原因:可能是 PHP-FPM 未正确配置或未启动。

解决方法

  • 确保 PHP-FPM 正在运行:sudo ps aux | grep php-fpm
  • 检查 Nginx 配置中的 fastcgi_pass 路径是否正确。

3. MySQL 连接问题

原因:可能是权限设置错误或服务未启动。

解决方法

  • 确保 MySQL 服务正在运行:sudo systemctl status mysql
  • 检查用户权限:mysql -u root -p,然后执行 SHOW GRANTS FOR 'root'@'localhost';

通过以上步骤,你应该能够成功搭建一个 LNMP 环境。如果在过程中遇到其他问题,建议查看相关日志文件以获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券