Linux 源码搭建 LNMP(Linux+Nginx+MySQL+PHP)环境是一个常见的服务器配置任务,适用于需要高性能和灵活性的 Web 应用程序。以下是详细步骤和相关概念:
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
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
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 &
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
编辑 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf
:
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
:
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen = /run/php/php7.4-fpm.sock
sudo /usr/local/nginx/sbin/nginx
sudo /usr/local/php/sbin/php-fpm
原因:可能是端口被占用或配置文件错误。
解决方法:
sudo netstat -tuln | grep 80
sudo /usr/local/nginx/sbin/nginx -t
原因:可能是 PHP-FPM 未正确配置或未启动。
解决方法:
sudo ps aux | grep php-fpm
fastcgi_pass
路径是否正确。原因:可能是权限设置错误或服务未启动。
解决方法:
sudo systemctl status mysql
mysql -u root -p
,然后执行 SHOW GRANTS FOR 'root'@'localhost';
通过以上步骤,你应该能够成功搭建一个 LNMP 环境。如果在过程中遇到其他问题,建议查看相关日志文件以获取更多信息。
领取专属 10元无门槛券
手把手带您无忧上云