本身动手搭建lnmp环境

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

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

本人安装nginx是1.4.6版本,配置文件(find / -name nginx.conf自行查找)会include来include去的,要注意include的文件,
彷佛include了两个文件,include /etc/nginx/sites-enabled/*是主站,另一个include至关于配置虚拟主机,固然经过改配置也能够倒过来,
还能够改文件名,路径等mysql

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

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;sql

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;ubuntu

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;socket

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

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),不出意外的话此时能够访问了,php-fpm

好了,虽然能够运行,但这样的作法不利于站点维护,流行的作法是给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

相关文章
相关标签/搜索