zoukankan      html  css  js  c++  java
  • debian9 安装docker 以及在docker中 安装centos 6 安装指定版本的PHP和MySQL

    安装docker准备工作

    更新包列表

    apt update

    如果报下面这个错

    E: Could not get lock /var/lib/apt/lists/lock

    解决办法

    1 ##先查看apt资源被那些进程所占用
    2  ps -e | grep apt
    3 然后杀掉占用的进程就可以apt update了
    4 
    5 kill -9 **** 
    6 ##后面写对应的进程号
    安装HTTPS依赖软件包
    • Debian 8 Jessie/Debian 9 Stretch
    apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

    配置Docker存储库GPG密钥

    1 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    2 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

     add-apt-repository command not found解决方法

    apt-get install software-properties-common

     更新包缓冲

    apt update

    安装docker-ce

    apt install docker-ce

    启动docker服务

    service docker start

    启动后pull centos 6

    docker pull centos:centos6

    docker images 查看拉取到本地的镜像

    docker run -id -p 2222:22 -p 8686:80 -p 3308:3306 --name=v2 -v /root/data:/var/vuser  -v /etc/localtime:/etc/localtime d0957ffdf8a2 /bin/bash

    把宿主机 2222 、 8686、3308 端口分别映射在 容器的 22 和 80 、3306 端口,容器名为:v2, 并挂载宿主机data目录到容器的vuser 

    进入容器

    docker exec -it v2 /bin/bash

    -----------------------------------------------------------------------

    在docker centos6 容器中安装MySQL

    在安装指定版本的MySQL时,先到这个网站找到rpm包,把下载连接复制下来

     https://dev.mysql.com/downloads/repo/yum/

    安装rpm包

    安装之前先检测下有没有下载过mysql包 不然的话会报以下错误:

    [root@7ee99549b8ce /]# rpm -ivh http://repo.mysql.com//mysql80-community-release-el6-3.noarch.rpm
    Retrieving http://repo.mysql.com//mysql80-community-release-el6-3.noarch.rpm
    warning: /var/tmp/rpm-tmp.7ngHUn: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
            mysql-community-release conflicts with mysql80-community-release-el6-3.noarc

    检测步骤:

    1 rpm -qa | grep -i mysql  #查看安装的mysql包
    2 yum -y remove mysql80-community-release-el7-1.noarch #移除包
    3 #####接下来再安装就不会报错了

    安装过程:

     1 rpm -ivh http://repo.mysql.com//mysql80-community-release-el6-3.noarch.rpm 

    2 yum makecache

    3 yum repolist all| grep mysql
    4 vi /etc/yum.repos.d/mysql-community.repo

    enabled=1  代表启用下载这个版本的MySQL 

    安装修改过版本的mysql

    yum install -y mysql-community-server
    chkconfig mysqld on         // 设置mysql开机启动
    service mysqld start        // 启动mysql服务

    在第一次安装数据库后 会随机生成密码

    查看密码

    grep 'password' /var/log/mysqld.log

    登陆数据库

    1> mysql -uroot -p

    2> '输入密码'

    登陆以后修改密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword'; #密码必须含有大小写字母和特殊字符  不然的话 会报错!!!

    如果使用远程登陆无法连接,这是因为Mysql配置了不支持远程连接引起的

     解决方法  

    use mysql; 
    select host from user where user='root'; update user set host = '%' where user = 'root';
    flush privileges;

    退出数据库重启数据库服务

    service mysqld restart

    然后尝试远程连接

    -----------------------------------------

    安装apache

    yum install httpd
    chkconfig httpd on // 设置开机启动 
    service httpd start // 启动apache服务

      现在打开浏览器输入服务器ip 和一开始映射的端口 就可以打开apache页面了

    ----------------------------------------

    安装 PHP 5.5.X

    安装wget

    yum install wget

    更新下载源

    wget http://mirror.webtatic.com/yum/el6/latest.rpm && rpm -Uvh latest.rpm && yum -y install php55w php55w-bcmath php55w-cli php55w-common php55w-devel php55w-fpm  php55w-gd php55w-imap php55w-ldap php55w-mbstring php55w-mcrypt php55w-mysql php55w-odbc php55w-pdo php55w-pear php55w-pecl-igbinary php55w-xml php55w-xmlrpc php55w-opcache php55w-intl php55w-pecl-memcache php55w-soap

    ##安装php##

    yum -y install php55w php55w-bcmath php55w-cli php55w-common php55w-devel php55w-fpm  php55w-gd php55w-imap php55w-ldap php55w-mbstring php55w-mcrypt php55w-mysql php55w-odbc php55w-pdo php55w-pear php55w-pecl-igbinary php55w-xml php55w-xmlrpc php55w-opcache php55w-intl php55w-pecl-memcache php55w-soap

    ##如果报错##

    错误:Package: php55w-mcrypt-5.5.38-1.w6.x86_64 (webtatic)
    Requires: libmcrypt.so.4()(64bit)
    You could try using --skip-broken to work around the problem
    You could try running: rpm -Va --nofiles --nodiges

    解决办法:

    下载相应版本的EPEL源:

    1 wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm   #32位
    2 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm #64位

    安装

    rpm -ivh epel-release-6-8.noarch.rpm

    导入 KEY

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

    再尝试安装php及其相关扩展

    yum -y install php55w php55w-bcmath php55w-cli php55w-common php55w-devel php55w-fpm  php55w-gd php55w-imap php55w-ldap php55w-mbstring php55w-mcrypt php55w-mysql php55w-odbc php55w-pdo php55w-pear php55w-pecl-igbinary php55w-xml php55w-xmlrpc php55w-opcache php55w-intl php55w-pecl-memcache php55w-soap

    删除EPEL包

    rm -rf epel-release-6-8.noarch.rpm latest.rpm

    创建php文件查看是否被apache识别

    vi /var/www/html/phpinfo.php

    注意:如果返回的是php源代码 那就需要再配置一下 apache 的 httpd.conf ,修改完成后 重启apache

    vi /etc/httpd/conf/httpd.conf

    LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

    重启 

    service httpd restart

     如果退出容器,再次进入后登陆数据库提示这个错误 有可能是没有启动数据库服务,容器退出后 容器内的服务也就停止运行了。

    Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

    启动数据库

    service mysqld start

     ---------------

    定时执行php脚本

    centos 6 先下载crontab

    yum install crontabs
    1 service crond start //启动服务
    2 service crond stop //关闭服务
    3 service crond restart //重启服务

    在crontab中添加定时执行php脚本的任务

    -q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

    */10 * * * * /usr/bin/wget -q -O temp.txt http://www.xxx.net/myscript.php

    清空数据库ID 插入数据时从新统计

    truncate table 表名

    -------

    在PHP连接数据库插入数据时,MySQL日志报下面这个错,

    2019-11-18T22:32:41.071608Z 50 [Note] Aborted connection 50 to db: 'd6' user: 'root' (Got timeout reading communication packets)

    在本地测试没问题,代码放在服务器环境下,一开始运行也没问题,结果晚上莫名其妙出现了这个提示,

    后来在网上查资料修改my.conf配置,也还是不行。

    折腾了好长时间,突然想到下午把代码放在服务器运行时,apache报错下面这个错

    Call to undefined function mysqli_fetch_all()

     结果为了解决掉上面这个报错。把 php mysqli 扩展卸载掉了,安装另一个php56w-mysqlnd扩展 ,安装失败后,没把原先卸载掉的装回来,后来安装回来不报错了,正常运行。

    终于安装完了,从早上9点安装到傍晚6点,我太累了。+_+!

  • 相关阅读:
    普通用户权限问题解决:hadoop is not in the sudoers file. This incident will be reported.
    新安装的Ubuntu系统中默认的root用户密码是多少,怎么修改?
    Ubuntu环境变量恢复
    无法获得数据库 'model' 上的排他锁 解决办法
    linux常用命令大全
    Windows 10/Win10命令大全通用(Win8,Win7)
    SQLServer 创建SQL Server 身份验证用户
    SQL注入学习笔记
    vbs整人脚本,别运行!!!
    Linux命令行编辑常用的快捷键
  • 原文地址:https://www.cnblogs.com/freedomweb/p/12488551.html
Copyright © 2011-2022 走看看