LNMP开发环境搭建

我怕爱的太早我们不能终老 提交于 2020-07-23 20:29:15

Nginx安装

 安装版本: 稳定版 1.8.0

 1).确定是否安装pcre-devel编译所需要的兼容正则,nginx需要pcre这个包文件

   没有的情况下,直接用

  

[root@moban ~]# yum -y install pcre-devel 
#安装时有的可能没有安装openssl库,直接用 yum -y install openssl*安装


 2).执行nginx编译安装

[root@moban ~]# ./configure --prefix=/application/nginx1.8.0 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[root@moban ~]# make && make install

不出意外的话,nginx就安装成功了......


Mysql安装

   关于mysql,常用的有以下安装方式: 1.源码安装 2.二进制安装 3.RPM包安装,本次安装使用的是二进制包安装(不需要编译,直接解压即可)

安装步骤:

   1)建立用户

[root@moban ~]# useradd -M -s /sbin/nologin mysql

    2)解压tar包

[root@moban ~]# tar xf mysql-5.5.45-linux2.6-i686.tar 
[root@moban ~]# cp mysql-5.5.45-linux2.6-i686 /application/mysql-5.5.45

    3) 初始化data数据

[root@moban ~]# ln -s /application/mysql-mysql-5.5.45 /application/mysql #创建软链接    
[root@moban ~]# mkdir /application/mysql/data #创建data目录    
[root@moban ~]# chown -R mysql:mysql /application/mysql/data #修改所属用户与组    
[root@moban ~]# cd /application/mysql/    
[root@moban ~]# scripts/mysql_install_db --user=mysql --datadir=/application/mysql5.5.45/data/ --basedir=/application/mysql5.5.45/ #初始化数据

   4)配置mysql服务启动所需要的脚本与配置文件

  [root@moban ~]# cp support-files/mysql.server /etc/init.d/mysqld     
  [root@moban ~]# cp support-files/my-.cnf/etc/my.cnf    
  [root@moban ~]# vi /etc/init.d/mysqld
   #将mysqld文件里的第46行左右修改为:
   basedir=/application/mysql5.5.45/    
   datadir=/application/mysql5.5.45/data

   5)优化MYSQL

    #为root用户添加密码

[root@moban ~]# /application/mysql5.5.45/bin/mysqladmin -u root password '123456'

    #删除mysql库user表中不需要的用户数据,默认只保留以下这两条用户数据

mysql> select user,host from mysql.user;    
+------+-----------+    
| user | host    |    
+------+-----------+    
| root | 127.0.0.1 |    
| root | localhost |    
+------+-----------+


#删除用户的操作:    

drop user [user列的内容]@[host列对应的内容] ;

MYSQL的搭建就已经成功了......



PHP安装

1).检查并安装相应的编译库文件

[root@moban tools]# rpm -qa zlib libxml libjpeg libpng freetype curl libiconv gd zlib-devel libxml-devel libjpeg-devel gd-devel freetype-devel curl-devel 
[root@moban tools]# yum -y install zlib libxml libjpeg libpng freetype curl libiconv gd zlib-devel libxml-devel libjpeg-devel gd-devel freetype-devel curl-devel

安装libiconv库

[root@moban tools]# cd libiconv-1.14
[root@moban libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
[root@moban tools]#make && make install

安装libmcrypt

[root@moban tools]# tar xf libmcrypt-2.5.8.tar.gz 
[root@moban tools]#  cd libmcrypt-2.5.8
[root@moban tools]#  .configure 
[root@moban tools]#  make && make install 
[root@moban tools]# /sbin/ldconfig
[root@moban tools]# cd libltdl/
[root@moban tools]#  ./configure --enable-ltdl-install
[root@moban tools]#  make && make install

安装mhash

[root@moban tools]# wget http://soft.7dot.com/soft/mhash-0.9.9.9.tar.gz
[root@moban tools]# tar xf mhash-0.9.9.9.tar.gz 
[root@moban tools]# cd mhash-0.9.9.9
[root@moban mhash-0.9.9.9]# ./configure 
[root@moban mhash-0.9.9.9]# make && make install

安装mcrypt--加密扩展库

Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。 

Mhash为PHP提供了多种哈希算法,如MD5SHA1GOST 等。你可以通过MHASH_hashname()来查看支持的算法有哪些。

注意问题:

1该扩展不能提供最新的哈希算法。

2.该扩展结果原则上运算不可逆。



  • 参考资料: http://baike.baidu.com/view/9549224.htm

)


安装Mcrypt 

    简介:PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库McryptMhash

其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

mcrypt 是 php 里面重要的加密支持扩展库,linux环境下:该库在默认情况下不开启。window环境下:PHP>=5.3,默认开启mcrypt扩展。

Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示。一般情况下开发用不到他们。

参考资料:http://baike.baidu.com/view/9537042.htm


[root@moban tools]# wget http://soft.7dot.com/soft/mcrypt-2.6.8.tar.gz
[root@moban tools]# tar xf mcrypt-2.6.8.tar.gz 
[root@moban tools]# cd mcrypt-2.6.8
[root@moban mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/lib ./configure
[root@moban mcrypt-2.6.8]# make && make install


PHP安装

在进行configure后,执行make操作会有一个错误:

/home/tools/php-5.3.27/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

make: *** [ext/phar/phar.php] Error 127

最好是提交先解决掉:

解决一:创建一个软链接:

[root@moban php-5.3.27]# ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib/

在执行make会报第二个错误:

chmod: cannot access `ext/phar/phar.phar': No such file or directory

解决二:


 

 [root@moban tools]# tar php-5.3.27.tar.gz 
 [root@moban tools]#  tar xf  php-5.3.27.tar.gz 
 [root@moban tools]#  cd php-5.3.27
 [root@moban php-5.3.27]#  yum install libxsl*
 [root@moban php-5.3.27]#  yum install libxsl* -y
 [root@moban php-5.3.27]# ./configure \
--prefix=/application/php5.3.27 \
--with-mysql=/application/mysql5.5.45 \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp
 
 
 ######看到如下内容说明./configure成功
 +--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.


 [root@moban php-5.3.27]# make && make install
 
 [root@moban php]# cp php-5.3.27/php.ini-production /application/php5.3.27/lib/php.ini


PHP配置文件的优化

 

[root@moban php-5.3.27]# cp /home/tools/php-5.3.27/php.ini-production /application/php/lib/php.ini
[root@moban php-5.3.27]#  cp php-fpm.conf.default php-fpm.conf
#把php-fpm.conf的配置进行相应的修改,可以参考一些其他的资料

启动php

  

#检查语法是否有错误
[root@moban etc]# /application/php/sbin/php-fpm -t
[04-Nov-2015 11:28:12] NOTICE: configuration file /application/php5.3.27/etc/php-fpm.conf test is successful
#开启php-fpm进程
[root@moban etc]# /application/php/sbin/php-fpm 
[root@moban etc]# netstat -tunpl | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      1427/php-fpm    
[root@moban etc]# ps -ef | grep php-fpm #查看进程
root      1427     1  0 11:23 ?        00:00:00 php-fpm: master process (/application/php5.3.27/etc/php-fpm.conf)
nginx     1428  1427  0 11:23 ?        00:00:00 php-fpm: pool www            
nginx     1429  1427  0 11:23 ?        00:00:00 php-fpm: pool www            
nginx     1430  1427  0 11:23 ?        00:00:00 php-fpm: pool www            
nginx     1431  1427  0 11:23 ?        00:00:00 php-fpm: pool www            
nginx     1432  1427  0 11:23 ?        00:00:00 php-fpm: pool www                      
root      1457  1359  0 11:29 pts/0    00:00:00 grep --color=auto php-fpm


把mysql,php,nginx设置为开机启动

[root@moban etc]# vi /etc/rc.local
[root@moban etc]#/etc/init.d/mysqld start
[root@moban etc]#/application/php/sbin/php-fpm
[root@moban etc]#/application/nginx/sbin/nginx


最后,把php与nginx整合

server {

        listen       80;

        server_name  www.etiantian.com;

        location / {

            root   html;

            index  index.html index.htm;

           location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

            }

        }

    }


当我们把location ~ \.php$部分去掉注释,重启nginx后发现仍然不解析php,这时需要检查一下 fastcgi_param参数里把 /scripts 改成 $document_root ,代表网站的根目录。



mcrypt的安装,可以借鉴:http://www.cnblogs.com/huangzhen/archive/2012/09/12/2681861.html

软件的下载可以直接到: http://soft.7dot.com/

对nginx,fastcgi相关原理的介绍: http://www.linuxidc.com/Linux/2015-03/114654.htm



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!