CentOS 7 上安装 LEMP(二):安装 Nginx,MariaDB 和 PHP

蒲公英 提交于 周四, 08/17/2017 - 21:26
CentOS 7 上安装 LEMP

原文:How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7

 

安装 Nginx

增加 CentOS 7 EPEL 库

$ sudo yum install epel-release

安装 Nginx

$ sudo yum install nginx

启动 Nginx

$ sudo systemctl start nginx

如果运行了防火墙,运行以下命令允许 http 和 https 传输

$ sudo firewall-cmd --permanent --zone=public --add-service=http 
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload

浏览器访问以下地址,验证是否安装成功。(你会看到默认的 Nginx 页面)

http://域名或IP地址/

设置 Nginx 在 boot 启动

$ sudo systemctl enable nginx

安装 MariaDB

MariaDB 是 Mysql 的一个分支,由 Mysql 之父 Michael Widenius 主导开发,开源社区维护。

Michael Widenius 早前以 10亿美元的价格将自己创建的公司 MySQL AB 卖给了 SUN,MySQL 的所有权也落入了 SUN 的手中,MySQL 有被闭源的潜在风险。

外加 SUN 收购 Mysql 后发展的很慢,Michael Widenius 认为 Mysql 在 SUN 手里没有前途,所以另辟途径开发了 MariaDB,MariaDB 完全兼容 Mysql 的同时,有些方面比 Mysql 更好,被视为开源数据库 MySQL 的替代品。安装 MariaDB

$ sudo yum install mariadb-server mariadb

启动 MariaDB

$ sudo systemctl start mariadb

MariaDB 已经运行,为了安全我们运行以下脚本

$ sudo mysql_secure_installation

提示会问你当前的 root 密码,因为刚安装 MariaDB,密码为空,直接回车即可。之后会问是否设置密码,输入 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 authorisation.

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

剩下的一路回车接受默认值即可。 最后设置 MariaDB 在 boot 启动

$ sudo systemctl enable mariadb

安装 PHP

安装 php 及 php-mysql 和 php-fpm 包

$ sudo yum install php php-mysql php-fpm

配置 PHP 处理器

  • 安全设置
    $ sudo vi /etc/php.ini
    cgi.fix_pathinfo = 0
  • php-fpm 配置
    $ sudo vi /etc/php-fpm.d/www.conf
    listen = /var/run/php-fpm/php-fpm.sock
    listen.owner = nobody
    listen.group = nobody
    user = nginx
    group = nginx

重起 PHP 处理器

$ sudo systemctl start php-fpm

设置 php-fpm 在 boot 启动

$ sudo systemctl enable php-fpm

配置 Nginx 执行 PHP

追加 server

$ sudo vi /etc/nginx/conf.d/demo.conf
server {
    listen       80;
    server_name  域名或IP地址;

    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;
    }
}

重起 Nginx

$ sudo systemctl restart nginx

测试 PHP 执行

创建 info.php 文件

$ sudo vi /usr/share/nginx/html/info.php
<?php phpinfo(); ?>

浏览器访问以下地址:

http://域名或IP地址/info.php
Blog tags