来个高人帮我写下 command promptli...

再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
威锋网7月10日消锋网7月10日消息,《植物大战僵尸2》 如今...
威锋网7月10日消息,《植物大...
近日,开发商 Esquilax Games ..
说到方块游戏,相信有很多朋友应该还会记得 Gavina Games 早...
威锋网7月10日消息,《植物大...
近日,开发商 Esquilax Games ..
说到方块游戏,相信有很多朋友应该还会记得 Gavina Games 早...
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
您需要通过验证再能继续浏览 3秒后开始验证
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!mac下安装nginx和php
字体:[ ] 类型:转载 时间:
mac下使用homebrew安装安装、配置nginx、mysql、php-fpm的方法。
一、前话:1.1、环境选择:重新在mac上配置php,原本mac上就自带有apach、php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢。为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键;安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我都是通过php-osx by Liip来管理php,所以不担心版本问题。不过php-osx by Liip好像没有fmp相关的配置,这样我我要和nginx一起用的话就相对比较麻烦了,那我只能选择其他方案了安装mysql:这个就没有什么好疑问的了,目前我肯定不会去用pgsql,毕竟没接触过,需要有学习成本的,所以我在这篇纪录中把关于pgsql的部分都去掉了1.2、那该如何安装:既然我否定了系统自带的环境,那么就要通过别的方式去安装了,比如说手动编译。如果是手动编译的话,那么就会遇到下面几个问题:编译费事,php依赖那么多程序,一个个安装,太累!如果以后更新怎么办?灾难!!不过好在mac下有自己的第三方管理程序:homebrew,而且相对而言我觉得他可能在某些方面更优越于linux下的apt-get、yum。如果通过homebrew来安装、管理运行环境的话,至少可以解决我几个问题:安装问题,我不用繁琐的去安装依赖程序升级问题,只需要brew update一次升级所有程序版本问题,homebrew版本更新比较及时,而apt-get、yum来说,今年用的基本是几年前的稳定版本了OK,下面的安装都是基于 homebrew,如果不熟悉或者还没安装有 homebrew 的话,可以查看这篇关于:Mac开发者利器-Homebrew介绍及安装。二、安装nginx2.1、安装:用 brew 一键安装 nignx:1brew install nginx如果需要安装其他 nginx 的版本,可以 “brew edit nginx” 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。2.2、配置brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作: 代码如下:#打开 nginxsudo nginx&#重新加载|重启|停止|退出 nginxnginx -s reload|reopen|stop|quit打开 nginx 后,默认的访问端口 8080,如果要改为常用的 80 端口,则要修改 “/usr/local/etc/nginx/nginx.conf” 下监听(listen)端口值。默认的文件访问目录(root)是 “/usr/local/Cellar/nginx/1.4.2/html”(这里的1.4.2是安装的nginx的版本,文件夹名以安装的nginx版本为准)。2.3、把 nginx 设置为开机启动运行: 代码如下:mkdir -p ~/Library/LaunchAgents/cp /usr/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist不过试了一下,不是超级用户登陆,而是普通用户登陆,并且监听的端口在1024以下的(例如把默认的8080端口改为了80端口),nginx 开机是启动不了。因此,要 nginx 开机启动的话,需要给予它管理员权限: 代码如下:2sudo chown root:wheel /usr/local/Cellar/nginx/1.4.2/bin/nginxsudo chmod u+s /usr/local/Cellar/nginx/1.4.2/bin/nginx三、安装mysql3.1、安装: 代码如下:brew install mysqlhomebrew安装的版本同样是当前最新的稳定版,安装的过程比较简单,不过初始化就相对麻烦很多了,这里我失败了很多次。3.2、配置:3.2.1、初始化初始安装 mysql 的一些配置数据库(例如:information_schema、mysql) 代码如下:sudo mysql_install_db \--verbose --user=`whoami` \--basedir="$(brew --prefix mysql)" \--datadir=/usr/local/var/mysql \--tmpdir=/tmp \--explicit_defaults_for_timestamp这里我遇到了两个问题,过程都没纪录,这里简单提下解决方案:系统建议我添加“–explicit_defaults_for_timestamp”;安装过程中会遇到几个error,说是db的几个文件不存在;网上搜索了下,大多是建议将/usr/local/var/mysql这个目录修改下权限;我操作后发现可能不是这样的,造成这个问题在于我在之前操作遇到了错误中止了,生成了一个不完整var目录,所以每次安装失败我就删除以下文件,重新初始化就好了 代码如下:sudo rm /usr/local/opt/fsudo rm -R /usr/local/var/mysql/待安装完毕后,会出现一大段mysql相关信息,运行下面的命令启动mysql 代码如下:/usr/local/opt/mysql/bin/mysqld_safe &执行完后,就可以在终端里运行 “mysql”,直接进入mysql数据库里。对,不用输入密码,可以直接连接,初始默认是可以匿名访问的。3.2.2、修改密码超级用户 “root” 也是没设密码,要设密码的话可以执行下面指令 代码如下:/usr/local/opt/mysql/bin/mysqladmin -u root password 'new-password'现在访问 mysql 还是不用密码就可以连接,如果要设置一些登陆密码的安全访问限制,则需执行下面的 mysql安全安装指令 代码如下:/usr/local/opt/mysql/bin/mysql_secure_installation主要是设置修改root密码(设置过了可以不用设置,略过)、删除匿名访问、删除root网络访问、删除test数据库。指令执行完后,登陆mysql就需要密码验证了 代码如下:mysql -u root -p3.3、开机启动mysql 代码如下:mkdir -p ~/Library/LaunchAgents/cp /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist至此,mysql安装完毕。四、安装php、php-fpm…4.1、安装Mac是预装了php,不过很多扩展都没安装,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下: 代码如下:brew tap homebrew/dupesbrew tap josegonzalez/homebrew-php执行完后,就可以用 brew 安装php了。这里php有几个版本可以安装,具体可以执行 “brew search php” 查看一下有什么php版本可以安装,一般会有“php52、php53、php54、php55”版本,我安装的是最新的php5.5版本。由于PHP5.5版本已经内嵌了 FPM(FastCGI Process Manager),在安装选项里标明就行,本人 php 的安装配置指令如下: 代码如下:sudo brew install php55 \--with-debug \--with-fpm \--with-gmp \--with-homebrew-openssl \--with-imap --with-intl \--with-libmysql \--without-bz2 \--without-mysql \--without-pcntl \--without-pear更多的安装选项可以通过 “brew options php55″ 查看。提示:–with-cgi不能和–with-fpm一起安装,互相冲突指令执行完后,php 跟 php-fpm 就安装好了。4.2、配置由于是重装php,之前系统预装的php还没卸载,因此在终端调用php时,还是以之前系统的php版本做解析,所以这里需要修改path,指定 php 的解析路径。在~/.bashrc(没有则创建)最后加入一行: 代码如下:export PATH="$(brew --prefix php54)/bin:$PATH"[html][code]source ./.profile不存在这个文件的朋友请参照这片文章进行配置:Mac系统终端命令行不执行命令 总出现command not found解决方法OK,php-fpm安装完成。要修改配置 php 或者 php-fpm 的话,可以修改 “/usr/local/etc/php/5.5/php.ini” 、 “/usr/local/etc/php/5.5/php-fpm.conf”。详细配置方法可以参照相关资料:php-fpm 启动参数及重要配置详解Linux平滑编译升级php至5.5.0启动 php-fpm 的话就直接在终端里执行 “php-fpm”,默认打开 php-fpm 会显示一个状态 shell 出来,也可以把 php-fpm 的配置文件里的 “daemonize = no” 改为 “daemonize = yes”,就会以后台守护进程的方式启动,对于刚修改的配置文件,可以执行 “php-fpm -t” 来检测配置有没有问题。4.3、开机启动开机启动 php-fpm(下面的 5.5.3 是当前安装 php 的具体版本号): 代码如下:mkdir -p ~/Library/LaunchAgents/cp /usr/local/Cellar/php54/5.5.3/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist为了方便,写了个启动、关闭、重启 php-fpm 的 shell 脚本: 代码如下:#!/bin/shparam=$1start(){&&& fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`&&& if [ ! -n "$fpms" ]; then&&&&&&& php-fpm&&&&&&& echo "PHP-FPM Start"&&& else&&&&&&& echo "PHP-FPM Already Start"&&& fi}stop(){&&& fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`&&& echo $fpms | xargs kill -9&&& for pid in $ do&&&&&&& if echo $pid | egrep -q '^[0-9]+$'; then&&&&&&&&&&& echo "PHP-FPM Pid $pid Kill"&&&&&&& else&&&&&&&&&&& echo "$pid IS Not A PHP-FPM Pid"&&&&&&& fi&&& done}case $param in&&& 'start')&&&&&&&;&&& 'stop')&&&&&&&;&&& 'restart')&&&&&&& stop&&&&&&&;&&& *)&&&&&&& echo "Usage: ./phpfpm.sh start|stop|restart";;esac五、设置 nginx 的 php-fpm 配置在server块中添加解析文件类型“index index.html index.htm index.” 代码如下:server {&&&&&&& listen&&&&&& 80;&&&&&&& server_name&&&&&&&& index index.html index.htm index.&&&&&&& ......}打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准): 代码如下:location ~ .*\.(php|php5)?$ {&&&&&&& #fastcgi_pass& unix:/tmp/php-cgi.&&&&&&& fastcgi_pass& 127.0.0.1:9000;&&&&&&& fastcgi_index index.&&&&&&& fastcgi_param& SCRIPT_FILENAME& /Library/WebServer/public_html$fastcgi_script_&&&&&&& include /usr/local/etc/nginx/fastcgi_&&&&&&& #include fcgi.}修改目录用户、用户组: 代码如下:sudo chown www:www /Library/WebServer/public_htmlOK,这样就可以在访问目录下(默认是/Library/WebServer/public_html)执行 php 文件了。嗯,赶快输出一下 “phpinfo()” 吧~ 代码如下:&?phpphpinfo();
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具基于最新 Laravel 5.2 的&2016 版教程已经发布到 Github:十分建议学习 5.2,4.2 早已不再维护。 向&&致敬,本教程部分内容翻译自此文章。
每一个教程完成,我将会git commit一次。示例代码见 大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码。 推荐&Laravel 4.2&中文文档&
0. 默认条件
本文默认你已经有配置完善的PHP+MySQL运行环境,懂得PHP网站运行的基础知识。跟随本教程走完一遍,你将会得到一个基础的包含登录的简单blog系统,并将学会如何使用一些强大的Laravel插件和composer包(Laravel插件也是composer包)。 软件版本:PHP 5.4+,MySQL 5.1+
本文不推荐完全不懂PHP与MVC编程的人学习。本文不是 “一步一步跟我做” 教程。本文需要你付出一定的心智去解决一些或大或小的隐藏任务,以达到真正理解 Laravel 运行逻辑的目的。
1. 安装 许多人被拦在了学习Laravel的第一步,安装。并不是因为安装教程有多复杂,而是因为【众所周知的原因】。在此我推荐一个composer全量中国镜像:。推荐以 “修改 composer 的配置文件” 方式配置。 镜像配置完成后,切换到你想要放置该网站的目录下,运行命令:
composer create-project laravel/laravel learnlaravel 4.2.11为了大家学习的方便,请暂时使用 4.2.11 版本进行入门。春节假期我会抽时间写一下 Laravel 5 的入门教程。4.2.11 的 Github 下载地址为: 然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel 的文件夹,这时候如果你通过浏览器访问&learnlaravel/public/ 目录,基本都会显示&Error in exception handler. &,这是因为 learnlaravel/app/storage 目录没有 777 权限,设置好权限即可看见页面如下图:
恭喜你~Laravel安装成功!
不想配置镜像的同学,可以使用 Laravel 界非常著名的搞得安装神器:
2. 必要插件安装及配置 我们使用著名的Sentry插件来构建登录等权限验证系统。
打开 ./composer.json ,变更为:
"require": {
"laravel/framework": "4.2.*",
"cartalyst/sentry": "2.1.4"
},然后,在项目根目录下运行命令
composer update 然后稍等一会儿,它会提示&cartalyst/sentry 2.1.4安装完成。
同理,我们将安装一个开发用的非常强大的插件,way/generators,这是它在composer库中的名字。在 composer.json中增加:
"require-dev": {
"way/generators": "~2.0"
},和“require”同级,放在下面,不是里面哦~。
运行 composer update,之后在 ./app/config/app.php 中增加配置:
'Way\Generators\GeneratorsServiceProvider'安装完成过,在命令行中运行&php artisan,就可以看到这个插件带来的许多新的功能。
有人会问,为什么用了国内镜像还是如此之慢?其实composer在update的时候最慢的地方并不是下载,而是下载之前的依赖关系解析,由于Laravel依赖的composer包非常之多,PHP脚本的执行速度又比较慢,所以每次update等个两三分钟很正常,习惯就好。
3. 数据库建立及迁移 数据库配置文件位于 ./app/config/database.php,我们需要把“connections”中的“mysql”项改成我们需要的配置。下面是我的配置:
'mysql' =& array(
=& 'mysql',
=& 'localhost',
'database'
=& 'laravel',
'username'
=& 'root',
'password'
=& 'password',
=& 'utf8',
'collation' =& 'utf8_unicode_ci',
prefix为表前缀,这个Laravel会帮我们自动维护,大胆写上不用担心。
这时候你需要去数据库建立此数据库,然后在命令行中输入:
php artisan migrate --package=cartalyst/sentry执行完成后,你的数据库里就有了5张表,这是sentry自己建立的。sentry在Laravel4下的配置详情见&,我大致说一下:
在 ./app/config/app.php 中
分别增加以下两行:
'Cartalyst\Sentry\SentryServiceProvider','Sentry' =& 'Cartalyst\Sentry\Facades\Laravel\Sentry', 权限系统的数据库配置到此为止。
我们的简单blog系统将会有两种元素,Article和Page,下面我们将创建articles和pages数据表,命令行运行:php artisan migrate:make create_articles_table --create=articles
php artisan migrate:make create_pages_table --create=pages
这时候,去到 ./app/database/migrations,将会看到多出了两个文件,这就是数据库迁移文件,过一会我们将操作artisan将这两个文件描述的两张表变成数据库中真实的两张表,放心,一切都是自动的。
下面,在***_create_articles_table.php中修改:
Schema::create('articles', function(Blueprint $table)
$table-&increments('id');
$table-&string('title');
$table-&string('slug')-&nullable();
$table-&text('body')-&nullable();
$table-&string('image')-&nullable();
$table-&integer('user_id');
$table-&timestamps();
在***_create_pages_table.php中修改:
Schema::create('pages', function(Blueprint $table)
$table-&increments('id');
$table-&string('title');
$table-&string('slug')-&nullable();
$table-&text('body')-&nullable();
$table-&integer('user_id');
$table-&timestamps();
下面,就是见证奇迹的时刻,在命令行中运行:
php artisan migrate 这时候数据库中的articles表和pages表就建立完成了。
4. 模型 Models 接下来我们将接触Laravel最为强大的部分,Eloquent ORM,真正提高生产力的地方,借用库克的话说一句,鹅妹子英!
我们在命令行运行下列语句以创建两个model:
php artisan generate:model article
php artisan generate:model page这时候,在 app/models/ 下就出现了两个文件 Article.php 和 Page.php,这是两个 Model 类,他们都继承了Laravel提供的核心类&\Eloquent。这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 Model 类哦。Model 即为 MVC 中的 M,翻译为 模型,负责跟数据库交互。在 Eloquent 中,数据库中每一张表对应着一个 Model 类。如果你从其他框架转过来,可能对这里一笔带过的 Model 部分很不适应,没办法,是因为 Eloquent 实在太强大了啦,真的没什么好做的,继承一下 Eloquent 类就能实现很多很多功能了。详见&Eloquent 系列教程:5. 数据库填充
分别运行下列命令:
php artisan generate:seed page
php artisan generate:seed article 这时,在 ./app/database/seeds/ 下就出现了两个新的文件,这就是我们的数据库填充文件。Laravel提供自动数据库填充,十分方便。 generator默认使用Faker\Factory作为随机数据生成器,所以我们需要安装这个composer包,地址是 &,跟generator一起安装在 require-dev 中即可。具体安装请自行完成,可以参考Sentry和Generator,这是第一次练习。
接下来,分别更改这两个文件:
Article::create([
=& $faker-&sentence($nbWords = 6),
=& 'first-post',
=& $faker-&paragraph($nbSentences = 5),
'user_id' =& 1,
]);Page::create([
=& $faker-&sentence($nbWords = 6),
=& 'first-page',
=& $faker-&paragraph($nbSentences = 5),
'user_id' =& 1,
]); 然后,我们需要在&DatabaseSeeder.php 中增加两行,让Laravel在seed的时候会带上我们新增的这两个seed文件。
$this-&call('ArticleTableSeeder');
$this-&call('PageTableSeeder'); 下面就要真正的把数据填充进数据库了:
php artisan db:seed 操作完成以后去数据库看看,数据已经填充进去了,article和page各10行。 接下来做什么?
WRITTEN BY
程序员,Swift Contributor,正在写《iOS 可视化编程与 Auto Layout》。
相关日志:
Powered by查看: 2459|回复: 4
高手们帮帮我,如何将commandManager工具栏调回到上边
主题帖子金币
侠客, 积分 272, 距离下一级还需 228 积分
侠客, 积分 272, 距离下一级还需 228 积分
&&&经典案例图书使用时不小心弄到右边了,怎么也弄不回去了,曾经有一次弄回去过,这次怎么也不行了,所以求救。
081345mjtxzowervdoxeto.png (159.59 KB, 下载次数: 12)
09:39 上传
SolidWorks机械工程师论坛
主题帖子金币
天使, 积分 198, 距离下一级还需 2 积分
天使, 积分 198, 距离下一级还需 2 积分
参与讨论和学习
或扫描二维码加入
兄弟,看见那小方框了吧,把工具条拖到哪个就在哪里了。
125521udd5b9j8egn89pd8.png (264.87 KB, 下载次数: 13)
10:39 上传
SolidWorks机械工程师论坛
主题帖子金币
混混, 积分 118, 距离下一级还需 -68 积分
混混, 积分 118, 距离下一级还需 -68 积分
回楼上老弟,我拖拽过这个地方,不好使,可能没有掌握正确的方法。
SolidWorks机械工程师论坛
主题帖子金币
侠客, 积分 255, 距离下一级还需 245 积分
侠客, 积分 255, 距离下一级还需 245 积分
弄好了,谢谢。
SolidWorks机械工程师论坛
主题帖子金币
侠客, 积分 397, 距离下一级还需 103 积分
侠客, 积分 397, 距离下一级还需 103 积分
&&&经典案例图书我也弄好了 重新启动软件又回去了
SolidWorks机械工程师论坛
注册账号后积极发帖的会员
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
积极宣传本站,为本站带来更多的用户访问量
:本论坛言论纯属发表者个人意见,与“本论坛”立场无关。
如涉版权,可发邮件:参照你的写法,在Eclipse 如下,调试时得到SQL
like '%''精彩''%'
if(description!=null && !"".equals(description.trim())){
sql.append(" and description like '%' ? '%'");
paramList.add(description);
}select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1
and description like '%''精彩''%'如果是command 的 就没问题if(command!=null && !"".equals(command.trim())){
sql.append("and command=?");
paramList.add(command);
额,问题找到了,是我空格用了中文的了
写下你的评论...
我也报错了,你解决了吗
你的解决了吗
where 1=1 and command=? 注意空格
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2

我要回帖

更多关于 command prompt 的文章

 

随机推荐