linux 下lnmp的源码搭建

LNMP=linux Nginx Mysql PHP
Nginx的工作原理:
Nginx本身只支持静态页面的处理,当客户访问php页面的时候,nginx会将php转到php-fpm去处理,php-fpm服务会把php页面解析成html文件给nginx处理,nginx返回给客户端处理


Nginx是通过php-fpm这个服务来处理php文件
Apache是通过libphp5.so这个模块来处理php文件

Apache的libphp5.so随着apache服务器一起运行,而nginx和php-fpm是各自独立运行,所以在服务的运行过程中,nginx和php-fpm都需要分别启动
修改Nginx配置文件,启动nginx服务,修改php配置文件,启动php-fpm服务


LNMP软件所需要的软件包
MySQL=http://dev.mysql.com/downloads/mysql/
PHP=http://php.net/downloads.php
Nginx=http://nginx.org/en/download.html
libmcrypt=http://mcrypt.hellug.gr/index.html
pcre=http://pcre.org/ pcre是php的依赖包!!!!!

Mysql源码安装

解决环境问题

yum install  gcc  gcc-c++

yum install cmake-2.8.12.2-4.el6.x86_64.rpm 

yum install ncurses-devel

 yum install  biso

tar  zxf  mysql-boost-5.7.17.tar.gz   解压压缩包

cmake验证

 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1\ -DWITH_INNOBASE_STORAGE_ENGINE=1\ -DWITH_MEMORY_STORAGE_ENGINE=1\ -DWITH_READLINE=1\ -DENABLED_LOCAL_INFILE=1\ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL-USER=mysql

DCMAKE_INSTALL_PREFIX                                      #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置

DMYSQL_UNIX_ADDR                                           #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变

DDEFAULT_CHARSET                        #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集DDEFAULT_COLLATION                           #默认字符校对

DWITH_EXTRA_CHARSETS                  #制定mysql拓展字符集,默认值也是all支持所有的字符集DWITH_MYISAM_STORAGE_ENGINE #静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务                                  器,这样MYSQL就支持这三种存储引擎

DWITH_INNOBASE_STORAGE_ENGINEDWITH_MEMORY_STORAGE_ENGINEDWITH_READLINE                    #支持readline库DENABLED_LOCAL_INFILE                    #允许本地倒入数据,启用加载本地数据DMYSQL_DATADIR                                #mysql数据库存放路径DMYSQL-USER                                    #运行mysql的用户

make &&  make install 就可以安装了

chown -R mysql:mysql /usr/local/mysql/                //属主属组更改#这里的权限需要注意:#1、数据目录给mysql属主和属组  #2、文件安装目录,在安装之前,给mysql属主和属组,安装之后,改成root用户,mysql组,否则在启动的时候,可能启动不了!

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf       //覆盖原配置文件cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld    //启动脚本

vim /etc/init.d/mysqld                                                   //更改启动脚本中指定#mysql位置

basedir=datadir=#修改为basedir=/usr/local/mysqldatadir=/usr/local/mysql/data     #  

开机启动 chkconfig mysqld  on                    

linux 下lnmp的源码搭建_第1张图片

linux 下lnmp的源码搭建_第2张图片

 

mysqld  --initialize  --user=mysql 初始化数据库

 

linux 下lnmp的源码搭建_第3张图片

 

 

mysql_secure_installation     设置密码即可

 

 

php搭建

解决环境问题需要安装以下rpm软件

yum install  net-snmp-devel  gmp-devel -y     curl-devel -y

 openssl-devel -y  re2c-0.13.5-1.el6.x86_64.rpm -y  libxml2-devel -y       libmcrypt-devel-2.5.8-9.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm   gd-devel-2.0.35-11.el6.x86_64.rpm 

之后 开始编译

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl -with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-mcrypt --with-mhash  

--with-config-file-path                         #设置 php.ini 的搜索路径。默认为 PREFIX/lib

--with-mysql                        #mysql安装目录,对mysql的支持

--with-mysqli                         #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动

--with-iconv-dir                      #种字符集间的转换

--with-freetype-dir                  #打开对freetype字体库的支持

--with-jpeg-dir                      #打开对jpeg图片的支持

--with-png-dir                          #打开对png图片的支持

--with-zlib                        #打开zlib库的支持,实现GZIP压缩输出

 --with-libxml-dir=/usr                     #打开libxml2库的支持,libxml是一个用来解析XML文档的函数库

--enable-xml                        #支持xml文档

--disable-rpath                         #关闭额外的运行库文件

--enable-bcmath                      #打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-shmop                       #shmop共享内存操作函数,可以与c/c++通讯--enable-sysvsem  #加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。

--enable-inline-optimization       #优化线程

--with-curl                            #打开curl浏览工具的支持

 --with-curlwrappers                    #运用curl工具打开url流 ,新版PHP5.6已弃用

--enable-mbregex                    #支持多字节正则表达式

--enable-fpm                       #CGI方式安装的启动程序,PHP-FPM服务

--enable-mbstring                     #多字节,字符串的支持-

-with-gd                             #打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

--enable-gd-native-ttf                    #支持TrueType字符串函数库

--with-openssl                          #打开ssl支持

--with-mhash                       #支持mhash算法扩展

--enable-pcntl                          #freeTDS需要用到的,pcntl扩展可以支持php的多线程操作

--enable-sockets                       #打开 sockets 支持

--with-xmlrpc                       #打开xml-rpc的c语言-

-enable-zip                         #打开对zip的支持

--enable-soap                          #扩展库通过soap协议实现了客服端与服务器端的数据交互操作

--with-mcrypt                       #mcrypt算法扩展

 

 make  makeinstall 之后

配置文件

 cd  /usr/local/lnmp/php/

   cd  etc/

    cp php-fpm.conf.default php-fpm.con 

   cd  /mnt/lamp/php-5.6.35

    cp php.ini-production  /usr/local/lnmp/php/etc/

    cd  /usr/local/lnmp/php/

     cd  etc/

 vim  php-fpm.conf

linux 下lnmp的源码搭建_第4张图片

 

 

nginx安装

tar  zxf  nginx-1.10.1.tar.gz 

 tar  zxf  nginx-sticky-module-ng.tar.gz 

 

./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37*************************************

--with-http_dav_module                  #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)                                   默认关闭,需要编译开启

--with-http_stub_status_module    #启用支持(获取Nginx上次启动以来的工作状态)-

-with-http_addition_module         #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)

--with-http_sub_module                 #启用支持(允许一些其他文本替换Nginx相应中的一些文本)--with-http_flv_module                   #启用支持(提供支持flv视频文件支持)

--with-http_mp4_module                      #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

--with-pcre=/usr/local/src/pcre-8.37   #需要注意,这里指的是源码,用#./configure --help |grep pcre

 

文件组成

ll /usr/local/nginx/drwxr-xr-x 2 root root 4096 Sep 1513:44 

conf           #Nginx相关配置文件drwxr-xr-x 2 root root 4096 Sep 1513:44 

html           #网站根目录drwxr-xr-x 2 root root 4096 Sep 1513:44 

ogs           #日志文件drwxr-xr-x 2 root root 4096 Sep 1513:44 

sbin           #Nginx启动脚本

 

 

配置文件  vim  /usr/local/lnmp/nginx/conf/nginx.conf

#location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;        #}                      #找到上面这段内容,将这段内容复制,去掉#

且修改为如下

location ~ \.php$ {    root           html;    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;      #将scripts修改为nginx的html,即Nginx页面目录,因为要处理的php文件也在这个目录下    include        fastcgi_params;

测试使用 

 

 

echo "" > /usr/local/nginx/html/index.php 

出现网页即可

 

 

搭建Discuz论坛

根据以前博客按需要解决问题即可

 

linux 下lnmp的源码搭建_第5张图片linux 下lnmp的源码搭建_第6张图片

安装memcache

 

linux 下lnmp的源码搭建_第7张图片

 

在Linux下使用php -m命令查看PHP扩展,没有看到calendar扩展

所以在在php.ini文件添加:

extension=memcache.so

在php -m 看到memcache

yum 安装 memcached

配置文件之   memcache.conf 与example.conf到 nginx 下html目录中

 

linux 下lnmp的源码搭建_第8张图片

就可以看到结果

 

你可能感兴趣的:(linux)