zoukankan      html  css  js  c++  java
  • ubuntu16.04 安装php7.2+Nginx+Mysql5.7

    安装php7.2

    可以通过 apt list | grep php7 命令查看是否有php7.2的包,ubuntu16.04默认是有7.0的。

    添加源

    sudo apt-get install software-properties-common
    sudo add-apt-repository -y ppa:ondrej/php
    sudo apt-get update

    再次执行 apt list | grep php7 命令就可以发现列表中已经包含有7.2版本的包了。

    安装php7.2

    apt-get install php7.2

    nginx使用php需要安装php7.2-fpm, 和一些php插件

    sudo apt-get install php7.2-mysql php7.2-fpm php7.2-curl php7.2-xml php7.2-gd php7.2-bcmath php7.2-mbstring php-memcached php7.2-zip

    安装完成,执行 php --version 查看是否安装成功

    上述安装php命令会自动安装apache2服务,可以通过 service apache2 status 查看

    卸载apache2,执行以下命令

    service apache2 stop
    apt remove apache2*
    apt autoremove

    安装Nginx

    apt install nginx
    service nginx status #查看状态

    配置php-fpm

    有时候安装完成后不知道安装到什么地方啦可以使用下面命令查找下

    whereis php-fpm

    第一种方法修改配置监听9000端口来处理nginx的请求(这种方法一般在windows上使用)

    修改 /etc/php/7.2/fpm/pool.d/www.conf 文件找到第36行,注释并添加一行

    ;listen = /run/php/php7.2-fpm.sock
    listen = 127.0.0.1:9000

    修改nginx配置/etc/nginx/sites-available/default (这个地方是默认的配置文件,也可以加在其他地方)

    location ~ .php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+.php)(/.+)$;
      fastcgi_pass 127.0.0.1:9000;
      #fastcgi_pass unix:/run/php/php7.2-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }

    另一种方法linux下使用sock方法速度会更快,不修改 /etc/php/7.2/fpm/pool.d/www.conf 文件,使用里面  /run/php/php7.2-fpm.sock 这样的路径,后面nginx也要设置成这种格式  fastcgi_pass unix:/run/php/php7.2-fpm.sock;

    启动php-fpm,nginx

    service php7.2-fpm restart
    service nginx restart

    安装Mysql5.7

    # 查看有没有安装MySQL:

    dpkg -l | grep mysql

    # 安装MySQL:

    apt install mysql-server

    安装完成之后可以使用如下命令来检查是否安装成功:

    netstat -tap | grep mysql

    通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。

    登录mysql数据库可以通过如下命令:

    mysql -u root -p

    -u 表示选择登陆的用户名, -p 表示登陆的用户密码,现在是mysql数据库是没有密码的,Enter password:处直接回车,就能够进入mysql数据库。

    然后通过 show databases; 就可以查看当前的所有数据库。

    接下来,为了确保数据库的安全性和正常运转,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。

    (1)安装验证密码插件。

    (2)设置root管理员在数据库中的专有密码。

    (3)随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。

    (4)删除默认的测试数据库,取消测试数据库的一系列访问权限。

    (5)刷新授权列表,让初始化的设定立即生效。

    对于上述数据库初始化的操作步骤,在下面的输出信息旁边我做了简单注释。

    root@ubuntu-virtual-machine:~# mysql_secure_installation

    Securing the MySQL server deployment.

    Connecting to MySQL using a blank password.

    VALIDATE PASSWORD PLUGIN can be used to test passwords
    and improve security. It checks the strength of password
    and allows the users to set only those passwords which are
    secure enough. Would you like to setup VALIDATE PASSWORD plugin?    # 要安装验证密码插件吗?

    Press y|Y for Yes, any other key for No: N    # 这里我选择N
    Please set the password for root here.

    New password:   # 输入要为root管理员设置的数据库密码

    Re-enter new password:   # 再次输入密码


    By default, a MySQL installation has an anonymous user,
    allowing anyone to log into MySQL without having to have
    a user account created for them. This is intended only for
    testing, and to make the installation go a bit smoother.
    You should remove them before moving into a production
    environment.

    Remove anonymous users? (Press y|Y for Yes, any other key for No) : y     # 删除匿名账户
    Success.


    Normally, root should only be allowed to connect from
    'localhost'. This ensures that someone cannot guess at
    the root password from the network.

    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : N    # 禁止root管理员从远程登录,这里我没有禁止

    ... skipping.
    By default, MySQL comes with a database named 'test' that
    anyone can access. This is also intended only for testing,
    and should be removed before moving into a production
    environment.


    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y   # 删除test数据库并取消对它的访问权限
    - Dropping test database...
    Success.

    - Removing privileges on test database...
    Success.

    Reloading the privilege tables will ensure that all changes
    made so far will take effect immediately.

    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y   # 刷新授权表,让初始化后的设定立即生效
    Success.

    All done!

    检查mysql服务状态:

    systemctl status mysql

    显示如下结果说明mysql服务运行是正常的:

    再次用mysql -u root -p命令,Enter password:处输入刚设置的密码,回车,就能够进入mysql数据库。

    使用 use mysql; 命令打开mysql命名的数据库,显示当前数据库的表:show tables; 查询user表里的数据:select * from user;(user表里是mysql数据库的所有账户信息)

    现在配置mysql允许远程访问,首先编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件:

    vim /etc/mysql/mysql.conf.d/mysqld.cnf

    注释掉bind-address          = 127.0.0.1

    保存退出,然后进入mysql数据库,执行授权命令:

    mysql -u root -p

    mysql> grant all on *.* to root@'%' identified by '你的密码' with grant option;

    mysql> flush privileges;    # 刷新权限

    mysql> exit

    然后执行exit命令退出mysql服务,再执行如下命令重启mysql:

    systemctl restart mysql

    现在Windows下可以使用Navicat图形化工具远程连接Ubuntu下的MySQL数据库,输入刚授权远程权限的密码。

    这里顺便再分享下:Navicat for MySQL 10.1.7安装包

    链接:https://pan.baidu.com/s/1CyDXr79v7Ufc60fv_XQ_gA ,提取码:ohf8

    OK,到这里Ubuntu18.04下安装MySQL已经完成了。

  • 相关阅读:
    IDEA 初次使用,记录心得
    排序算法代码总结-java版
    SpringMVC支持多对象Form Data绑定
    密码安全性检查代码
    PERL/LEX/YACC技术实现文本解析--XML解析
    C代码工具--自动生成enum值和名字映射代码
    再谈CSHELL对C程序员的价值
    怎样设计一个运行日志服务
    Excel里内嵌在线翻译
    EOS -- 一种灵巧的系统运行跟踪模块
  • 原文地址:https://www.cnblogs.com/tdalcn/p/14272889.html
Copyright © 2011-2022 走看看