CoreOS安装php环境

在阿里云上选了最不了解的Linux系统:CoreOS,想了解下新系统
感觉坑很多,但是也打算换了,不知道怎么在上面安装软件,发现支持Docker就用Docker吧
0.开始时怎么也连不上服务器,最后才发现分为两个密码,可还是连不上,仔细查看发现实例密码需要重启
1.docker run nginx时报错,好像什么 SELinux not init 之类的,搜索了半天也没找到解决办法
最后,编辑/etc/selinux/config 改成enforcing,重启ok
3.安装顺序
1)mysql
docker pull mysql
docker run -d --name mysql-docker -e MYSQL_ROOT_PASSWORD=123456 mysql
2)php
docker run -p 9000:9000 -v /docker/www/:/var/www/html/ --name php9000 --link mysql-docker -d php

但是一直没能启动,状态为Exited,最后需要把-d 改成-idt
docker run -p 9000:9000 -v /docker/www/:/var/www/html/ --name php9000 --link mysql-docker -idt php
镜像里面指定的默认启动程序是bash,对于Linux下的shell程序来说,tty是必须的,所以启动容器的时候要加上-t参数
后面的解释也没看懂
虽然没报错,但是后面nginx报错502,发现php版本错误,重新pull fpm版本
docker pull php:7.2.9-fpm
如果出错,修改host,增加映射
docker run -p 9000:9000 -v /docker/www/:/var/www/html/ --name php9000 --link mysql-docker -idt php:7.2.9-fpm

3)nginx
mkdir -p /docker/nginx/conf.d
编辑default.conf
vim /docker/nginx/conf.d/default.conf

以下为示例内容

server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;

    location / {
        index  index.html index.htm index.php;
        autoindex  off;
    }
    location ~ \.php(.*)$ {
        root           /var/www/html/;
        fastcgi_pass   172.17.0.2:9000;#可以换成实例名,run时加上--link 实例名
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }

}

查看php运行状况
docker inspect php-docker |grep "IPAddress"

修改default.conf配置文件,使fastcgi_pass的值为 172.17.0.2:9000

docker run -p 80:80 --name nginx-docker
-v /docker/www:/usr/share/nginx/html
-v /docker/nginx/conf.d:/etc/nginx/conf.d
--privileged=true
--link php9000:php
-d nginx

你可能感兴趣的:(CoreOS安装php环境)