Ubuntu 搭建LNMP+redis+composer环境

Ubuntu 搭建LNMP+redis+composer环境

orzlee
2018-11-23 / 0 评论 / 2,125 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年03月17日,已超过1133天没有更新,若内容或图片失效,请留言反馈。

lnmp.jpg

前言

作为开发者,orzlee觉得必须得会搭建开发与生产环境,光靠集成环境是不行的,并不是所有公司都用集成环境。特别是用久了集成环境居然忘了最基本的环境搭建,这可不行。老老实实自己装,虽然麻烦,但是利大于弊。

Nginx

orzlee已经写过一篇关于Ubuntu 安装nginx的文章,这里就不再重复了。

MySql

Ubuntu环境下,直接使用linux packages安装就好了。

当前最新版为Mysql5.7,推荐安装5.7版本,相对于以往版本添加了新功能:

  • 3倍更快的性能
  • InnoDB 相关改进
  • 新的优化器
  • 多源复制
  • GIS 相关改进
  • 原生 JSON 支持

orzlee觉得最大的亮点就是支持原生JSON。
相关文档

##更新源和升级已安装的库、软件、依赖等等
apt update && apt upgrade

sudo apt install mysql-server-5.7 mysql-client-5.7

在安装途中会要求输入两次密码(第二次是确认密码)。
安装完成之后可以尝试连接mysql:

mysql -uroot -p

然后输入你安装时候的密码。
出现如下界面表示安装完成:

mysql.png

输入exit退出mysql。

有些情况无法设置mysql密码,并且默认密码为空,这种情况是mysql验证方式问题。
连接mysql查询

select Host,User,plugin from mysql.user where User='root';

一般都是 unix_socket 或者 auth_socket;
修改密码验证方式

update mysql.user set plugin='mysql_native_password';

修改密码

update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';

刷新权限

flush privileges;

mysql8.0用上面修改密码不好使,使用 caching_sha2_password 加密方式(默认),使用 mysql_native_password 加密方式会出现如下错误!!!
The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'very_strong_password';
FLUSH PRIVILEGES;

PHP

安装PHP7.2,也推荐使用linux packages安装,包括之后安装扩展更新等等都可以使用linux packages来安装。

  1. 首先安装第三方源,添加源过程中会要求按一次回车

    sudo apt install software-properties-common
    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
  2. 安装PHP7.2

    sudo apt install php7.2 php7.2-fpm
    php -v
  3. 安装PHP7.2模块

    sudo apt install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml
    sudo service php7.2-fpm restart

    如果以后需要安装其他模块也可以直接安装

    apt update
    sudo apt install example-model
    sudo service php7.2-fpm restart

composer

作为PHP的包管理工具,它对于PHP来说当然必不可少。

sudo apt install curl git zip unzip
cd ~
curl -sS https://getcomposer.org/installer| php
sudo mv composer.phar /usr/local/bin/composer

redis

  1. 安装编译和测试依赖

    sudo apt install build-essential tcl
  2. 下载redis
    创建一个工作目录,下载redis并且解压缩

    sudo mkdir ~/work
    cd ~/work
    curl -O http://download.redis.io/redis-stable.tar.gz
    tar xzvf redis-stable.tar.gz
  3. 编译安装

    cd redis-stable
    make
    make test
    sudo make install
  4. 配置redis

    • 4.1 创建一个配置文件目录

      sudo mkdir /etc/redis
    • 4.2 移动示例配置文件到/etc/redis

      sudo cp ~/work/redis-stable/redis.conf /etc/redis/redis.conf
    • 4.3 编辑redis配置文件

      sudo nano /etc/redis/redis.conf
      ## 如果只是希望本地使用,建议去掉#号注释
      bind 127.0.0.1
      ## 将 supervised no 改为
      supervised systemd
      ## 将 dir 改为
      dir /var/lib/redis ##或者你可以选择其他目录

      nano保存修改退出

    • 保存
      Ctrl+o

    • 确认修改
      Enter

    • 退出
      Ctrl+x

    • 4.4 配置系统单元文件

      sudo nano /etc/systemd/system/redis.service

      添加如下内容:

      [Unit]
      Description=Redis In-Memory Data Store
      After=network.target
      #
      [Service]
      User=redis  #指定用户 --删除注释
      Group=redis ##指定用户组 --删除注释
      ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
      ExecStop=/usr/local/bin/redis-cli shutdown
      Restart=always
      #
      [Install]
      WantedBy=multi-user.target

      切记删除标记注释,不然无法启动redis

    • 4.5 设置redis用户、用户组和目录

      sudo adduser --system --group --no-create-home redis
      sudo mkdir /var/lib/redis   # 创建目录
      sudo chown redis:redis /var/lib/redis   # 设置/var/lib/redis用户和组
      sudo chmod 770 /var/lib/redis   # 调整权限
  5. 测试redis

    • 5.1 启动redis

      sudo systemctl start redis
    • 5.2 查看状态

      systemctl status redis

      如果正常会输出:

      ● redis.service - Redis Server
      Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
      Active: active (running) since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
      Process: 3115 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
      Main PID: 3124 (redis-server)
      Tasks: 3 (limit: 512)
      Memory: 864.0K
      CPU: 179ms
      CGroup: /system.slice/redis.service
             └─3124 /usr/local/bin/redis-server 127.0.0.1:6379
    • 5.3 测试实例

      • 5.3.1 连接redis
        redis-cli
        127.0.0.1:6379> ping   # 返回 PONG
      • 5.3.2 存入数据
        127.0.0.1:6379> set test "working!"  # 返回 ok
      • 5.3.3 获取数据
        127.0.0.1:6379> get test  # 返回 "working!"
        127.0.0.1:6379> exit

        多测试几次,在退出后再次进入获取test值是否正常。

      • 5.3.4 多次测试无误后重启redis
        127.0.0.1:6379> sudo systemctl restart redis
  6. 开机启动redis

    sudo systemctl enable redis

结语

其实虽然手动搭建Web环境略显繁琐,但是每次搭建都会有新收获。熟能生巧,而且在linux上敲命令的感觉真的很爽,如果命令都熟悉了就会觉得超过控制鼠标的输入效率。集成环境解决了一部分问题,但是也带来新的问题,世上的问题都是这样,在解决问题的同时,也会随之出现一个或多个新的问题,只是问题的大小而已。

0
取消
扫码打赏
支付金额随意哦!

评论 (0)

取消