|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多。
完成php&nginx服务器设置的非支流设置办法
这类办法并不是之前所盛行的apache加php_module的体例运转,我是接纳nginx作为web服务器,以fastcgi的体例运转php。
linux下编译:
nginx我仍是习气选择8.54的版本,它的编译依附以下几个软件包,解压这些源码包,在configure中设置好这些源码的路径,nginx在编译的时分会本人将他们编译出来的:
pcre:次要用于rewrite等模块
zlib: 这个不必说了
openssl:假如你还晓得https这个器材,那末你懂的~~~(固然你能够不必要这个功效)
md5/sha1:这二者都是用于天生信息择要的希哈算法,这俩个器材不是必需的,可是我发明假如不选择个中一个那末openssl是不会乐成地编译进nginx的
上面是我本人写的一个安装剧本,有temp-path字样的编译选项所设置都是nginx在运转时发生的一时文件的路径,pid-path,lock-path也是一时文件路径,log-path是日记文件路径,我由于本人机子上一些权限的成绩以是要设置一下.一样平常情形下实在这些是不用要的,nginx默许会一切把天生的这些文件放在本人的安装目次下.
.代码以下:
tmp=/tmp/nginx
log=/home/jsckdao/log
pcre=~/downloads/pcre-8.02
zlib=~/downloads/zlib-1.2.5-src
openssl=~/downloads/openssl-0.9.8q
md5=~/downloads/md5-1.3.0
./configure--prefix=/usr/local/nginx
--http-proxy-temp-path=${tmp}/nginx-proxy.tmp
--http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp
--http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp
--http-scgi-temp-path=${tmp}/nginx-scgi.tmp
--http-client-body-temp-path=${tmp}/nginx-client.tmp
--pid-path=${tmp}/nginx.pid
--lock-path=${tmp}/nginx.lock
--http-log-path=${log}/http.log
--error-log-path=${log}/http-error.log
--with-pcre=$pcre#pcre源码包的路径
--with-zlib=$zlib#zlib源码包的路径
--with-http_ssl_module#升引ssl撑持
--with-openssl=$openssl#openssl源码包路径
make
makeinstall
php(5.2)的编译能够庞大点,也能够复杂点,由于我们编译php时次要目标是编译它的剧本引擎和一些中心库,良多核心的器材纷歧定非要在编译php的时分加出来,能够在必要的时分将它们编译成扩大库再修正设置文件来加载它们。
我的编译代码以下:
.代码以下:
./configure--prefix=/usr/local/php
--with-mysql=/usr/local/mysql#设置mysql的安装路径
--enable-fastcgi#开启fastcgi撑持
--enable-debug#撑持调试
make
makeinstall
实在关于mysql的那一句都是能够不要的,只是我懒得再编译一次mysql扩大,以是就如许把它间接编译进php了,如许做的条件是你必需先安装mysql。
令外另有一些注重事项:编译php时必需确保体系中具有libxml2与libxml-dev这俩个软件包,由于php默许会将xml的功效编译出来,以是xml的撑持是必不成少的。另有一个就是autoconf这条命令了,在编译扩大的时分,phpize会挪用体系中的这个命令来天生扩大包的configure文件,没有它你就不克不及作扩大了,这一点也是要记着的,究竟linux下的php不像windows版那样事前把一切的扩大都编译好了。
至于window下nginx,php的安装就没有甚么难度了,下个zip包,解压就可以用,只需略微设置就能够了.
设置:
假如只是想让php能运转的话那末间接输出命令:
./php-cgi-b3344
如许就开启了php的fastcgi历程了,-b参数是绑定该历程的侦听端口,任意找个没用的端口填就能够了,这里绑定的是3344.
然后在nginx的设置文件中加上这么几行:
.代码以下:
location~.php${
root /home/jsckdao/www.3ppt.com;#这是你网站的根目次
fastcgi_pass 127.0.0.1:3344;#这里指定了fastcgi历程侦听的端口,nginx就是经由过程这里与php交互的
fastcgi_index index.php;
fastcgi_param script_filename$document_root/$fastcgi_script_name;
include fastcgi_params;
}
假如要改nginx的侦听端口的话找到"listen"这么一项,改就是了.运转nginx,在/home/jsckdao/www目次中写一个测试文件test.php:
.代码以下:
<?php
phpinfo();
?>
会见http://localhost:8080/test.php,假如显现了php以是的设置信息,那末就基础没甚么成绩,已能够用这个情况写些php代码了.
至于php的调试器我选择xdebug,不为何,习气而至。加载xdebug时,在设置文件中的写法依据体系的分歧仿佛也有点分歧。linux下是:zend_extension_debug=<path>,window中加载的dll有两种,一种文件名会带有ts的后缀,这类要这要样写:zend_extension_ts=<path>别的一种就如许:zend_extension=<path>,path必定要写相对路径。固然ts为什么意我也不是很分明,可是这些设置是必定不成以弄错的。
设置好后从头运转php-cgi,然后从头会见test.php,假如有xdebug的那一块呈现了,那末就乐成了.
固然这是一个很复杂的设置,只能让你运转php,要想真正做成你必要的开辟情况,还必要你依据本人的必要修正php和nginx的设置文件,这些设置内容良多,我本人也在进修中,就欠好多讲了.
别的有一点必要注重,php的设置文件在它的源码包中有两个:php.ini-dist和php.ini-recommended,分离是针对天生情况和开辟情况的设置.你必要把个中一个更名为php.ini.重启后检察phpinfo()的页面,靠上的中央有一项"loadedconfigurationfile",它的值假如就是你的php.ini的路径,那末就没成绩了,假如不是话,就看看下面一项"configurationfile(php.ini)path",你把你的php.ini文件移到这个目次下在重启就能够了.由于php默许会在这个路径下寻觅php.ini的.固然你也能够在运转php-cgi的时分设置你的php.ini路径,好比如许:
php-cgi-b3344-c/home/jsckdao/php.ini
如许就是把/home/jsckdao/php.ini这个文件作为设置文件了
如果你只是想应付一下操作系统的课程,劝你最好别学,或者说不要指望能用的怎么样。 |
|