我试图在Windows 10上运行带有Docker的LAMP堆栈设置的CodeIgniter 2.2.6应用程序。应用程序启动并运行甚至数据库连接(使用mariadb)工作正常。但是,当我开始创建文件上传功能时,它失败了。浏览器称“172.18.0.3需要很长时间才能回复”。
这是我的docker-compose.yml文件: -
version: '3'
services:
php-apache:
build:
context: ./docker/php-apache
ports:
- 8081:80
volumes:
- ./app:/var/www/html
links:
- 'mariadb'
mariadb:
build:
context: ./docker/mariadb
ports:
- 3306:3306
volumes:
- mariadb:/var/lib/mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "rootpwd"
MYSQL_USER: 'testuser'
MYSQL_PASSWORD: 'testpassword'
MYSQL_DATABASE: 'testdb_codeigniter'
volumes:
mariadb:
这是用于php-apache服务的Dockerfile: -
FROM php:5.6-apache
RUN docker-php-ext-install pdo pdo_mysql mysqli
# Override with custom opcache settings
COPY ./opcache.ini $PHP_INI_DIR/conf.d/
这是mariadb服务的Dockerfile: -
FROM mariadb:latest
这是我的文件夹结构: -
我的root中有app,docker文件夹和docker-compose.yml文件。在app文件夹里面我有codeigniter文件。
我有一个用于上传文件的php文件(upload_form.php): -
<html>
<head>
<title>FIle Upload</title>
</head>
<body>
<?= $error ?>
<?= form_open_multipart('upload/upload_file') ?>
<input type="file" name="userfile" size="20"><br/><br/>
<input type="submit" value="Upload">
</form>
</body>
</html>
当我在google Chrome中检查此页面时,代码将解释如下。 (请注意形式行动部分。): -
选择要上传的图像文件并按上传按钮后,页面会旋转几秒钟并最终显示以下消息: -
我不知道我做错了什么,非常感谢任何帮助。谢谢。
基本URL应该是绝对的,包括协议:
$config['base_url'] = "http://somesite.com/";
如果使用URL帮助器,则base_url()将输出上述字符串。
如果你不包含基本URL,它通常需要docker IP :)