上次中,记录了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) [root@localhost local]#tar zxvf php-5.2.13.tar.gz [root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1 [root@localhost local]#cd php-5.2.13 [root@localhost php-5.2.13]#./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm [root@localhost php-5.2.13]#make [root@localhost php-5.2.13]#make install [root@localhost php-5.2.13]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-fpm start 在“./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 主要二进制程序 [root@localhost nginx]# ./sbin/nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) .... nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] 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_index index.php; 10 fastcgi_param SCRIPT_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会去找这个脚本并处理,所以脚本的位置要指对)