精华内容
下载资源
问答
  • 使用更精简的镜像常用的Linux系统镜像一般有 Debian、Ubuntu、CentOS和Alpine,其中Alpine是面向安全的轻量级Linux发行版本。Docker的Alpine镜像仅有不到5M的大小,非常适合作为基础镜像。Alpine使用ash这个轻量级的...

    使用更精简的镜像

    常用的Linux系统镜像一般有 Debian、Ubuntu、CentOS和Alpine,其中Alpine是面向安全的轻量级Linux发行版本。Docker的Alpine镜像仅有不到5M的大小,非常适合作为基础镜像。

    Alpine使用ash这个轻量级的shell,而上述其他Linux发行版默认使用bash作为其shell。另外,Aline使用apk作为其包管理工具,软件安装包的名字可能与其他发行版不同,可以在https://pkgs.alpinelinux.org/packages搜索确定安装包的名字。

    压缩RUN语句&清理不必要的文件和程序

    压缩RUN语句

    Docker镜像是分层的,Dockerfile中的每一条RUN语句都会增加一层镜像,导致镜像非常臃肿。多个RUN命令应尽量用一条RUN命令完成,用“&&”和“\”串联每一条命令。

    比如下面的两条RUN命令

    RUNapt-get updateRUN apt-get install -y git

    可以压缩成一条

    RUNapt-get update && \

    apt-get install -y git

    清理不必要的程序和文件

    另外,在用apt安装软件包时,我们可以使用--no-install-recommends参数来避免安装非必须的文件,从而减小镜像的体积;安装完成之后rm -rf /var/lib/apt/lists/* ,清理apt缓存,进一步缩小镜像。

    RUNapt-get update && \

    apt-get install -y --no-install-recommends git && \

    rm -rf /var/lib/apt/lists/*

    使用apk安装软件包时,我们可以使用--no-cache参数达到同样的目的,或者在安装完软件包后使用rm -rf /var/cache/apk/*。

    RUNapk -U --no-cache add git

    或者RUNapk -U add git && \

    rm -rf /var/cache/apk/*

    要注意的是,安装软件包和清理缓存需要在同一条RUN语句中执行,因为每一条RUN语句都会增加一层,这样把apt-get和rm -rf /var/lib/apt/lists/*分开的话,就不能清理apt-get产生的缓存;apk也是同理。

    # 正确RUNapt-get update && \

    apt-get install -y --no-install-recommends git && \

    rm -rf /var/lib/apt/lists/*# 错误

    RUN apt-get update && \

    apt-get install -y --no-install-recommends git && \

    RUN rm -rf /var/lib/apt/lists/*

    在构建镜像的时候,我们在编译阶段可能会下载一些依赖的头文件和用于编译的程序,或者其他相关程序(比如git),这些在程序运行时完全不需要,可以删除掉。

    RUNapt-get update && \

    apt-get install -y git make gcc libssl-dev && \

    ……

    # 编译完成后,清理编译环境和跟程序运行无关的软件

    apt-get purge -y git make gcc libssl-dev

    ……

    多段构建

    从Docker 17.05开始,一个Dockerfile文件可以使用多条FROM语句,每条FROM语句可以使用不同的镜像。这样我们可以把Docker的构建阶段分层多个阶段,以两个FROM语句为例,我们可以使用一个镜像编译我们的程序;另一个镜像使用更精简的镜像,拷贝上一阶段的编译的结果。

    在使用FROM语句时,我们可以用AS为不同的镜像起别名,方便后续操作。用COPY命令从其他镜像拷贝文件时,我们可以用--from=alias src dst从别的阶段复制文件;如果没有为镜像起别名,第一个镜像的ID为0,第二个为1,我们可以用ID从别的阶段拷贝文件,--from=0 src dst

    FROM golang:1.9-alpine as builderRUNapk --no-cache add gitWORKDIR/go/src/github.com/go/helloworld/RUNgo get -d -v github.com/go-sql-driver/mysqlCOPYapp.go .RUN CGO_ENABLED=0GOOS=linux go build -a -installsuffix cgo -o app .FROMalpine:latest as prodRUNapk --no-cache add ca-certificatesWORKDIR/root/COPY--from=0 /go/src/github.com/go/helloworld/app .CMD ["./app"]

    压缩镜像

    使用docker export和docker import

    docker export是用来保存一个容器的,所以我们需要有一个正在运行的容器才能使用此命令。

    docker export > export.tar

    docker import用来加载保存的容器,但是不能恢复成一个容器,而是变成一个镜像

    docker import export.tar :[TAG]

    可以用一条命令实现

    docker export | docker import - [:标签]

    使用export和import后得到的镜像不会保存镜像的历史,所以镜像会变小。

    docker save是用来保存一个镜像的,docker save>save.tar;然后可以用docker load加载我们保存的镜像,docker load < save.tar。使用docker save和load恢复后的镜像依然会保存镜像的历史。

    test镜像未经过压缩的,test/import镜像是经过压缩的镜像,可以看到已经变小了一些

    5f06161b91c1fa62d02e6dcf05424608.png

    使用docker-squash

    github地址:https://github.com/jwilder/docker-squash

    docker save | sudo docker-squash -t newtag | docker load

    参考文章

    https://www.cnblogs.com/kuku0223/p/8421964.html

    https://zhuanlan.zhihu.com/p/42815689

    https://stackoverflow.com/questions/49118579/alpine-dockerfile-advantages-of-no-cache-vs-rm-var-cache-apk

    https://www.cnblogs.com/zhangmingcheng/p/7122386.html

    https://www.jianshu.com/p/1d889800cdfe

    https://tuhrig.de/flatten-a-docker-container-or-image/

    展开全文
  • MySQL安装与配置(Linux TAR版本5.7.21)

    千次阅读 2018-04-05 15:04:19
    Linux版本的MySQL有很多安装方式 这里介绍免安装版本,tar包版本的安装和配置 下载 ...MySQL for Linux下载地址:https://dev.mysql.com/downloads/mysql/ ...圈出来的三个部分,自上而下分别是精简包(只包含M...

    Linux版本的MySQL有很多安装方式

    这里介绍免安装版本,tar包版本的安装和配置

    下载

    MySQL for Linux下载地址:https://dev.mysql.com/downloads/mysql/

    这里写图片描述

    注意:“Select Operating System:”选项我们选择“Linux - Generic”

    圈出来的三个部分,自上而下分别是精简包(只包含MySQL)、测试套件、完整包(包含MySQL和测试套件)

    这里我们下载精简包就可以了(自行对应32bit/64bit)

    解压&依赖

    首先留意一个点,glibc版本和libaio

    我们下载的时候能够看到文件名有“glibc2.12”字样

    我们打开命令行

    ldd --version
    

    我们能够看到glibc版本号,不低于2.12即可

    MySQL依赖于libaio 库

    在基于Yum的系统上:

    yum install libaio
    

    在基于APT的系统上:

    apt install libaio1
    

    我们准备解压(习惯上我们把文件都放在/usr/local路径下)

    这里写图片描述

    解压并且重命名文件夹为“mysql”

    tar -xzvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
    mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql
    

    此时我们可以用ls命令看到有一个mysql文件夹已经被解压完毕

    安装

    进入mysql目录下

    # 创建一个mysql用户和组
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    # 初始化数据库
    bin/mysqld --initialize-insecure --user=mysql
    # 启动MySQL服务器(安全模式)
    bin/mysqld_safe --user=mysql &
    

    此时MySQL已经在后台运行

    初始化

    进入mysql/bin目录下

    # 进行初始化操作(酌情处理 第一个密码检查插件不推荐安装)
    ./mysql_secure_installation
    

    初始化完成进入mysql/support-files路径下

    # 关闭MySQL
    ./mysql.server stop
    # 启动MySQL(非安全模式)
    ./mysql.server start
    

    进入mysql/bin目录下

    ./mysql -u root -p
    

    输入root密码即可登陆mysql

    USE mysql;
    SELECT u.`User`,u.`Host` FROM `user` u WHERE u.`User`='root';
    

    我们可以看到Host字段的值是localhost,这样我们无法从外部连接数据库

    # 更新Host字段为%
    UPDATE `user` u SET u.`Host`='%' WHERE u.`User`='root';
    FLUSH PRIVILEGES;
    

    这时我们就可以使用别的机器连接这台机器上面的MySQL了

    这里写图片描述

    连接成功

    设置自动启动方法一

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    update-rc.d mysql defaults
    

    设置自动启动方法二(systemd)

    如果觉得上面的方法一不够好用,可以试一试方法二

    我们进入/etc/systemd/system路径下创建名为“mysql.service”的文件

    cd /etc/systemd/system/
    vi mysql.service # 不习惯用vi的话可以用gedit
    

    然后填写以下配置

    [Unit]
    Description=MySQL 5.7.21
    
    [Service]
    Type=forking
    User=root
    # 下面这三个对应的就是mysql.server的启动/重启/关闭命令(路径请自行对应)
    ExecStart=/usr/local/mysql/support-files/mysql.server start
    ExecReload=/usr/local/mysql/support-files/mysql.server restart
    ExecStop=/usr/local/mysql/support-files/mysql.server stop
    
    [Install]
    WantedBy=multi-user.target
    

    填写完成后就可以使用systemctl来操作mysql的服务了

    systemctl start mysql # 启动MySQL
    systemctl restart mysql # 重启MySQL
    systemctl stop mysql # 关闭MySQL
    systemctl enable mysql # 允许MySQL开机启动
    

    手动执行systemctl enable mysql后即可完成对mysql的自启设置

    部分系统在刚刚添加完配置文件后使用systemctl,会提示找不到mysql.service

    重启即可解决(或者使用命令“systemctl daemon-reload”重新加载一下即可)

    展开全文
  • 选择 Linux-Generic 而不是Oracle & Ren Hat Linux 6 也可以下载精简版 如无法安装有错误提示,可先安装依赖 yum -y install perl yum -y install libaio 如果未解决,将冲突卸载 yum remove mysql-libs   ...

    mysql

    选择 Linux-Generic 而不是Oracle & Ren Hat Linux 6
    也可以下载精简版
    如无法安装有错误提示,可先安装依赖包
    yum -y install perl  
    yum -y install libaio  
    如果未解决,将冲突包卸载
    yum remove mysql-libs
     
    执行安装命令
    rpm -ivh MySQL-server-5.5.31-2.linux2.6.x86_64.rpm MySQL-client-5.5.31-2.linux2.6.x86_64.rpm 
     
    启动MySQL
    service mysql start
    查看MySQL是否正常启动(默认端口:3306)
    netstat -nat

    如果mysql启动失败
    关闭selinux:vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 然后重启
    如果还是失败
    执行命令chown -R mysql:mysql /var/lib/mysql 将mysql所有者修改为mysql

     
    设置mysql密码
    /usr/bin/mysqladmin -u root password '******' 
     
    登录mysql
    1.ssh 
    mysql -u root -p

    2.win
    d:\mysql -u root
    enter password :  123456

    所遇到问题


    错误 1.远程访问错误提示
    1130,ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server 

    处理方法
    猜想是无法给远程连接的用户权限问题。 
    这样子操作mysql库,即可解决。 
    在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可 
    mysql -u root -p  
    mysql;show databases;
    mysql;use mysql;  
    mysql;show tables;
    mysql;select 'host' from user where user='root';  
    mysql;update user set host = '%' where user ='root';  
    mysql;flush privileges;  
    mysql;select 'host'   from user where user='root'; 
     
    第一句:以权限用户root登录  
    第二句:选择mysql库  
    第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)  
    第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址  
    第五句:刷新MySQL的系统权限相关表  
    第六句:再重新查看user表时,有修改。。  

    重起mysql服务即可完成。 


    错误 1.1 执行update user set host = '%' where user ='root';  时提示
    ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

    处理方法
    是因为 表中存在两条root 记录,而host 是键值,所以不能修改。
    update user set host='%' where user='root'and host='localhost';

    针对单一记录进行修改。


    2.远程访问错误提示
    2003 cant connect to mysql 10060/10061

    处理方法

    一般来说是防火墙原因
    在图形界面 系统->管理->防火墙->禁用->应用
    在命令行执行 #setup
    中文界面中->防火墙配置
    英文界面中->firewall config
    关闭防火墙相应的会带来一些危险

    添加mysql 规则方法
    1.配置文件

    vi /etc/sysconfig/iptables

    添加-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    更改完了之后输入service iptables restart 

    2.命令行图形化

    setup->firewall config->costomize->forward->add

     添加两条
    port/port range:3306

    protocol:tcp

    --

    port/port range:3306

    protocol:udp

    3.xwindows

    系统->管理->防火墙->其他端口->添加
    找到两条端口为 3306 的mysql规则 一条tcp 一条udp 添加










    mysql
    选择 Linux-Generic 而不是Oracle & Ren Hat Linux 6
    也可以下载精简版
    如无法安装有错误提示,可先安装依赖包
    yum -y install perl  
    yum -y install libaio  
    如果未解决,将冲突包卸载
    yum remove mysql-libs
     
    执行安装命令
    rpm -ivh MySQL-server-5.5.31-2.linux2.6.x86_64.rpm MySQL-client-5.5.31-2.linux2.6.x86_64.rpm 
     
    启动MySQL
    service mysql start
    查看MySQL是否正常启动(默认端口:3306)
    netstat -nat

    如果mysql启动失败
    关闭selinux:vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 然后重启
    如果还是失败
    执行命令chown -R mysql:mysql /var/lib/mysql 将mysql所有者修改为mysql

     
    设置mysql密码
    /usr/bin/mysqladmin -u root password '******' 
     
    登录mysql
    1.ssh 
    mysql -u root -p

    2.win
    d:\mysql -u root
    enter password :  123456

    所遇到问题


    错误 1.远程访问错误提示
    1130,ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server 

    处理方法
    猜想是无法给远程连接的用户权限问题。 
    这样子操作mysql库,即可解决。 
    在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可 
    mysql -u root -p  
    mysql;show databases;
    mysql;use mysql;  
    mysql;show tables;
    mysql;select 'host' from user where user='root';  
    mysql;update user set host = '%' where user ='root';  
    mysql;flush privileges;  
    mysql;select 'host'   from user where user='root'; 
     
    第一句:以权限用户root登录  
    第二句:选择mysql库  
    第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)  
    第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址  
    第五句:刷新MySQL的系统权限相关表  
    第六句:再重新查看user表时,有修改。。  

    重起mysql服务即可完成。 


    错误 1.1 执行update user set host = '%' where user ='root';  时提示
    ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

    处理方法
    是因为 表中存在两条root 记录,而host 是键值,所以不能修改。
    update user set host='%' where user='root'and host='localhost';

    针对单一记录进行修改。


    2.远程访问错误提示
    2003 cant connect to mysql 10060/10061

    处理方法

    一般来说是防火墙原因
    在图形界面 系统->管理->防火墙->禁用->应用
    在命令行执行 #setup
    中文界面中->防火墙配置
    英文界面中->firewall config
    关闭防火墙相应的会带来一些危险

    添加mysql 规则方法
    1.配置文件

    vi /etc/sysconfig/iptables

    添加-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    更改完了之后输入service iptables restart 

    2.命令行图形化

    setup->firewall config->costomize->forward->add

     添加两条
    port/port range:3306

    protocol:tcp

    --

    port/port range:3306

    protocol:udp

    3.xwindows

    系统->管理->防火墙->其他端口->添加
    找到两条端口为 3306 的mysql规则 一条tcp 一条udp 添加


    展开全文
  • Tiny Core Linux是一个轻量化的Linux系统,最新的12.0版本图形界面只有 26 MB,由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。 一、硬盘...

    Tiny Core Linux 是一个轻量化的Linux系统,最新的12.0版本图形界面只有 26 MB,由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。

    本系统在安装完ngnix+php+mysql后,整个VM虚拟机镜像文件,才不到70M,真正是小巧玲珑,这也正是使用这个系统的魅力所在。

    一、硬盘安装

    1. 可以从官网:http://www.tinycorelinux.net/ 下载所需要的ISO镜像文件,本次使用的是v12.0的32位版本。
    2. 使用Vware创建一个新的虚拟机,创建时内存可适应调大一些,因为Tiny Core Linux是加载到内存中运行的,内存太小可能在安装mysql等软件后造成运行失败。虚拟机硬盘需要改为IDE模式(SCSI模式不能支持硬盘安装)。

       

    3. 开启虚拟机进入桌面系统,点击下方的Apps图标,会提示首次运行是否选择最快的镜像,我们可以点击“Yes",软件将自动检测最快的软件仓库镜像,国内一般会检测到mriior.163.com网易源。
       

      进入软件仓库后,点击“Apps“---“Cloud(Remote)"---“Browse“后,输入tc-install后按回车键搜索,在找到的列表中选择“tc-insatll-GUI.tcz"并安装。
       

       其中的参数:vga=788 为 800*600 分辨率的桌面,如果用 vga=791 则开启 1024*768 分辨率的桌面。如果不想让系统自动登录,可以加上noautologin vga=788,然后安装进入系统后,可以使用 sudo passwd tc与 sudo passwd root来修改密码,最后需要在 /opt/.filelist 文件中加入 etc/passwd 与 etc/shadow,用于持久化密码相关文件。这样处理后,进入系统将会停留在登录界面,如果使用账号 tc 登录,就会进图形界面,如果使用 root 登录,则会进入命令行。

      关机后,硬盘的安装已经完成,我们可以将虚拟机中的CD光驱直接删除,然后重新启动从硬盘加载运行到桌面。

    二、Nginx安装与配置

    1. 打开桌面上的Apps图标,需要重新运行最快的软件源检测,之后搜索nginx并安装,就可以将nginx软件安装到硬盘中。
       

       

    2. 设置相关配置文件:打开桌面最右边图标,终端Terminal后, 输入以下命令,用于进入相应文件夹,并复制配置文件。

      cd /usr/local/etc/nginx/
      sudo cp original/nginx.conf.default nginx.conf
      sudo cp original/fastcgi_params.default fastcgi_params
      sudo cp original/mime.types.default mime.types
      
      sudo mkdir /usr/local/html
      sudo cp /usr/local/lib/nginx/html/index.html /usr/local/html

      复制好配置文件后,我们可以尝试启动nginx服务,使用命令:

      sudo /usr/local/etc/init.d/nginx start

      但是系统提示:
       

      可以看到服务启动失败,我们需要改动一下nginx.conf文件,将access_log日志文件关闭或重新设置路径。运行命令:

      sudo vi /usr/local/etc/nginx/nginx.conf

      使用 vi 编辑器,在http段中,加入 access_log off;来关闭日志文件,也可以用下方命令自动替换。
       

      sudo sed -i "s/#access_log /access_log off; #access_log /g" /usr/local/etc/nginx/nginx.conf

      修改完毕后,再使用sudo /usr/local/etc/init.d/nginx start启动服务,应该就可以正常启动了,我们可以使用 ifconfig 查看 虚拟机的 IP 地址,在本机中使用浏览器查看。
       

      打开浏览器,使用 IP 地址浏览,可以看到nginx的欢迎网页,说明nginx已经正常工作了。

    3. 持久化nginx的配置与网页:因为Tiny Core Linux是加载到内存运行的,如果我们不做其它配置,当你重启你的虚拟时后,你会发现所有的nginx配置文件与网页都不见了。我们可以在/opt/.filetool.list文件中,将需要持久化的文件或文件夹加入到该文件中,在关闭系统时,Tiny Core Linux会自动保存这些文件,下次启动时再加载。

      echo "usr/local/etc/nginx/nginx.conf" >> /opt/.filetool.lst
      echo "usr/local/etc/nginx/mime.types" >> /opt/.filetool.lst
      echo "usr/local/etc/nginx/fastcgi_params" >> /opt/.filetool.lst
      echo "usr/local/html" >> /opt/.filetool.lst
    4. 开机自动启动nginx服务:Tiny Core Linux的开机自启动脚本为/opt/bootlocal.sh,我们只要在该脚本中加入nginx的启动命令即可。

      sudo vi /opt/bootlocal.sh

      sudo /usr/local/etc/init.d/nginx start

      保存文件后,再重启虚拟机,nginx将会自动启动了。

    三、PHP 的安装与配置

    1. 打开桌面上的Apps图标,选择“Apps”---“Cloud(Remote)”---“Browse”后,搜索“php”,可以找到PHP-7.4与PHP-8.0,我们使用7.4版,分别安装以下安装包。
      php-7.4-cli.tcz
      php-7.4-ext.tcz
      php-7.4-fpm.tcz
      
      以下插件也需要安装
      libxml2.tcz
      libffi.tcz
      pcre2.tcz

       

    2. 设置相关配置文件:打开桌面最右边图标,终端Terminal后, 输入以下命令,用于进入相应文件夹,并复制配置文件。

      sudo cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
      sudo cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
      sudo cp /usr/local/etc/php7/php.ini-sample* /usr/local/etc/php7/php.ini

      尝试使用命令:sudo /usr/local/etc/init.d/php-fpm start 启动PHP-FPM服务,发现还有两外错误,一是php中默认的hash.so模块加载失败,二是用户组nobody没找到。

      sudo /usr/local/etc/init.d/php-fpm start

      打开php.ini文件,找到hash扩展,禁用它,其它需要用到的扩展可以启用,然后保存文件,也可以使用下方命令行直接替换处理。

      sudo vi /usr/local/etc/php7/php.ini

      sudo sed -i "s/extension=hash/;extension=hash/g" /usr/local/etc/php7/php.ini
      sudo sed -i "s/;extension=mysql/extension=mysql/g" /usr/local/etc/php7/php.ini
      sudo sed -i "s/;extension=pdo_mysql/extension=pdo_mysql/g" /usr/local/etc/php7/php.ini


      系统中没有 nobody 这个组,我们可以直接在 /etc/group 文件最后加上一个组,然后保存文件并把 /etc/group 文件加入到持久化列表中。

      echo "nobody:x:65534:" >> /etc/group
      echo "etc/group" >> /opt/.filetool.lst

      最后再使用命令:sudo /usr/local/etc/init.d/php-fpm start 启动PHP-FPM服务,发现已经可以正常启动了。

    3. 持久化php的配置与自启动PHP-FPM服务

      echo "usr/local/etc/php7/php.ini" >> /opt/.filetool.lst
      echo "usr/local/etc/php-fpm.d/www.conf" >> /opt/.filetool.lst
      echo "usr/local/etc/php-fpm.conf" >> /opt/.filetool.lst

      编辑自动启文件 /opt/bootlocal.sh,加入启动PHP-FPM的命令:sudo /usr/local/etc/init.d/php-fpm start

      sudo vi /opt/bootlocal.sh

      sudo /usr/local/etc/init.d/php-fpm start

    配置 nginx 文件,用于支持 php 文件,先在 html 根目录中创建一个 index.php 文件,内容为: <? phpinfo(); ?>

    sudo chmod 777 /usr/local/html
    echo "<?php phpinfo(); ?>" >> /usr/local/html/index.php

    然后,编辑 nginx.conf 文件,添加 php 的支持代码,最后保存文件

    sudo vi /usr/local/etc/nginx/nginx.conf

            location ~ \.php$ {
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME /usr/local/html$fastcgi_script_name;
                    fastcgi_pass 127.0.0.1:9000;
            }

     也可以使用以下命令行直接替换好相应的内容:

    sudo sed -i "s/index.html index.htm/index.php index.html index.htm/g" /usr/local/etc/nginx/nginx.conf
    sudo sed -i "s/#error_page/location ~ \.php\$ {\n                include fastcgi_params;\n                fastcgi_param SCRIPT_FILENAME \/usr\/local\/html\$fastcgi_script_name;\n                fastcgi_pass 127.0.0.1:9000;\n        }\n        #error_page/g" /usr/local/etc/nginx/nginx.conf
    

     

    修改好文件后,运行命令让 nginx  重新加载配置文件

    sudo /usr/local/etc/init.d/nginx reload

    然后在本机浏览器中,查看网页效果,如果出现了 phpinfo() 的界面,说明 php 文件已经正常启用。
     

    四、数据库mysql的安装

    1. 在Tiny Core Linux新的版本中,已经弃用mysql数据库,转而启用了mariadb数据库,打开桌面上的Apps图标,之后搜索mariadb可以找到10.4与10.5两个版本,可以将mariadb-10.5软件安装到硬盘中,同时安装一下liblz4.tcz 与 pcre2tcz 软件包。
       

      mariadb-10.5.tcz
      liblz4.tcz
      pcre2.tcz
    2. 初始化数据库:我们将默认的数据库存放在 /home/tc/mysql/data 文件夹中,所以先创建相应的文件夹,再使用mysql_install_db来生成初始化的数据库信息。

      sudo mkdir /home/tc/mysql
      sudo mkdir /home/tc/mysql/data
      sudo /usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data

       如果是Tiny Core Linux v10或v11版本中,初始化时可能会碰到错误提示:
       

      可以按提示先创建一个 /auth_pam_tool_dir 文件夹,然后再初始化数据库信息,之后再删除该文件夹:
       

      sudo mkdir /auth_pam_tool_dir
      sudo /usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data
      sudo rm -r /auth_pam_tool_dir

       

    3. 编写 my.cnf 文件,设置好数据库的配置参数:
      先删除原来的 my.cnf 文件

      sudo rm /usr/local/etc/mysql/my.cnf
      sudo vi /usr/local/etc/mysql/my.cnf

       然后将新的文件内容输入到文件中,这儿使用了比较简单的 my.cnf 文件,更详细文件可以自己整理。

      [mysqld]
      bind-address=0.0.0.0
      port=3306
      user=root
      basedir=/usr/local/mysql
      datadir=/home/tc/mysql/data
      socket=/var/run/mysql.sock
      log-error=/home/tc/mysql/data/mysql.err
      pid-file=/var/run/mysql.pid
      character_set_server=utf8mb4
      symbolic-links=0
      innodb_log_file_size = 5M

       将 my.cnf 加入持久化:

      echo "usr/local/etc/mysql/my.cnf" >> /opt/.filetool.lst

       

    4.  启动 mysql 服务,可以使用服务方式:

      sudo /usr/local/etc/init.d/mysql start

      如果不编写 my.cnf 文件,也可以直接使用命令行方式启动数据库: 

      sudo /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data --pid-file=/var/run/mysql.pid  --socket=/var/run/mysql.sock  --innodb_log_file_size=5M   --port=3306  --user=root &

      启动后,可以使用 netstat -l 查看监听端口的情况,能看到mysql或3306端口已经在监听状态,就说明服务启动成功了。
       

       

    5. 开机自启动数据库,将启动的命令行,加入到  /opt/bootlocal.sh,然后保存。

      sudo vi /opt/bootlocal.sh

       

    6. 修改数据库root密码,首次登录我们可以设置一下密码,使用下面命令登录时,需要输入新设置的 root 密码:

      sudo /usr/local/mysql/bin/mysql -uroot -p

      之后,我们可以根据情况在命令行中创建需要的数据库等操作了。
       

    五、数据持久化的问题

    1. 在上面的安装过程中,我们发现我们的文件大都存放在 /home,/usr/local 等文件夹中,其实这些文件夹都是被 Tiny Core Linux 加载到内存中的,所以当文件不多的时候问题还不大,如果文件增加后,特别是网站文件与数据库文件容量增大后,就会大量占用内存,会造成内存不足而出现不同的问题。所以我们需要考虑将网站与数据库直接存放在硬盘而不是内存中。在Tiny Core Linux中,第一个硬盘会挂载到 /mnt/sda1 ,我们可以直接将网站与数据库的文件夹存放在这个下面,这样就不会占用内存空间了。
    2. 网站文件夹迁移到硬盘:
      sudo cp -r /usr/local/html /mnt/sda1
      sudo chmod 777 /mnt/sda1/html
      sudo rm -r /usr/local/html

      修改 config.conf 文件,将网站主目录改到 /mnt/sda1/html

      sudo vi /usr/local/etc/nginx/nginx.conf

      保存文件后,再使用 sudo /usr/local/etc/init.d/nginx start 启动服务,就可以将网站从硬盘加载。

    3. 数据库迁移到硬盘中:

      sudo cp -r /home/tc/mysql/data /mnt/sda1
      sudo rm -r /home/tc/mysql

      修改开机自启动文件中的数据库路径:

      sudo vi /opt/bootlocal.sh

      修改后保存文件。

    4. 在 /opt/.filetool.lst 文件中,去除原来用于持久化的 /usr/local/html 的内容:

      sudo vi /opt/.filetool.lst

      删除后,保存文件,如果不删除的话,重启服务器会提示错误信息。

    5. 如果是全新安装的话,可以在上面安装过程中,网页与数据库直接使用新的 /mnt/sda1/ 中的路径,这样就可以直接将数据放在硬盘,同时网站持久化中 echo "usr/local/html" >> /opt/.filetool.lst 的这一条命令也不再需要执行。

    展开全文
  • 前言: ...而mysql使用命令行的方法进行安装;云服务器需要远程访问,本文简要介绍常用的防火墙命令 1. 安装JDK 1.1 卸载openJDK Centos7一般都会带有自己的openJDK,但是OpenJDK只包含最精简的J...
  • 2.centos镜像建议选择使用7-everything版的,live版和精简版的亲测会有服务未安装。 3.记住装完一定拍快照,装的环境中会出现各种报错和你无法预知的错误,如果没拍快照就跟我一样不停重装虚拟机吧。 4.镜像的挂载...
  • Docker安装及部署(Linux)Docker的安装部署centos部署mysql部署tomcat关于docker的一些常用命令Docker的启动与停止Docker 常用命令迁移与备份写在最后 Docker的安装 1): yum 更新到最新 sudo yum update 2): ...
  • 最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在...LINUX操作系统:centOS6.3 64bit(安装了系统默认开发)APACHE:httpd-2.4.4MYSQL:mysql-5.6.10PHP:php-5.4....
  • LNMP环境的×××

    2013-01-23 19:44:54
    LNMP环境的搭建是每个linux运维人员必会的基本技能,我习惯根据我的需求来进行精简安装,下面我来贴出我的搭建步骤:(linux系统就的安装步骤就不在此叙述,略)mysql源码下载地址:...源码下载地址:...
  • 关于ZOS: ZOS是由易软天创团队编译的一套面向企业管理场景的Linux系统,... ZOS还在不断的完善中,后续我们会陆续上传完整的,比如gcc, make等基础,这样大家可以在zos基础上编译自己的发行。 启动画面
  • 算是把之前的博文整合精简,以下内容均在CENTOS6.3(安装minimaldesktop和默认开发)下测试安装成功,并做了相应优化配置,如有遗漏,还请留言指教.LINUX操作系统:centOS6.364bit(安装了系统默认开发)APACHE:httpd-...
  • linux一键安装包也是在xampp基础上精简来的,内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道。 一、安装 创建/opt/目录然后 下载我们最新的linux一键安装包(7z格式的) ,存储在/opt/...
  • 1.bugfree介绍 BugFree是借鉴微软公司软件研发理念、免费且开放源代码...BugFree是用PHP+MySQL写成,在Linux和Windows平台上都可以运行。 BugFree 2.0中包含的设计思想是: - Code: 程序是对需求设计规格说明文档(Sp...
  • 利用阿里云ESC服务器、MySQL数据库、WordPress快速搭建个人博客。 精简版搭建个人博客,后续内容需要自行完善。 资源准备: 阿里云ECS或者轻量级的服务器 Linux的基础操作(这里可以直接复制粘贴) 后续需要自行...
  • Bugzilla与BugFree区别与比较

    千次阅读 2008-07-08 09:06:00
    简介1.1BugFree介绍BugFree是借鉴微软公司软件研发理念、免费且开放源代码、基于Web的精简版...BugFree是用PHP+MySQL写成,在Linux和Windows平台上都可以运行。BugFree 2.0中包含的设计思想是: - Code: 程序是对需
  • LUOCRM系统基于PHP MYSQL技术独立开发的客户关系管理系统,是一款精简的客户关系管理系统,主要包含客户的基本信息和服务内容。 LUOCRM的功能介绍: 1.管理员自主添加管理 2.客户基本信息添加 3.客户所在地区...
  • php集成环境MiniServer1.6

    2018-06-04 16:22:37
    miniserver是一款绿色、精简、迷你的wamp(windows+apache+mysql+php)服务端程序,使用本工具可以非常方便的使用本机作为服务器,搭建属于您自己的网站。 本软件特色在于集成了大部分服务端软件,省去了您每次从...
  • Navicat Essentials是Navicat的精简版本,它提供执行简单数据库开发所需的基本和必要功能。Navicat Essentials用于商业用途,可用于MySQL,MariaDB,MongoDB,SQL Server,PostgreSQL,Oracle和SQLite数据库。如果您...
  • ARM[深度Linux(deepin),优麒麟(Ubuntu),中标麒麟(NeoKylin),威科乐恩Linux(WiOS)]: http://download.o2oa.net/download/o2server-5.2.1-linux-arm.zip RISC-V[Debian GNU/Linux,银河麒麟飞腾]: ...
  • 非常精简且轻量级的权限系统,代码简洁易懂,无论学习还是项目中应用,都是非常简单易上手的项目 拥有界面配置化代码生成器,支持一键生成及简单自定义配置生成代码 自动过滤输入的非法字符串,防止XSS攻击 使用...
  • BitBake:针对嵌入式 Linux 的类似 make 的构建工具。 fabricate:对任何语言自动找到依赖关系的构建工具。 PlatformIO:多平台命令行构建工具。 PyBuilder:纯 Python 实现的持续化构建工具。 SCons:软件构建...
  • 本地数据存储支持sqlite+mysql,支持远程数据同步到云端数据库。自动重连。 本地设备采集到的数据实时上传到云端,以便手机APP或者web等其他方式提取。 支持两种数据源,一种是串口和网络通过协议采集设备数据,一种...
  • 1.跨平台系统,能无差别的运行于Windows、Linux、Mac OS等操作系统。 2.★拥有云端版本更新通知服务器,可在后台获取官方的最新版本及每次更新的版本更新信息,及时通知用户进行升级。 3.★验证码支持短信、邮箱...
  • FAQ(持续更新)

    2021-01-08 12:27:51
    Linux系统为例: ~~~sh $ git clone https://github.com/sogou/workflow $ cd workflow $ make $ cd tutorial $ make ~~~ 然后就可以愉快的运行示例了。每个示例都有对应的文档讲解。如果需要用到kafka协议&...
  • 6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

linuxmysql精简包

linux 订阅
mysql 订阅