視頻地址
學(xué)徒卡夫 - 卡夫的Mac 03 - Mac下使用Docker配置PHP環(huán)境安裝 Docker
https://www.bilibili.com/vide...
https://www.docker.com/docker...
下載鏡像# 安裝基礎(chǔ)鏡像 - ubuntu:14.04 # 拉取鏡像(拉取鏡像經(jīng)常會(huì)失敗,嘗試幾次就好了) docker pull ubuntu:14.04
# 設(shè)置以守護(hù)進(jìn)程在后臺(tái)運(yùn)行 docker run -dit --name my-lnmp ubuntu:14.04配置容器內(nèi)的lnmp環(huán)境
更換apt-get源提高安裝速度
# 進(jìn)入容器內(nèi)部 docker exec -it my-lnmp bin/bash # 如果需要退出容器使用`exit`即可
# 更新 apt-get update
以上的更新報(bào)錯(cuò) # 可能出現(xiàn)以下錯(cuò)誤, 由于沒有公鑰, 無(wú)法驗(yàn)證以下簽名 W: GPG error: http://extras.ubuntu.com trusty Release: The following signatures couldn"t be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192
# 解決 --recv-keys 后面跟著報(bào)錯(cuò)提示的密鑰(這里操作成功后,退出Docker跟服務(wù)器了,重新進(jìn)入就可以了 docker exec -it my-lnmp bin/bash ) apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
# 重新更新 apt-get update
# 安裝常用工具 apt-get install -y curl vim
# 解決有可能存在的語(yǔ)言問題 apt-get install -y language-pack-en-base locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8
安裝Nginx
# 安裝 sudo apt-get install -y nginx
# 配置文件位置 #> /etc/nginx/nginx.conf #> /etc/nginx/conf.d/*.conf
# 默認(rèn)主目錄 #> /usr/share/nginx/html/
# 管理nginx服務(wù) service nginx start // 啟動(dòng) service nginx stop // 停止 service nginx restart // 重啟
測(cè)試 curl localhost
如果出現(xiàn)Welcome to nginx!類似的字樣,說明nginx安裝成功了
安裝 PHP7
# 添加php的倉(cāng)庫(kù) apt-get install -y software-properties-common
# 中途按下回車 add-apt-repository ppa:ondrej/php
# 安裝php7.0,可以選擇指定版本,我看了下5.4以上的有,安裝前先使用apt-cache search php7.0類似命令搜索下 sudo apt-get update
中途報(bào)錯(cuò) 1. W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn"t be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C # 注意后面的KEY要對(duì)應(yīng) gpg --keyserver keyserver.ubuntu.com --recv 4F4EA0AAE5267A6C gpg --export --armor 4F4EA0AAE5267A6C > key.asc cat key.asc | sudo apt-key add -
安裝
apt-get install -y php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-xml php7.0-mcrypt php7.0-json php7.0-gd php7.0-mbstring php7.0-zip php-mongodb php-memcached php-redis
# 測(cè)試 (如果有結(jié)果,則表示安裝成功) php -v
# 配置php.ini vim /etc/php/7.0/fpm/php.ini # 將cgi.fix_pathinfo=1這一行去掉注釋,將1改為0 #> / 是vi查找的命令
#配置php-fpm vim /etc/php/7.0/fpm/pool.d/www.conf
# 修改 listen = /var/run/php/php7.0-fpm.sock
# 配置nginx vim /etc/nginx/sites-enabled/default
將`index index.html index.htm;`改成`index index.php index.html index.htm;` 在`service`里面,`location /{}`下面增加以下配置
location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
運(yùn)行
#啟動(dòng)php-fpm service php7.0-fpm start
# 重啟 Nginx ,檢測(cè)配置是否成功 # service nginx stop # service nginx start service nginx reload
# 創(chuàng)建項(xiàng)目目錄,并給權(quán)限 mkdir apps chmod -R 777 /apps/
# 新建 index.php 測(cè)試文件 # 寫入內(nèi)容,保存 # :wq # 執(zhí)行 curl localhost # 如果看到`hello world!`表示運(yùn)行成功
安裝MySQL
# 安裝過程中會(huì)提示輸入密碼及確認(rèn)密碼,輸入即可 apt-get install -y mysql-server-5.6
# 啟動(dòng) service mysql start
# 測(cè)試 mysql -uroot -p
# 輸入密碼后進(jìn)入到mysql表示安裝成功 # 退出 exit
設(shè)置容器開機(jī)啟動(dòng)項(xiàng)
# 在.bashrc寫入開機(jī)啟動(dòng)項(xiàng) vim ~/.bashrc
# 寫入以下內(nèi)容,保存 # 開機(jī)啟動(dòng)項(xiàng) service php7.0-fpm start service mysql start service nginx start #tail -f /var/log/nginx/error.log
這里遇到幾個(gè)問題
1. nginx 報(bào)502錯(cuò)誤 解決方法:查看當(dāng)前端口 netstat -tunpl 顯示 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15277/nginx tcp6 0 0 :::80 :::* LISTEN 15277/nginx 正常會(huì)顯示fpm的9000端口 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3552/php-fpm tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2400/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3535/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 906/sshd udp 0 0 115.28.143.123:123 0.0.0.0:* 1232/ntpd udp 0 0 10.144.130.187:123 0.0.0.0:* 1232/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 1232/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 1232/ntpd 查看fpm是否開啟 ps -ef | grep php-fpm 發(fā)現(xiàn)也是正常的 root 15492 1 0 10:51 ? 00:00:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) www-data 15493 15492 0 10:51 ? 00:00:00 php-fpm: pool www www-data 15494 15492 0 10:51 ? 00:00:00 php-fpm: pool www root 15567 15286 0 11:14 ? 00:00:00 grep --color=auto php-fpm 查看nginx的錯(cuò)誤日志 cat /var/log/nginx/error.log 報(bào)錯(cuò)是找不到php7.0-fpm.sock 2016/09/18 11:55:32 [crit] 15281#0: *7 connect() to unix:/var/run/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: ::1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7.0-fpm.sock:", host: "localhost" 找到問題是 /etc/nginx/sites-enabled/default 配置寫錯(cuò)了 /var/run/php7.0-fpm.sock # 更改 /var/run/php/php7.0-fpm.sock
安裝常用
sudo apt-get install zip unzip php-zipComposer安裝
安裝
sudo curl -sS https://getcomposer.org/installer | sudo php -d detect_unicode=Off
更改文件權(quán)限
sudo chmod a+x composer.phar
切換到全局安裝文件夾
sudo mv composer.phar /usr/local/bin/composer
更新
sudo composer self-update
將 Composer 源更換為國(guó)內(nèi)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
#### 如果 Composer 更新仍然慢,就在項(xiàng)目中執(zhí)行以下命令 composer config repo.packagist composer https://packagist.phpcomposer.com #### 上述命令將會(huì)在當(dāng)前項(xiàng)目中的?composer.json 文件的末尾自動(dòng)添加鏡像的配置信息(你也可以自己手工添加): "repositories": { "packagist": { "type": "composer", "url" : "https://packagist.phpcomposer.com" } }
Composer 更新項(xiàng)目 可能產(chǎn)生以下報(bào)錯(cuò)
網(wǎng)上說因?yàn)殓R像使用的是http,而原地址是需要https,所以配置下關(guān)掉https就好了。 解決:composer config -g secure-http false
沒安裝Git。 解決:sudo apt-get install git
更新項(xiàng)目時(shí),超時(shí)。 解決:export COMPOSER_PROCESS_TIMEOUT=2000將配置好的Docker容器,打包
將容器打包成鏡像
# 退出 Docker exit
# 查看當(dāng)前容器對(duì)應(yīng)CONTAINER ID docker ps -a
# 將容器打包新的鏡像 (ID: 2c10b080cf8c) docker commit 2c10b080cf8c kfk-lnmp
# 查看新的鏡像/Pull的鏡像 docker images
# 使用剛打包的鏡像,創(chuàng)建新的容器 docker run -dit -p 80:80 -p 3306:3306 -v /var/www/:/apps/ --name nginx-mysql-php7-composer new-lnmp /bin/bash # -p 端口映射 # -v 本地目錄映射到容器內(nèi)
# 測(cè)試 在瀏覽器通過訪問`localhost`響應(yīng)成功,則大功告成配置一個(gè)Laravel項(xiàng)目
mkdir /apps/vhost vi /apps/vhost/laravel.cc.conf
server { listen 80; root /apps/laravel/public; index index.php index.html index.htm; server_name laravel.cc; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
vi /etc/nginx/nginx.conf # 加入 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; include /apps/vhost/*.conf;
service nginx reload
# 測(cè)試
在瀏覽器通過訪問 http://laravel.cc 響應(yīng)成功
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27445.html
視頻地址 學(xué)徒卡夫 - 卡夫的Mac 03 - Mac下使用Docker配置PHP環(huán)境 https://www.bilibili.com/vide... 安裝 Docker https://www.docker.com/docker... 下載鏡像 # 安裝基礎(chǔ)鏡像 - ubuntu:14.04 # 拉取鏡像(拉取鏡像經(jīng)常會(huì)失敗,嘗試幾次就好了) docker pull ubuntu:14.0...
摘要:視頻地址學(xué)徒卡夫卡夫的阿里云使用配置環(huán)境打包鏡像上傳阿里云鏡像倉(cāng)庫(kù)在阿里云鏡像倉(cāng)庫(kù)中創(chuàng)建一個(gè)鏡像將更改推送到阿里云提示你輸入阿里云賬戶的密碼,密碼是獨(dú)立的忘記密碼可以在阿里云找回將容器打包新的鏡像查看鏡像找到像提交的鏡像給鏡像打 視頻地址 學(xué)徒卡夫 - 卡夫的Mac 04 - 阿里云Ubuntu使用Docker配置PHP環(huán)境 https://www.bilibili.com/vide...
摘要:視頻地址學(xué)徒卡夫卡夫的阿里云使用配置環(huán)境打包鏡像上傳阿里云鏡像倉(cāng)庫(kù)在阿里云鏡像倉(cāng)庫(kù)中創(chuàng)建一個(gè)鏡像將更改推送到阿里云提示你輸入阿里云賬戶的密碼,密碼是獨(dú)立的忘記密碼可以在阿里云找回將容器打包新的鏡像查看鏡像找到像提交的鏡像給鏡像打 視頻地址 學(xué)徒卡夫 - 卡夫的Mac 04 - 阿里云Ubuntu使用Docker配置PHP環(huán)境 https://www.bilibili.com/vide...
摘要:根據(jù)不同的項(xiàng)目,使用不同的鏡像,搭建開發(fā)環(huán)境而每一個(gè)應(yīng)用有自己一個(gè)獨(dú)立的運(yùn)行環(huán)境,互不干擾。如何測(cè)試人員還是運(yùn)維人員,也可以根據(jù)最新版本的鏡像來測(cè)試和部署新的測(cè)試環(huán)境和生產(chǎn)環(huán)境。下一步我們從如何利用已有的運(yùn)行項(xiàng)目來進(jìn)一步掌握。 showImg(https://segmentfault.com/img/remote/1460000011106825); 什么是 Docker Docke...
摘要:根據(jù)不同的項(xiàng)目,使用不同的鏡像,搭建開發(fā)環(huán)境而每一個(gè)應(yīng)用有自己一個(gè)獨(dú)立的運(yùn)行環(huán)境,互不干擾。如何測(cè)試人員還是運(yùn)維人員,也可以根據(jù)最新版本的鏡像來測(cè)試和部署新的測(cè)試環(huán)境和生產(chǎn)環(huán)境。下一步我們從如何利用已有的運(yùn)行項(xiàng)目來進(jìn)一步掌握。 showImg(https://segmentfault.com/img/remote/1460000011106825); 什么是 Docker Docke...
閱讀 3384·2023-04-26 01:46
閱讀 2906·2023-04-25 20:55
閱讀 5471·2021-09-22 14:57
閱讀 2974·2021-08-27 16:23
閱讀 1712·2019-08-30 14:02
閱讀 2063·2019-08-26 13:44
閱讀 644·2019-08-26 12:08
閱讀 2951·2019-08-26 11:47