摘要:從容器里拷貝文件到宿主機這個根據(jù)你自己生成的容器來宿主機映射的配置文件夾位置修改宿主機上的配置文件文件注意點表示程序在前臺運行。里面是我創(chuàng)建的一個文件。
通過yum源安裝php7
PHP 7.0.0 已經(jīng)推出了幾天,帶來了新版本的Zend引擎,不僅如此,還有許多新特性和改進,比如:
性能提升:PHP 7速度是PHP 5.6的兩倍
內(nèi)存的使用顯著降低
抽象語法樹
支持64位
許多重大的錯誤將轉(zhuǎn)為異常
安全的隨機數(shù)生成器
刪除舊的、不支持的SAPIs和擴展
null合并操作符(??)
返回和標量類型聲明
匿名類
零成本斷言
下面我通過結(jié)合docker,部署一下php7
定義dockerfileREMI 倉庫提供了CentOS和RHEL的核心包的更新版本,尤其是最新的PHP/MySQL系列。 因此我選擇通過
remi源的方式在線安裝php7。具體的dockerfile定義如下:
FROM centos:centos6 RUN rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm RUN rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm RUN rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi RUN yum -y --enablerepo=remi install php70 php70-php-cli php70-php-common php70-php-fpm # 安裝mysql擴展 RUN yum -y --enablerepo=remi install php70-php-mysqlnd # 安裝nginx RUN yum -y install nginx # 增加一個啟動腳本 RUN echo "#!/bin/bash" >> /start.sh RUN echo "/opt/remi/php70/root/usr/sbin/php-fpm" >> /start.sh RUN echo "/usr/sbin/nginx" >> /start.sh # 監(jiān)聽80端口 EXPOSE 80 # 給腳本一個執(zhí)行權(quán)限 RUN chmod +x /start.sh #啟動容器,執(zhí)行 start.sh命令 CMD /start.sh
編譯鏡像注意事項: 安裝remi源之前,首先需要安裝epel源
把nginx服務(wù)跟php部署在同一個容器里
docke build -t fasss/php7 .進入容器拷貝配置文件 運行容器
docker run -it fasss/php7 bash
進入php的安裝目錄
cd /opt/remi/php70/root
查看php配置文件目錄
[root@96238f70b8b4 root]# ./usr/bin/php -i | head -10 phpinfo() PHP Version => 7.0.0 System => Linux 96238f70b8b4 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 Build Date => Dec 3 2015 17:56:57 Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc/opt/remi/php70
得到php和fpm的配置文件目錄為 /etc/opt/remi/php70
退出容器。從容器里拷貝文件到宿主機
docker cp 96238f70b8b4:/etc/opt/remi/php70 ./
96238f70b8b4這個根據(jù)你自己生成的容器ID來
宿主機映射的配置文件夾位置
docker cp 96238f70b8b4:/etc/nginx /data/etc/php70/修改宿主機上的nginx配置文件
nginx conf文件
daemon off; user nginx; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main "$remote_addr - $remote_user [$time_local] "$request" " "$status $body_bytes_sent "$http_referer" " ""$http_user_agent" "$http_x_forwarded_for""; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; #charset koi8-r; access_log /var/log/nginx/access.log main; location / { root /webwww/bbs; index index.php index.html index.htm; } location ~ .php$ { root /webwww/bbs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
注意點: 「daemon off」表示程序在前臺運行。 「/webwww/bbs」 document_root的位置。
里面是我創(chuàng)建的一個hello.php文件。 輸出「hello from php7」
運行最終容器docker run -it --name my_php7 -v /data/etc/php70/nginx/:/etc/nginx/ -v /data/app/test:/webwww/bbs -p 80:80 fasss/php7
/data/app/test 表示程序文件夾
/data/etc/php70/nginx/:/etc/nginx/ 配置文件映射
顯示結(jié)果:
源碼安裝php7 下載源碼包wget http://cn2.php.net/get/php-7.0.0.tar.gz/from/this/mirror安裝編譯工具
yum -y install gcc automake autoconf libtool make yum -y install gcc gcc-c++ glibc安裝EPEL源
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安裝基礎(chǔ)庫防止有些包找不到
yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel編譯
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli --with-openssl --enable-fpm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt --enable-pcntl --enable-sockets --with-bz2 --with-curl --enable-mbregex --with-gd --enable-gd-native-ttf --enable-zip --enable-soap --with-iconv --enable-sysvshm --enable-sysvmsg --with-pdo-mysql # 如果沒有錯誤 make make install檢查是否已經(jīng)安裝完成
[root@b30acbed1ebd php]# /usr/local/php/bin/php -v PHP 7.0.0 (cli) (built: Dec 7 2015 13:03:05) ( NTS ) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies修改fpm的配置文件
cd /usr/local/php/etc/ mv php-fpm.conf.default php-fpm.conf cd /usr/local/php/etc/php-fpm.d mv www.conf.default www.conf啟動fpm
/usr/local/php/sbin/php-fpm常見錯誤
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
出現(xiàn)錯誤 yum install libmcrypt libmcrypt-devel
No package libmcrypt available. No package libmcrypt-devel available.
需要安裝EPEL源
安裝第三方源:EPEL源
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
在線安裝 libmcrypt
yum install libmcrypt libmcrypt-devel
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31935.html
摘要:而且作為一個版本,其中有一些,可能會導致一些配置和插件不工作。但這并無妨礙我們?nèi)ラ_始對上的新特性進行嘗鮮實戰(zhàn)。 作者:志佳老師 本文首發(fā)微信公眾號:jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 前言 在老袁寫這篇文章的時候,v5版本仍然處于早期階段,可能仍然有問題。而且作為一個major版本,其中有一些breaking changes,可能會導致一些配置...
摘要:嘗鮮箭頭函數(shù)問題描述驗證方式題目分析熟悉的新的函數(shù)構(gòu)造方式箭頭函數(shù)。箭頭函數(shù)總是匿名的。我的解法優(yōu)解和搭配構(gòu)造可構(gòu)造有名函數(shù)。單句聲命可省略。可被非關(guān)鍵字就不能用。 [7 kyu]Sort with Arrow Functions 嘗鮮箭頭函數(shù)??2016.03.08 問題描述: showImg(http://ww4.sinaimg.cn/large/006m2mhTgw1f1p5d9...
閱讀 1848·2021-09-29 09:35
閱讀 2710·2021-09-22 15:25
閱讀 1971·2021-08-23 09:43
閱讀 2048·2019-08-30 15:54
閱讀 3348·2019-08-30 15:53
閱讀 2385·2019-08-30 13:50
閱讀 2397·2019-08-30 11:24
閱讀 2268·2019-08-29 15:37