摘要:我下载到了本机上与打通的文件夹中,再进入,执行以下命令用代号取代的发行版本代号,本系统是所以代号为通过执行,在文件尾部中添加,以下代码保存,相关编辑操作请谷歌。安装的前提是,已经安装成功。
添加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错误日志。
注意:写的有点累了,有些还有一小节待续。这些是在本宝宝安装完之后的回忆,其实遇到挺多问题,这里可能并没有写到,因为我忘了,嘿嘿,欢迎大家在评论里交流。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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 采用了元模型的设计思想,支持多种经典的访问...
阅读 2713·2021-11-17 17:01
阅读 2091·2021-09-28 09:35
阅读 3599·2021-09-01 11:04
阅读 859·2020-06-22 14:41
阅读 2982·2019-08-30 15:55
阅读 2595·2019-08-30 15:43
阅读 2318·2019-08-26 13:54
阅读 2514·2019-08-26 13:48