waltzlhy 发表于 2015-8-21 12:37:16

lnmp的环境的安装和搭建

  上次中,记录了lamp的环境的搭建和安装,这一次说一下lnmp环境的安装和搭建,下面是详细的安装步骤:
  一. 先是Mysql的安装步骤,其实和上次的一样:
  



1): 编译安装MySQL
+-------------------------------------------------------------------------------+
|   操作                         |   作用               |   
+-------------------------------------------------------------------------------+
|shell> cd /usr/local/src               | 进入软件包所在目录(不要照抄)   |
|-------------------------------------------------------------------------------|
|shell> groupadd mysql                  | 增加mysql组(如果有就不用加了)   |
|-------------------------------------------------------------------------------|
|shell> useradd mysql -g mysql               | 增加mysql用户,并属于mysql组   |
|-------------------------------------------------------------------------------|
|shell> tar -xzvf mysql-5.1.30.tar.gz             | 解压mysql源码包          |
|-------------------------------------------------------------------------------|
|shell> cd mysql-5.1.30                  | 进入源码包               |
|-------------------------------------------------------------------------------|
|shell> ./configure --prefix=/usr/local/mysql \   | 配置mysql编译选项,          |
|   --with-charset=utf8 \                | 指定安装路径及支持的字符集   |
|   --with-extra-charsets=gbk,gb2312,binary\
|                      |
|-------------------------------------------------------------------------------|
|shell> make                         |编译                  |
|-------------------------------------------------------------------------------|
|shell> make install                     |安装                  |
+-------------------------------------------------------------------------------+
2):配置并初始化MySQL
+---------------------------------------------------------------------------------------+
|   操作                              |   作用               |   
+---------------------------------------------------------------------------------------+
|shell> cp support-files/my-medium.cnf /etc/my.cnf   | 把MySQL配置文件复制到/etc下   |
|---------------------------------------------------------------------------------------|
|shell> vi /etc/my.cnf 在'skip_federated'前加'#'号   | 注释掉这个错误的启动项,这是一个比较新式的存储引擎|
|---------------------------------------------------------------------------------------|
|shell> cd /usr/local/mysql                  | 进入mysql的安装目录          |
|---------------------------------------------------------------------------------------|
|shell> chown -R mysql.mysql .                  | 修改属主属组为mysql,才能完成   |
|                                     | 下一步的初始化数据库工作   |
|---------------------------------------------------------------------------------------|
|shell> bin/mysql_install_db --user=mysql \          | 初始化数据数据库          |
| --datadir=/usr/local/mysql/var               |                  |
|---------------------------------------------------------------------------------------|
|shell> chown -R root .                         | 把var目录修改为mysql用户所有   |
|shell> chown -R mysql var                  | 其他文件修改为root所有,保证安全|
|---------------------------------------------------------------------------------------|
|shell> bin/mysqld_safe --user=mysql &               | 启动mysql               |
+---------------------------------------------------------------------------------------+
3):测试数据库
+-------------------------------------------------+-------------------------------------+
|               操作               |               作用          |   
+-------------------------------------------------+-------------------------------------+
|shell> bin/mysql -uroot               | 以root用户连mysql,无密码          |
|---------------------------------------------------------------------------------------|
|mysql> show databases;                      | 显示数据库                  |
|---------------------------------------------------------------------------------------|
| +--------------------+               |                         |   
| | Database         |               |                         |
| +--------------------+               |   看到左面的信息,数据库就安装   |
| | information_schema |               |   并启动成功了!               |
| | mysql            |               |                         |
| | test               |               |                         |
| +--------------------+               |                         |
+---------------------------------------------------------------------------------------+

4):接上步,修改mysql密码(可不做此步,默认无密码)
+-------------------------------------------------------------------------------+
|          操作                  |          作用          |   
+-------------------------------------------------------------------------------+
|mysql>UPDATE user SET                     |                  |
| password=PASSWORD('new_password')          |   修改root用户的密码   |
| WHERE user='root';                  |                  |
|-------------------------------------------------------------------------------+
|mysql>flush privileges;               |   清空权限缓存          |
+-------------------------------------------------------------------------------+
  二.开始安装php



1 apache一般是把php当做自己的一个模块来启动的.
2 而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式.
3 因此,为apache所编译的php,是不能用于nginx的.
  
  注意:需要将php-fpm的模块打进入到php的源码包中,具体的步骤如下:
  



编译安装PHP和PHP-FPM很简单,下面是安装过程:(最好安装php5.3)
#tar zxvf php-5.2.13.tar.gz   
#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
#cd php-5.2.13
#./configure--prefix=/usr/local/php --enable-fastcgi --enable-fpm
#make
#make install
cp php.ini-dist /usr/local/php/lib/php.ini
管理FastCGI进程
在配置完php-fpm后,就可以启动FastCGI进程了。启动fastcgi进程有两种方式:
/usr/local/php/bin/php-cgi --fpm
或者
/usr/local/php/sbin/php-fpmstart

在“./configure”编译选项中,指定将PHP安装到/usr/local下,“--enable-fastcgi”是启用对PHP的FastCGI支持,“--enable-fpm”是激活对FastCGI模式的fpm支持。
注意:在此处并没有将Mysql编译进来,但是没有关系,这个后续也是可以导入进来的
  三.安装nginx
  



nginx 的安装
下载地址: http://nginx.org/download/nginx-1.4.2.tar.gz
安装准备: nginx依赖于pcre库,要先安装pcre
yum install pcre pcre-devel
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx
make && make install
启动:
cd /ulsr/local/nginx, 看到如下4个目录
./
....conf 配置文件
... html 网页文件
...logs日志文件
...sbin主要二进制程序
# ./sbin/nginx
nginx: bind() to 0.0.0.0:80 failed (98: Address already in use)
....
nginx: bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: still could not bind()
不能绑定80端口,80端口已经被占用
(有时是自己装了apache,nginx等,还有更多情况是操作系统自带了apache并作为服务启动)
解决: 把占用80端口的软件或服务关闭即可.

  总结一下nginx处理转发php的请求原理:



1 nginx+php的配置比较简单,核心就一句话----
2 把请求的信息转发给9000端口的PHP进程,
3 让PHP进程处理 指定目录下的PHP文件.
4
5 如下例子:
6 location ~ \.php$ {
7             root html;
8             fastcgi_pass   127.0.0.1:9000;
9             fastcgi_indexindex.php;
10             fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
11             include      fastcgi_params;
12
13         }
14
15 1:碰到php文件,
16 2: 把根目录定位到 html,
17 3: 把请求上下文转交给9000端口PHP进程,
18 4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname
19 (注:PHP会去找这个脚本并处理,所以脚本的位置要指对)
  
页: [1]
查看完整版本: lnmp的环境的安装和搭建