自己动手搭建lnmp环境

如何配置lnmp
(本人在ubuntu环境下)
安装nginx,php,php-fpm(php5-fpm),mysql,fastcgi,(php-cli,命令行工具)
安装不是问题,apt-get install就可以,问题是配置,

配置过程中有几个命令挺有用的:
nginx -t、php5-fpm -t、fastcgi -t,等等
就是检测配置文件的语法
关于查看程序运行状态、启动、重启等有的支持service 程序名 {start|restart|stop|…}(似乎是在/etc/init.d/*的程序),有的是:程序名 {start|restart|stop|…}(似乎是/etc/下的程序),
还有一些是要指定目录下的程序(木有配置环境变量)

本人安装nginx是1.4.6版本,配置文件(find / -name nginx.conf自行查找)会include来include去的,要注意include的文件,
似乎include了两个文件,include /etc/nginx/sites-enabled/*是主站,另外一个include相当于配置虚拟主机,当然通过改配置也可以倒过来,
还可以改文件名,路径等

nginx配置文件的默认用户和用户组为www-data,刚安装好似乎就能访问了,打开浏览器访问127.0.0.1就o了,
但是此时并不支持php,如果你编辑一个php文件并在浏览器中访问就会发现程序会下载,那么,此时我们需要安装php、
php-cli,有了这两个之后可以在命令行模式下运行php(php 文件名,php –help查看帮助),但是还是不能在浏览器中运行,
接下来需要安装fastcgi,

fastcgi是什么东东呢?听说是:
首先请求从浏览器发起,(中间省略一堆过程…),那么此时php文件(程序)中需要接受参数,参数又从url地址中传输过来,这只是最基本的,还有ip地址,浏览器信息等等会被封装
成特定的格式,而fastcgi就可以识别这些格式的数据,通过这一步然后再到php执行程序中,(此处又略去几万字),还有一个提一提,与php CGI一样fastcgi也需要载入php.ini配置初始化程序,不同的是CGI是每次处理php程序都要载入php.ini,而fastcgi是开启监听端口或采用unix socket监听,
好了,fastcgi安装好后回到配置中了,nginx的默认配置站点是include /etc/nginx/sites-enabled/*,个人把它注释掉,然后在http{}之间加入server{},
当然,保持默认也是一样的,
server{
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;#路径不一定是tmp
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
注意此时有个fastcgi.conf需要引入,代码大致如下
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

配置好后要记得nginx -t,没问题后重新启动程序

find / -name php(5)-cgi.sock,看是否存在,不存在果断注释掉,采用tcp,就是监听9000或其他没有占用的端口,接下来开启一个screen,
screen -S www
php-cgi -b 127.0.0.1:9000(php(5)-cgi –help,具体看你的版本)
监听好后不要ctrl+c,ctrl+a+d便可后台运行(具体搜索screen的使用)
ok,可以在浏览器中输入站点url了(http://127.0.0.1/index.php),不出意外的话此时可以访问了,

好了,虽然可以运行,但这样的做法不利于站点维护,流行的做法是给fastcgi一个进程管理程序,这里用php-fpm,
通常,听说新的php版本集合了php-fpm(本人的是php5-fpm),但我的并木有(还是老方法,find / -name php*-fpm),可能要通过编译安装,
安装完后可以find一下,找到php-fpm.conf,找到之后注意有木有include其他配置文件,
一下几个基础配置
listen = 127.0.0.1:9000#与server{}里fastcgi_pass设置一致
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每个进程池都需要设置.

listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。

user = www
group = www
#启动进程的帐户和组

配置好之后不要忘记语法检查,最后启动停止和重启,
现在可以到www screen中把把监听停掉了
#测试php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t

#启动php-fpm
/usr/local/php/sbin/php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

#关闭php-fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`#程序启动时会把分配的pid的第一个进程写入到这里

#重启php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
(说明:关于路径请根据自己的具体情况,以上php-fpm还有可能是php5-fpm)

总结:

1.安装nginx,php,php-fpm(php5-fpm),mysql,fastcgi,(php-cli,命令行工具)

2.配置

3.由于本人实验没做到MySQL,就留到以后写吧

原文地址:http://wp.iyouths.org/233.html

转载于:https://my.oschina.net/u/1460290/blog/617368

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值