用docker搭建php开发环境(2)

5 篇文章 0 订阅
docker搭建php系列文章
[url=http://xieye.iteye.com/blog/2425200]用docker搭建php开发环境[/url]
[url=http://xieye.iteye.com/blog/2425211]用docker搭建php开发环境(2)[/url]
[url=http://xieye.iteye.com/blog/2425372]用docker搭建php开发环境(3)[/url]

其中坑很多。
我碰到的其中一个是数据库不能正常启动。
命令
docker logs files_mysql-db_1

查看容器日志,日志有
mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/mysql-file.cnf' is ignored.

百度得知,需要

sudo chmod 644 ./mysql/conf.d/mysql-file.cnf

上面这个问题是win10下发生的。

================================================
php使用composer

首先,通过dockerfile 来搞定composer安装的事情。
自行下载composer。phar文件。

COPY ./pkg/composer.phar /usr/local/bin/composer

RUN chmod a+x /usr/local/bin/composer \
&& /usr/local/bin/composer config -g repo.packagist composer https://packagist.phpcomposer.com




在app文件夹下放置composer.json文件。

{
"require": {
"zendframework/zendframework1":"1.12.20"
}
}


然后,在虚拟机里使用命令

/docker_study/zphal/bin/docker-compose
run --rm -w /data/www php-fpm composer update



注意,上面都是把composer.json文件直接放在app下面,实际应放在上层目录更好,

现在,我要测试,php和mysql能正确访问,php与redis能正确连接。

首先,自己写个phpinfo的php文件简单测试一下。

如果成功的话,如上,先设置一个zend1的composer的json文件,然后自己更新。

然后,写一个test.php放在根目录下测试。


<?php
require_once __DIR__ .'/vendor/autoload.php';
header("Content-type: text/html; charset=utf-8");

$db = Sys::getdb();
$sql="SHOW GLOBAL VARIABLES like '%server%'";
$result = $db->fetchAll($sql);
var_dump($result);
echo "<br>以上关于server的信息显示了,表示数据库连接成功<br><br>";

$redis = Sys::getredis();
$redis->set('aa',123);
echo $redis->get('aa');
echo "<br>上面一行显示123,表示redis连接正确。";

class Sys
{
public static $db;

/**
* 数据库连接
*
* @return \Zend_Db_Adapter_Abstract
*/
public static function getdb()
{
$params = array(
'host' => 'files_mysql-db_1',
'username' => 'root',
'password' => '123456',
'dbname' => 'zphaldb',
'charset' => 'UTF8',
'port' => '3306',
'driver_options'=> [
\PDO::ATTR_STRINGIFY_FETCHES => false,
\PDO::ATTR_EMULATE_PREPARES => false,
],
);
if (self::$db == null) {
self::$db = \Zend_Db::factory('pdo_mysql', $params );
}
return self::$db;
}

/**
* 得到redis
* @return \Redis
*/
public static function getredis()
{
static $redis = null;
if ($redis == null) {
$redis = new \Redis();
$redis->connect('files_redis-db_1','6379');

}
return $redis;
}
}





然后打开宿主机浏览器,测试http://127.0.0.1/test.php
看结果如何。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值