LNMP的部署

1、简介php

LNMP表明的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。html

——Linux是一类Unix计算机操做系统的统称,是目前最流行的免费操做系统。表明版本有:debian、mysql

        centos、ubuntu、fedora、gentoo等。nginx

——Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。sql

——Mysql是一个小型关系型数据库管理系统。数据库

——PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。ubuntu

这四种软件均为免费开源软件,组合到一块儿,成为一个免费、高效、扩展性强的网站服务系统。vim

2、项目环境centos

Linux 6.5api

Nginx-1.8.1.tar.gz     

Mysql-5.6.16.tar.gz

php-5.6.20.tar.gz

nginx源码包下载地址http://nginx.org/en/download.html

3、项目架构

4、安装过程

一、nginx服务器安装配置

(1)首先安装开发环境,及所需依赖

[root@nginx ~]# yum -y groupinstall  "Development libraries" "Development tools" "X Software Development" 

[root@nginx ~]# yum -y install gcc  pcre pcre-devel

(2)添加nginx使用用户

[root@nginx ~]#useradd -r www

(3)编译安装nginx

[root@nginx ~]# tar -zxvf nginx-1.8.1.tar.gz

[root@nginx ~]# cd nginx-1.8.1

[root@nginx nginx-1.8.1]# ./configure --prefix=/usr/local/nginx  \

> --user=www  --group=www  \

> --with-http_ssl_module  \  ## 启用ngx_http_ssl_module支持(需已安装openssl)

> --with-http_stub_status_module \  ##启用nginx的NginxStatus功能

> --with-http_gzip_static_module  \  ##启用ngx_http_gzip_static_module支持

> --with-pcre

[root@nginx nginx-1.8.1]# make && make install

(4)编辑nginx.conf,在server段中如下内容去掉注释

   location ~ \.php$ {

            fastcgi_pass   192.168.32.130:9000;    ##PHP服务器,及监听端口

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;

            include        fastcgi_params;

        }

(5)启动nginx

[root@nginx ~]# /usr/local/nginx/sbin/nginx 

 

(6)测试访问,访问成功以下图:



二、PHP服务器的安装

(1)PHP所需依赖,及添加用户

[root@php ~]# yum -y install gcc openssl-devel pcre pcre-devel zlib-devel libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel

[root@php ~]# useradd -r www

 

(2)安装PHP扩展

[root@php ~ ]# tar -zxvf mhash-0.9.9.9.tar.gz

[root@php mhash-0.9.9.9]# cd mhash-0.9.9.9

[root@php mhash-0.9.9.9]# ./configure

[root@php mhash-0.9.9.9]# make && make install

[root@php ~ ]# tar -zxvf libiconv-1.13.tar.gz

[root@php libiconv-1.13]# cd libiconv-1.13

[root@php libiconv-1.13]# ./configure

[root@php libiconv-1.13]# make && make install



[root@php libmcrypt-2.5.8]# tar -zxvf libmcrypt-2.5.8.tar.gz 

[root@php libmcrypt-2.5.8]# cd libmcrypt-2.5.8

[root@php libmcrypt-2.5.8]# ./configure

[root@php libmcrypt-2.5.8]# make && make install

[root@php libmcrypt-2.5.8]# ldconfig -v

[root@php libmcrypt-2.5.8]# cd libltdl

[root@php libltdl ]# ./configure  --with-gmetad  --enable-gexec  --enable-ltdl-install

[root@php libltdl ]# make && make install

[root@php ~ ]# ln -sv /usr/local/lib/libmcrypt* /usr/lib/

[root@php ~ ]# ln -sv /usr/local/lib/libmhash.* /usr/lib/

[root@php ~ ] # ldconfig -v

(3)编译安装PHP

[root@php ~]#tar -zxvf php-5.6.20.tar.gz 

[root@php ~]#cd php-5.6.20

[root@php php-5.6.20]#./configure --prefix=/usr/local/php5  \

> --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd  \

>--with-mysqli=mysqlnd --with-openssl  \

>--enable-mbstring --with-freetype-dir  \

>--with-jpeg-dir --with-png-dir --with-zlib  \

>--with-libxml-dir=/usr --enable-xml  \

>--enable-sockets --enable-fpm  \

>--with-mcrypt --with-config-file-path=/etc   \

>--with-config-file-scan-dir=/etc/php.d   \

>--with-bz2 --with-mcrypt --with-mhash \

>--with-iconv-dir=/usr/local

configure: error: Cannot find ldap libraries in /usr/lib

解决办法:

             cp -frp /usr/lib64/libldap* /usr/lib/

若是出现的报错相似于libmysqlclient.so.18这样的文件not found,查找以后作个软链接,并ldconfig && make clean 

 

[root@php php-5.6.20]#make && make install

[root@php php-5.6.20]#cp  sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

[root@php php-5.6.20]#chmod +x /etc/init.d/php-fpm

[root@php php-5.6.20]#chkconfig --add php-fpm

[root@php php-5.6.20]#chkconfig  php-fpm on

[root@php php-5.6.20]# cd /usr/local/php5/etc/

[root@php etc]# cp php-fpm.conf.default php-fpm.conf

[root@php etc]#cat php-fpm.conf   ## 更改如下内容

[global]

pid = run/php-fpm.pid

error_log = log/php-fpm.log

log_level = error

daemonize = yes

[www]

user = www

group = www

listen = 192.168.32.130:9000 

pm = dynamic                         ## 进程管理方式为dynamic,static为静态

pm.max_children = 32            ##子进程最大数根据官方建议,小于2GB内存的服务器,

                                                  ##能够只开启64个进程,4GB以上内存的服务器能够开启200个进程。

pm.start_servers = 15             ##动态方式下的起始php-fpm进程数量。

pm.min_spare_servers = 5     ##动态方式下的最小php-fpm进程数量

pm.max_spare_servers = 32  ##动态方式下的最大php-fpm进程数量

[root@php etc]# service php-fpm start

[root@php etc]#cd /var/www/html

[root@php html]# cat index.php        ##测试页面

<!--?php

        $link = mysql_connect('192.168.32.128','root','123456');

        if ($link)

                echo "Success...";

        else

                echo "Failure...";

 

        mysql_close();

        phpinfo();

?>

三、mysql服务器安装

(1)编译安装mysql

[root@mysql ~]# yum -y install gcc cmake

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

[root@mysql ~]#tar -zxvf mysql-5.6.16.tar.gz

[root@mysql ~]# cd mysql-5.6.16

[root@mysql mysql-5.6.16]# cmake   \ 

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

> -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data \

> -DMYSQL_TCP_PORT=3306 \

> -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \

> -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all \

> -DWITH_READLINE=1 -DWITH_SSL=system \

> -DWITH_EMBEDDED_SERVER=1 \

> -DENABLED_LOCAL_INFILE=1 \

> -DWITH_INNOBASE_STORAGE_ENGINE=1

[root@mysql mysql-5.6.16]#make &&make install

(2)配置mysql

[root@mysql mysql-5.6.16]#cd /usr/local/mysql

[root@mysql mysql]# chown -R mysql.mysql /usr/local/mysql/

[root@mysql mysql]# ./scripts/mysql_install_db --user=mysql   \

>--datadir=/usr/local/mysql/data                      ##Mysql初始化

[root@mysql mysql]# ls data/

mysql performance_schema test

[root@mysql mysql]#cp support-files/my-medium.cnf /etc/my.cnf

[root@mysql mysql]#cp support-files/mysql.server      /etc/init.d/mysqld

[root@mysql mysql]# chmod +x /etc/init.d/mysqld

[root@mysql mysql]#chkconfig mysqld on

(3)环境变量设置

[root@mysql ~]# vim  /etc/profile

PATH=/bin:/usr/local/mysql/bin/ :$PATH

[root@mysql ~]# source  /etc/profile 

[root@mysql ~]# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/mysql/lib/

[root@mysql ~]# ldconfig

(4)数据库受权

mysql> grant all privileges on *.* to root@% identified by '123456';

mysql> grant all privileges on *.* to root@'localhost' identified by '123456';

mysql> flush privileges;

(5)测试

相关文章
相关标签/搜索