所在位置:

怎么样在Centos上安装Linux+Nginx+Mysql+PHP【翻译】

介绍

Nginx 是一个不断增长的开源Web服务器软件和PHP v7是PHP引擎的最新版本。在本教程中,我们将用它来建立 LEMP (Linux, ENginx, MySQL, PHP) 组合服务器。Nginx取代LAMP组合发现流行的Apache软件包。

你需要什么

在你开始这份指引之前,你需要以下的内容:

  • 一个有 root 权限的VPS

第一步 ---- 在Centos 7上安装 Nginx

目前Nginx在默认的Centos仓库中是不可用的,我们将运行这个命令来安装EPEL仓库

$ sudo yum install epel-release -y

下一步, 我们将要安装Nginx

$ sudo yum install nginx -y

安装完成后,开机能自动启动nginx和运行它

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

为了检查Nginx是否正在运行,你可以通过浏览器访问你的IP地址。首先,找到你的IP地址:

$ sudo dig +short myip.opendns.com @resolver1.opendns.com

然后,只需将它粘贴到浏览器中,就可以看到类似的页面:

第二步 ---- 安装 MySQL(MariaDB)

一旦安装了web服务器,你我们又可以继续进行MySQL安装了。MariaDB是一个旧的和众所周知的MySQL服务的社区分支。至从Mariadb成为默认的Centos库,我们可以运行Yum直接安装它。

$ sudo yum install mariadb-server mariadb -y

安装完成后,开机能自动启动mysql和运行它

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

然后,运行将会移除一些默认设置的安装脚本:

$ sudo mysql_secure_installation

MariaDB将会问你root的密码,但是,由于这是初次安装,你没有,所以按下回车就可以了。下一个提示符将询问您是否要设置root密码,输入Y和并安照说明进行操作:

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorization.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
...Success!

你可以安全地单击回车键前接受所有其它问题的默认设置。安装完成后,继续进行PHP安装。

第三步 ---- 安装 PHP v7.1.0

我们要做的第一件事就是额外安装包含PHP v7.1包的Centos仓库:

$ sudo wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo rpm -Uvh remi-release-7.rpm

使用PHP71默认被禁止的库:

yum install yum-utils -y
yum-config-manager --enable remi-php71

其次,安装PHP包:

$ sudo yum --enablerepo=remi,remi-php71 install php-fpm php-common

安装常用的模块:

yum --enablerepo=remi,remi-php71 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

第四步 ---- 配置Nginx和PHP 7

用vim或者nano编辑器来创建一个新的Nginx配置文件

$ sudo nano /etc/nginx/conf.d/default.conf

输入这些代码:

server {
    listen   80;
    server_name  your-server-ip;

    # note that these lines are originally from the "location /" block
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

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

重要:把 your-server-ip 替换成你自己实际的 IP

保存文件时可以按 CTRL + X (对于MAC用户可以用 CMD + X ),重启nginx来生效:

$ sudo systemctl restart nginx

现在,打开 PHP-FPM 的配置:

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

找到我替换这些行:

user = apache 替换成 user = nginx

group = apache 替换成 group = nginx

listen.owner = nobody 替换成 listen.owner = nginx

listen.group = nobody 替换成 listen.group = nginx

最后,在 listen = 127.0.0.1:9000 下面加入这一行:

listen = /var/run/php-fpm/php-fpm.sock

再次,按 CTRL + X保存文件,启动 php-fpm和开机启动它

$ sudo systemctl start php-fpm.service
$ sudo systemctl enable php-fpm.service

测试运行php网站

  • 进入到 /usr/share/nginx/html,添加一个 index.php 文件,内容如下:
<?php
    echo phpinfo();
?>
  • 修改 /var/www/html 目录的所有者权限
$ sudo chown -R nginx:nginx /var/www/html
  • 在浏览中输入 http://localhost/index.php 查看

遇到的问题

php网站显示目录或者文件不可写,可以尝试下面这两种方法:

  • 把目录全部的权限设置成 777 (chmod -R 777 目录)
  • 修改 selinux 的配置文件( /etc/selinux/config ) ,内容如下:
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加

使用 setenforce 0 命令使配置立即生效或者直接重启Linux

参考网站

原文:https://www.hostinger.com/tutorials/how-to-install-lemp-centos7#Step-1-Installing-Nginx-on-CentOS-7

【上一篇】Centos使用公钥配置和禁止root远程登录

【下一篇】父子漫画