摘要:我下載到了本機上與打通的文件夾中,再進入,執行以下命令用代號取代的發行版本代號,本系統是所以代號為通過執行,在文件尾部中添加,以下代碼保存,相關編輯操作請谷歌。安裝的前提是,已經安裝成功。
添加box最近因為工作開始接觸Yii,之前開發使用laravel習慣用vagrant。所以,這次嘗試著打造一個box,專門用來寫Yii框架的項目。
在這次打造box,收獲了很多:
1)更加熟悉了nginx的配置;
2)學會了看nginx的錯誤日志;
3)提高了解決問題的能力等等。
希望大家也能通過,玩玩如何打造一個自己的box學到很多東西。我的box配置是:
ubuntu+PHP7.1.0alpha2+ginx/1.10.1+MySQL5.5.49+Composer1.1.3.在開始之前,我的電腦已經裝好了Vagrant和Virtual Box。windows安裝這兩個軟件時,請記住通過BIOS來開啟系統的硬件虛擬化(VT-x)。
這里再推薦一個Mac下用的終端iTerm2,超好用。
我需要一個ubuntu系統,所以我通過vagrant添加目前已經有只ubuntu系統的空box。
1、參考資料:官方文檔添加box
2、添加box:vagrant box add puphpet/ubuntu1404-x64
3、創建一個文件夾,用來初始化box:mkdir complex
4、進入complex文件夾:cd complex
5、查看目前有幾個box:vagrant box list
dev (virtualbox, 0) laravel/homestead (virtualbox, 0.4.4) puphpet/ubuntu1404-x64 (virtualbox, 20151201)
6、初始化box:vagrant init puphpet/ubuntu1404-x64
7、你會發現當前complex目錄下,有一個文件名為Vagrantfile,這個文件為puphpet/ubuntu1404-x64這個盒子的初始化文件
8、Vagrantfile文件配置,文件修改兩個地方就好:
設置config.vm.network這個參數,IP可以隨意配;
config.vm.synced_folder中,第一個參數是我mac下的工作目錄,第二個參數是我box中的工作目錄。通過這個設置,將本機和box中的文件打通,兩個文件夾內容將會相同,如果有一個文件夾內容有什么變化,另一個文件夾也會有相同的變化。大家根據自己的目錄配置即可,最好采用絕對路徑
# using a specific IP. config.vm.network "private_network", ip: "192.168.22.55" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder "~/PhpstormProjects", "/www"
9、執行vagrant up,即可開啟box。
10、執行vagrant ssh,即可進入box中。
11、如過修改了Vagrantfile,請記住重啟boxvagrant reload
安裝nginx1、參考資料:官方文檔nginx安裝
2、安裝nginx前需要添加nginx_signing.key,下載地址,官方文檔里也有下載地址。我下載到了本機上與box打通的文件夾中,再進入box,執行以下命令:sudo apt-key add nginx_signing.key
3、用代號取代ubuntu的發行版本代號,本系統是ubuntu1404-x64,所以代號為trusty;通過執行sudo vi /etc/apt/sources.list,在/etc/apt/sources.list文件尾部中添加,以下代碼:
deb http://nginx.org/packages/ubuntu/ trusty nginx deb-src http://nginx.org/packages/ubuntu/ trusty nginx
wq保存,相關vi編輯操作請谷歌。
4、安裝nginx,執行以下命令
apt-get update
apt-get install nginx
5、進入/etc/nginx文件夾中,修改nginx.conf文件,將 sendfile on;修改為sendfile off;因為 VirtualBox關于sendfile有一個bug,這個bug可能會導致文件損壞或者不更新文件,所以設置為off
6、nginx常用命令:
sudo service nginx restart 重啟nginx ps -ax | grep nginx 查看nginx所有開啟的進程安裝PHP7
1、參考文章,其實這篇文章已經說了很詳細了,下面再簡單的重復下
2、執行以下命令,可以根據apt-cache search php7的執行結果選擇你們想要安裝的版本和模塊即可:
$ sudo apt-get install -y language-pack-en-base $ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php $ sudo apt-get update $ apt-cache search php7 $ sudo apt-get install php7.1 php7.1-cli php7.1-fpm php7.1-gd php7.1-json php7.1-mysql php7.1-readline
3、測試php7是否已經安裝成功
添加域名,在本機 /etc/hosts文件中添加192.168.22.55 test.yuan.com
在box中,進入/www目錄,執行touch index.php創建index.php文件,并在文件中添加以下內容
進入/etc/nginx/conf.d文件夾,執行sudo cp default.conf test.yuan.com.conf,并修改內容為
server { listen 80; server_name test.yuan.com; index index.html index.htm index.php default.php; root /www; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { try_files $uri $uri/ /index.php?$query_string; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .php$ { fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache"s document root # concurs with nginx"s one # #location ~ /.ht { # deny all; #} }
進入瀏覽器,輸入test.yuan.com即可
4、如果想更加了解nginx相關配置參數信息,可參閱:nginx基本配置與參數說明
1、參考資料:官方文檔
2、安裝MySQL:sudo apt-get install mysql-server ,安裝過程中會要求對root用戶設置密碼,輸入你想要的密碼即可。
3、MySQL常用命令:
mysql -u username -p mysql登陸 exit 退出 sudo service mysql status mysql運行狀態 sudo service mysql stop 停止運行mysql sudo service mysql start 開啟mysql
4、在本機,我使用Sequel Pro(mysql圖形話界面管理工具)。連接box中mysql需要通過ssh連接,ssh key通過執行vagrant ssh-config命令即可知道。連接配置如圖:
安裝Composer1、參考資料:官方文檔Composer:Getting Started
2、執行以下命令即可獲得最新版本的composer
php -r "copy("https://getcomposer.org/installer", "composer-setup.php");" php -r "if (hash_file("SHA384", "composer-setup.php") === "e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae") { echo "Installer verified"; } else { echo "Installer corrupt"; unlink("composer-setup.php"); } echo PHP_EOL;" php composer-setup.php php -r "unlink("composer-setup.php");"
3、全局安裝,執行以下命令即可:
mv composer.phar /usr/local/bin/composer
composer
在安裝時,按照官方文檔提供的命令執行時,出了些錯誤。以下相關命令和配置都是在經過本機測試成功之后的結果。安裝Yii2的前提是,已經安裝成功Composer。
1、參考資料:Yii 2.0 權威指南 安裝 Yii
2、通過執行composer self-update確保Composer已經為最新版本。
3、執行以下命令即可安裝Yii2
composer global require fxp/composer-asset-plugin --no-plugins #第一條命令,安裝 Composer asset plugin composer create-project --prefer-dist yiisoft/yii2-app-basic yii #將Yii安裝在名為yii的安裝目錄,你也可以其他目錄名。
4、在本機etc/hosts 配置域名192.168.22.55 yii.yuan.com
5、nginx配置,在box中/etc/nginx/conf.d目錄中創建yii.yuan.com.conf,其內容如下:
server { listen 80; server_name yii.yuan.com; index index.php; root /www/yii/web; charset utf-8; client_max_body_size 128M; #access_log /var/log/nginx/log/host.access.log main; location / { try_files $uri $uri/ /index.php?$query_string; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .php$ { #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache"s document root # concurs with nginx"s one # location ~ /.(ht|svn|git) { deny all; } }
6、請在本機和box中都執行此命令:sudo chmod -R 777 yii賦予yii文件夾最高權限,以防在訪問此項目時,出現權限錯誤。
7、如果出現502錯誤或者not input file specified錯誤一定跟nginx配置有關,請仔細看nginx錯誤日志。
注意:寫的有點累了,有些還有一小節待續。這些是在本寶寶安裝完之后的回憶,其實遇到挺多問題,這里可能并沒有寫到,因為我忘了,嘿嘿,歡迎大家在評論里交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21755.html
摘要:高性能始終是的首要目標之一。版是上代的老版本,現在處于維護狀態。版是一個完全重寫的版本,采用了最新的技術和協議,包括依賴包管理器代碼規范命名空間特質等等。所以,我們學習版本。啟用本鏡像服務系統全局配置即將配置信息添加到的全局配置文件中。 工作中需要用到YII框架,于是乎,系統的學習下這套框架,詳細教程請看考該站完整系列:YII2教程 一、YII簡介 1、什么是YII Yii 是一個高性...
摘要:目前還處于版本,相關文檔也一直在變化,如有疏漏,還請及時反饋安裝兩種安裝方式,或者下載包使用安裝初始化項目推薦下,如果本機還沒有安裝,我的做法是是直接下載包假定你的工作目錄是,將下載的放在下命令行進入執行如下命令,初始化一個基于的應用 yii2目前還處于beta版本,相關文檔也一直在變化,如有疏漏,還請及時反饋 Yii2安裝 兩種安裝方式,composer或者下載zip包 ...
摘要:開始使用郵箱配置好了之后,我們就可以開始使用了,首先我們來修改一下我們的導航欄,因為我們想實現的就是我們常常看到的在導航欄的右側的注冊和登錄按鈕。 原文來自: https://jellybool.com/post/programming-with-yii2-integrating-user-regi... 本來打算昨晚寫的這篇教程,但是忙著約會去了,所以現在補上吧。 上一篇...
摘要:而這些問題目前的最好解決方案就是集成一個編輯器,鑒于大家這里不是指程序員都是喜歡所見即所得,所以,這里我主要是演示怎么集成所見即所得的富文本編輯器。 原文來自: https://jellybool.com/post/programming-with-yii2-rich-text-input-with-redactor 首先,很慚愧的是,前幾天都出去外面玩了,沒有及時更新教程,...
摘要:是一個用語言打造的輕量級開源訪問控制框架,目前在開源。采用了元模型的設計思想,支持多種經典的訪問控制方案,如基于角色的訪問控制基于屬性的訪問控制等。 PHP-Casbin 是一個用 PHP 語言打造的輕量級開源訪問控制框架( https://github.com/php-casbin... ),目前在 GitHub 開源。PHP-Casbin 采用了元模型的設計思想,支持多種經典的訪問...
閱讀 2714·2021-11-17 17:01
閱讀 2092·2021-09-28 09:35
閱讀 3600·2021-09-01 11:04
閱讀 859·2020-06-22 14:41
閱讀 2983·2019-08-30 15:55
閱讀 2596·2019-08-30 15:43
閱讀 2319·2019-08-26 13:54
閱讀 2515·2019-08-26 13:48