CentOS 8.1下搭建LEMP(Linux+Nginx+MySQL+PHP)环境(教程详解)

  • Post category:Linux

下面是详细的攻略。

1. 确认服务器系统版本

首先需要确认自己的服务器系统版本是否为CentOS8.1,如果不是的话需要安装或更换成CentOS8.1版本。

2. 安装Nginx

在CentOS8.1中,我们可以使用dnf命令来安装Nginx。具体操作如下:

sudo dnf install nginx

安装完成后,我们可以通过systemctl命令来启动、停止、重启Nginx服务:

sudo systemctl start nginx  # 启动Nginx
sudo systemctl stop nginx   # 停止Nginx
sudo systemctl restart nginx    # 重启Nginx
sudo systemctl enable nginx     # 设置Nginx自启动

可以通过curl命令来测试Nginx服务是否正常运行:

curl http://localhost

如果能正常返回页面内容,则说明Nginx已经安装和配置完成。

3. 安装MySQL

CentOS8.1默认使用的是MariaDB作为数据库,我们可以使用dnf命令安装:

sudo dnf install mariadb mariadb-server

在安装完成后,我们可以使用systemctl命令来启动、停止、重启MariaDB服务:

sudo systemctl start mariadb  # 启动MariaDB
sudo systemctl stop mariadb   # 停止MariaDB
sudo systemctl restart mariadb    # 重启MariaDB
sudo systemctl enable mariadb     # 设置MariaDB自启动

在启动MariaDB后,我们需要进行初始化操作,具体命令如下:

sudo mysql_secure_installation

在初始化过程中,会提示输入密码、修改root密码、删除匿名用户、禁止root远程登录、删除test数据库等操作。

4. 安装PHP

CentOS8.1默认使用的是PHP7.2版本,我们可以使用dnf命令来安装PHP及相关模块:

sudo dnf install php php-fpm php-mysqlnd php-gd

安装完成后,我们可以通过systemctl命令来启动、停止、重启php-fpm服务:

sudo systemctl start php-fpm  # 启动php-fpm
sudo systemctl stop php-fpm   # 停止php-fpm
sudo systemctl restart php-fpm    # 重启php-fpm
sudo systemctl enable php-fpm     # 设置php-fpm自启动

5. 配置Nginx、MySQL和PHP

  1. 配置Nginx

在/etc/nginx/sites-available/目录下创建一个新的配置文件,并将以下内容复制到文件中:

server {
    listen       80;
    server_name  example.com www.example.com;

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

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

其中:

  • listen:指定Nginx监听端口,此处设置为80端口;
  • server_name:指定站点域名,可以使用通配符来匹配多个域名;
  • root:指定站点的默认文档根目录;
  • index:指定Nginx默认打开的文件;
  • location /:指定Nginx处理所有请求的基础URL;
  • location ~ .php$ :正则匹配所有以.php结尾的请求;
  • fastcgi_pass:指定php-fpm的Unix Socket文件;
  • fastcgi_index:指定php默认访问的文件;
  • fastcgi_param:指定变量值;
  • include:指定引用路径。

创建完成后需要将文件软链接到sites-enabled目录下,并重启Nginx服务。

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx
  1. 配置MySQL

运行以下命令来登录MySQL:

sudo mysql -u root -p

在登录成功后,执行以下命令创建一个新的MySQL用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

其中newuser与password可以替换成自己的用户名和密码。

  1. 配置PHP

在进行PHP配置之前,我们需要先编辑php.ini文件:

sudo nano /etc/php.ini

在打开的文件中,可以找到以下几行代码:

; cgi.fix_pathinfo=1

将此行代码取消注释,并将值改为0。

cgi.fix_pathinfo=0

保存并退出文件。然后,我们需要编辑php-fpm配置文件:

sudo nano /etc/php-fpm.d/www.conf

找到以下两行代码:

;listen.acl_users = apache,nginx
;listen.allowed_clients = 127.0.0.1

将这两行代码取消注释,并将listen.acl_users的值设置为nginx。

listen.acl_users = nginx
listen.allowed_clients = 127.0.0.1

保存并退出文件,并重启php-fpm服务:

sudo systemctl restart php-fpm

示例说明

以下是两个示例说明:

示例一:创建一个新的站点

假设我们想要创建一个新的站点,其域名为example.com,文档根目录为/var/www/example.com。

首先,我们需要在/var/www目录下创建一个新目录:

sudo mkdir /var/www/example.com

然后,我们需要将站点的默认文件(如index.html、index.php等)复制到该目录中。

接下来,我们可以使用以下命令创建一个新的Nginx配置文件:

sudo nano /etc/nginx/sites-available/example.com

将以下内容粘贴到文件中:

server {
    listen       80;
    server_name  example.com www.example.com;

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

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

保存文件并退出。然后,我们需要将此配置文件链接到/etc/nginx/sites-enabled目录中:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

最后,我们需要重启Nginx服务以使配置文件生效:

sudo systemctl restart nginx

示例二:安装一个新的PHP扩展

假设我们需要安装PHP的gd扩展。

首先,我们需要通过dnf命令来查找gd扩展:

sudo dnf search php-gd

然后通过以下命令来安装php-gd扩展:

sudo dnf install php-gd

安装完成后需要重启php-fpm服务以使扩展生效:

sudo systemctl restart php-fpm

我们可以通过以下命令来验证是否安装成功:

php -m | grep gd

如果返回了gd,说明扩展已经安装成功。