Ubuntu 20.04/22.04 搭建LNMP开发环境

Ubuntu 20.04/22.04 搭建LNMP开发环境

nginx/1.26安装

  1. 安装指定版本nginx

    # 更新apt仓库缓存
    sudo apt-get update
    # 安装nginx依赖的第三方包
    sudo apt install curl gnupg2 ca-certificates lsb-release
    # 添加nginx官方的ubuntu的apt源
    echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
    # 新增nginx apt源的密钥,并检验是否成功
    curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
    sudo apt-key fingerprint ABF5BD827BD9BF62
    # 更新apt仓库缓存
    sudo apt-get update
    # 查找nginx官网提供可安装的版本
    sudo apt-cache madison nginx
    #  以选定安装1.26.0-1~jammy版本为例
    # ubuntu 22.04安装nginx1.26
    sudo apt install nginx=1.26.0-1~jammy
    # ubuntu 20.04安装nginx1.26
    sudo apt install nginx=1.26.0-1~focal
    # 加入开机启动
    sudo systemctl enable nginx
    # 启动nginx
    sudo systemctl start nginx
    # 检查状态
    sudo systemctl status nginx
    
  2. 配置nginx

    查找配置文件:

    sudo find / -name nginx.conf
    sudo vim /etc/nginx/nginx.conf
    

    nginx.conf配置更改:

    # 用户组修改成www-data,防止无法调用php项目
    user  www-data;
    # 客户端上传文件大小
    client_max_body_size 20m;
    # 设置网站访问验证
    auth_basic "Please input user and password"; # 验证时的提示信息
    auth_basic_user_file .htpasswd; # 认证文件
    

    default.conf配置修改:

    server {
         listen 80;
         listen [::]:80;
    
         # root /usr/share/nginx/html;
         root /var/www;
    
         # Add index.php to the list if you are using PHP
         index index.html index.htm index.nginx-debian.html index.php;
    
         server_name 127.0.0.1;
         
         ssl on;
         ssl_certificate   cert/example.com.pem;
         ssl_certificate_key  cert/example.com.key;
    
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_prefer_server_ciphers on;
    
         location / {
                 # First attempt to serve request as file, then
                 # as directory, then fall back to displaying a 404.
                 try_files $uri $uri/ =404;
                 proxy_cookie_path / "/; httponly; secure; SameSite=None";
         }
    
         location /testCiProject/api/ {
                 try_files $uri $uri/ /testCiProject/api/public/index.php?/$request_uri;
         }
    
         # pass PHP scripts to FastCGI server
         #
         location ~ \.php$ {
                 fastcgi_pass   unix:/var/run/php/php7.4-fpm.sock;
                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                 include        fastcgi_params;
         }
    }
    

PHP/7.4安装

  1. 安装指定版本php

    # 更新安装源(安装默认版本时不需要)
    sudo add-apt-repository ppa:ondrej/php
    # 更新apt仓库缓存
    sudo apt-get update
    # 查询当前仓库的php版本(ubuntu22.04默认php版本为7.4)
    sudo apt-cache show php7.4
    # 安装php7.4
    sudo apt-get install php7.4
    # 安装php7.4拓展
    sudo apt-get install php7.4-mcrypt php7.4-mbstring php7.4-curl php7.4-cli php7.4-mysql php7.4-gd php7.4-intl php7.4-xsl php7.4-zip
    # 安装php7.4-fpm
    sudo apt-get install php7.4-fpm
    # 检查状态
    sudo systemctl status php7.4-fpm
    
  2. 安装PHP代码解密扩展

    # 将ioncube.tar.gz解压到home目录,执行以下操作
    sudo tar -zxvf ioncube.tar.gz
    sudo mv ~/ioncube/ioncube_loader_lin_7.4.so /usr/lib/php/20190902/
    sudo mv ~/ioncube/00-ioncube.ini /etc/php/7.4/fpm/conf.d
    
  3. 配置php.ini文件

    查找配置文件:

    sudo find / -name php.ini
    sudo vim /etc/php/7.4/fpm/php.ini
    

    配置更改:

    # 允许上传文件大小的最大值
    upload_max_filesize = 20M
    # 通过表单POST给PHP的所能接收的最大值
    post_max_size = 30M
    # php页面占用的最大内存
    memory_limit = 256M
    # php页面执行最大时间
    max_execution_time = 300
    # php页面接受数据最大时间
    max_input_time = 600
    
  4. 卸载apach(防止跟nginx端口冲突,可不操作)

    sudo apt-get --purge remove apache2
    sudo apt-get --purge remove apache2.2-common
    sudo apt-get autoremove
    sudo find  /etc -name "*apache*" -exec  rm -rf {} \;
    

mysql/8.0安装

  1. 安装指定版本的mysql

    # 获得deb包
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
    # 安装deb包(中间选择5.7)
    sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
    # 更新apt仓库缓存
    sudo apt-get update
    # 如果更新报错,缺少key,则运行下列语句,替换对应缺少的key
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
    # 更新后查看当前mysql的可安装版本
    sudo apt-cache policy mysql-server
    # 安装 mysql5.7(安装过程需要配置输入 mysql root 的password)
    sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*
    
    # 如果报错,先取消上面的安装
    sudo apt --fix-broken install
    # 然后安装对应的依赖
    # 安装libmecab2
    sudo apt install libmecab2
    # 安装libaio1
    sudo apt install libaio1
    # 安装mysql-community-client
    sudo apt install mysql-community-client=5.7*
    # 再次安装 mysql 5.7
    sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*
    
  2. 安装mysql 8.0

    # 安装MySQL 8 只需这步(ubuntu22.04默认php版本为8.0)
    sudo apt install mysql-server -y
    # 检查状态
    sudo systemctl status mysql
    
  3. 配置mysql

    查看初始密码位置:

    sudo cat /etc/mysql/debian.cnf
    

    查找配置文件:

    sudo find / -name my.cnf
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    

    配置更改:

    # 允许远程配置
    bind-address = 0.0.0.0
    # 在【mysqld】下加入以下配置(解决group by报错解决)
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    group_concat_max_len = 102400
    

    创建用户并授权:

    # 创建用户
    create user 'username'@'%' identified by 'password';
    # 修改用户名
    rename user 'username'@'host' to 'username'@'host';
    # 修改用户密码
    set password for 'username'@'host' = PASSWORD('123456');
    # 删除用户
    drop user 'username'@'host';
    # 授权
    grant privilegesCode on dbName.tableName to username@host;
    # 例:授数据库所有表所有权限
    grant all privileges on *.* to 'username'@'%';
    # 刷新权限
    flush privileges;
    # 显示授权
    show grants;
    show grants for 'username'@'host';
    
     参数说明:
    - privilegesCode表示授予的权限类型,常用的有以下几种类型:
    	- all privileges:所有权限。
    	- select:读取权限。
    	- delete:删除权限。
    	- update:更新权限。
    	- create:创建权限。
    	- drop:删除数据库、数据表权限。
    - dbName.tableName表示授予权限的具体库或表,常用的有以下几种选项:
    	- *.*:授予该数据库服务器所有数据库的权限。
    	- dbName.*:授予dbName数据库所有表的权限。
    	- dbName.dbTable:授予数据库dbName中dbTable表的权限。
    - username@host表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:
    	- localhost:只允许该用户在本地登录,不能远程登录。
    	- %:允许在除本机之外的任何一台机器远程登录。192.168.52.32:具体的IP表示只允许该用户从特定IP登录。
    

    创建数据库:

    # 创建数据库
    create database mydb default character set utf8 collate utf8_general_ci;
    # 删除数据
    drop database mydb;
    

更改文件权限

# 修改权限 文件夹 755
sudo find zhky -type d -exec chmod 755 {} \;
# 用户改root权限
sudo chown root:root -R zhky
# 修改文件权限 644
sudo find zhky -type f -exec chmod 644 {} \;
# 修改uploads文件夹权限
sudo chown www-data:www-data -R uploads/
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值