debian9 安装docker 以及在docker中 安装centos 6 安装指定版本的PHP和MySQ
Posted 郭万新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了debian9 安装docker 以及在docker中 安装centos 6 安装指定版本的PHP和MySQ相关的知识,希望对你有一定的参考价值。
安装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点,我太累了。+_+!
以上是关于debian9 安装docker 以及在docker中 安装centos 6 安装指定版本的PHP和MySQ的主要内容,如果未能解决你的问题,请参考以下文章