一起来学LANMP:linux搭建LANMP(编译版)



  • /*注:nginx和apache的配置只是简单配置,如果要做到nginx处理前端apache处理后台脚本,还需更深入配置*/

刚安装好linux,现在开始编译安装LANMP
在这里写下编译安装配置过程,提供大家做个参考
////////////////////////////
当前用户:root
当前目录:/home/gp/Downloads
////////////////////////////
1、下载必要安装包
  • Nginx:http://nginx.org/download/nginx-1.0.14.tar.gz
  • Pcre(安装nginx所需,rewrite模块需要pcre库):http://nchc.dl.sourceforge.net/p ... 30/pcre-8.30.tar.gz
  • Zlib(安装nginx所需):http://iweb.dl.sourceforge.net/p ... 5/zlib-1.2.5.tar.gz
  • PHP:http://cn2.php.net/distributions/php-5.3.10.tar.gz
  • Libxml2(安装Libxml2所需):ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
  • Mysql:http://mysql.ntu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.21.tar.gz
  • Cmake(安装Mysql所需):http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz
  • Apache:http://mirror.bjtu.edu.cn/apache/httpd/httpd-2.4.1.tar.gz
  • APR(安装Apache所需):http://labs.mop.com/apache-mirror//apr/apr-1.4.6.tar.gz
  • APR-util(安装Apache所需):http://labs.mop.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
  • APR iconv(安装Apache所需):http://labs.mop.com/apache-mirror//apr/apr-iconv-1.2.1.tar.gz

2、编译、安装、配置Nginx
2.1、编译/安装nginx
  • tks-gp Downloads # tar zxf pcre-8.30.tar.gz /*解压pcre*/
  • tks-gp Downloads # cd cd pcre-8.30/
  • /*编译安装pcre*/
  • tks-gp pcre-8.30 # ./configure
  • tks-gp pcre-8.30 # make
  • tks-gp pcre-8.30 # make install
  • tks-gp pcre-8.30 # pcre-config –version /*查看pcre版本,也用来测试是否安装成功*/
  • tks-gp pcre-8.30 # cd ..
  • tks-gp Downloads # tar zxf zlib-1.2.5.tar.gz /*解压zlib*/
  • tks-gp Downloads # cd zlib-1.2.5/
  • /*编译安装zlib-1.2.5*/
  • tks-gp zlib-1.2.5 # ./configure
  • tks-gp zlib-1.2.5 # make
  • tks-gp zlib-1.2.5 # make install
  • tks-gp zlib-1.2.5 # cd ..
  • tks-gp Downloads # apt-get install libssl-dev /*安装libssl_dev,为–with-http_ssl_module做准备*/
  • tks-gp Downloads # tar zxf nginx-1.0.14.tar.gz /*解压nginx*/
  • tks-gp Downloads # nginx-1.0.14/
  • /*编译安装nginx*/
  • tks-gp nginx-1.0.14 # ./configure –user=www-data –group=www-data
  • –with-http_ssl_module –with-pcre=../pcre-8.30 –with-zlib=../zlib-1.2.5
  • /*
  • * 默认安装路径:/usr/local/nginx
  • * –user=www-data #指定用户
  • * –group=www-data #指定用户组
  • * –with-http_ssl_module #开启HTTP SSL模块,使NGINX可以支持HTTPS请求
  • * –with-pcre=../pcre-8.30 #指定 PCRE 库的源代码的路径
  • * –with-zlib=../zlib-1.2.5 #指定 zlib 库的源代码的路径
  • */
  • tks-gp nginx-1.0.14 # make /*编译*/
  • tks-gp nginx-1.0.14 # make install /*安装*/
  • tks-gp nginx-1.0.14 # /usr/local/nginx/sbin/nginx /*启动nginx服务*/





  • tks-gp nginx-1.0.14 # /usr/local/nginx/sbin/nginx -s stop /*停止nginx服务*/




  • //////////////////////////////////////////////////////////////////
  •   Nginx -s stop         快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
  •   Nginx -s quit         平稳关闭Nginx,保存相关信息,有安排的结束web服务。
  •   Nginx -s reload       因改变了Nginx相关配置,需要重新加载配置而重载。
  •   Nginx -s reopen       重新打开日志文件。(reopenging log files)
  • //////////////////////////////////////////////////////////////////

  • tks-gp nginx-1.0.14 # cd ..
  • tks-gp Downloads # cp /usr/local/nginx/sbin/nginx /etc/init.d/
  • tks-gp Downloads # chmod 755 /etc/init.d/nginx
  • tks-gp Downloads # chkconfig –add nginx /*设置nginx开机启动*/
  • /*运行后提示:nginx    0:off  1:off  2:on   3:on   4:on   5:on   6:off*/




2.2、配置nginx
        

  • tks-gp Downloads # cd /usr/local/nginx/conf/
  • tks-gp conf # vim nginx.conf


//////////////////////////////////////////////////////////////
添加一行include vhost/*.conf;

  • :wq //保存退出


//////////////////////////////////////////////////////////////
  • tks-gp conf # mkdir vhost /*新建一个目录,用来存放虚拟主机的配置文件*/
  • tks-gp conf # ls -al
  • tks-gp conf # chmod -R 755 ./*






3、编译、安装、配置Mysql
        

  • tks-gp conf # cd /home/gp/Downloads/
  • tks-gp Downloads # tar zxf cmake-2.8.7.tar.gz /*解压*/
  • tks-gp Downloads # cd cmake-2.8.7/
  • /*编译安装cmake*/
  • tks-gp cmake-2.8.7 # ./bootstrap
  • tks-gp cmake-2.8.7 # make
  • tks-gp cmake-2.8.7 # make install
  • tks-gp cmake-2.8.7 # cmake –version /*查看版本号,同时查看是否安装成功*/



  • tks-gp cmake-2.8.7 # cd ..
  • tks-gp Downloads # tar zxf mysql-5.5.21.tar.gz
  • tks-gp Downloads # cd mysql-5.5.21/


///////////////////////////////////////////////////////////////////
必须要安装libncurses5-dev
若差了这个包,在cmake的时候会报错

  • 安装方法:tks-gp mysql-5.5.21 # apt-get install libncurses5-dev



还要安装bison包
  • tks-gp mysql-5.5.21 # apt-get install bison



如果发生错误,要重新编译,需要执行:
  • tks-gp mysql-5.5.21 # rm CMakeCache.txt



///////////////////////////////////////////////////////////////////
  • tks-gp mysql-5.5.21 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  • -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8
  • -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1
  • -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1
  • -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data


  • /*
  • * -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ /*Mysql的安装目录*/
  • * -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ /*Unix socket 文件路径*/
  • * -DDEFAULT_CHARSET=utf8 \ /*使用 utf8 字符*/
  • * -DDEFAULT_COLLATION=utf8_general_ci \ /*校验字符*/
  • * -DWITH_MYISAM_STORAGE_ENGINE=1 \ /*安装 myisam 存储引擎*/
  • * -DWITH_INNOBASE_STORAGE_ENGINE=1 \ /*安装 innodb 存储引擎*/
  • * -DWITH_READLINE=1 \ /*快捷键功能*/
  • * -DENABLED_LOCAL_INFILE=1 \ /*允许从本地导入数据*/
  • * -DMYSQL_DATADIR=/usr/local/mysql/data /*数据库存放目录*/
  • */


  • tks-gp mysql-5.5.21 # make /*编译*/
  • tks-gp mysql-5.5.21 # make install /*安装*/
  • tks-gp mysql-5.5.21 # groupadd mysql /*建一个mysql用户组*/
  • tks-gp mysql-5.5.21 # useradd -r -g mysql mysql /*建一个mysql用户,属于mysql用户组,并且该用户不在登录界面显示(-r参数的作用)*/




  • tks-gp mysql-5.5.21 # chmod +w /usr/local/mysql /*给mysql的安装目录赋予写权限*/
  • tks-gp mysql-5.5.21 # chown -R mysql:mysql /usr/local/mysql /*给mysql安装目录授予mysql用户组和mysql用户*/
  • tks-gp mysql-5.5.21 # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  • tks-gp mysql-5.5.21 # cp /etc/mysql/my.cnf /etc/mysql/my.cnf_bak /*备份mysql配置文件*/
  • tks-gp mysql-5.5.21 # vim /etc/mysql/my.cnf /*编辑mysql配置文件,按照自己情况修改*/
  • tks-gp mysql-5.5.21 # /usr/local/mysql/scripts/mysql_install_db \ /*Mysql初始化安装*/
  • > –basedir=/usr/local/mysql \ /*mysql的安装目录*/
  • > –datadir=/usr/local/mysql/data \ /*mysql的数据存放目录*/
  • > –user=mysql \ /*指定用户*/
  • > –no-defaults




  • tks-gp mysql-5.5.21 # chmod 755 /etc/init.d/mysqld
  • tks-gp mysql-5.5.21 # chkconfig –add mysqld /*设置mysql开机启动*/
  • tks-gp mysql-5.5.21 # /etc/init.d/mysqld start /*启动mysql*/

//////////////////////////////////////////////////////////////////
启动mysql报错
* The server quit without updating PID file (/usr/local/mysql/data/tks-gp.pid).

本来想查看一下日志文件/var/log/mysq/error.log的,发现日志文件不存在
查看一下/etc/mysql/my.cnf文件,发现里面变量的日志文件存放在/var/log/mysql/error.log
怀疑是不是/var/log下没有mysql目录,而且权限也不够
于是在/var/log目录下新建了一个mysql目录,然后修改目录权限
  • tks-gp mysql-5.5.21 # mkdir /var/log/mysql
  • tks-gp mysql-5.5.21 # chown -R mysql:mysql /var/log/mysql

再次启动,成功

//////////////////////////////////////////////////////////////////
  • tks-gp Downloads # /usr/local/mysql/bin/mysqladmin -u root password "123456" /*设置root用户的密码为123456*/
  • tks-gp Downloads # vim /etc/profile /*编辑/etc/profile文件*/

设置Mysql命令到PATH
在/etc/profile文件中加入下面的代码:
————————————————-
  • MYSQL_HOME=/usr/local/mysql
  • PATH=$MYSQL_HOME/bin:$PATH
  • export PATH
————————————————
保存,退出

  • tks-gp Downloads # . /etc/profile /*执行,将当前配置写进当前shell,犹如source /etc/profile命令*/




现在,已经可以全局使用mysql命令了
到此,mysql的安装/配置就完成了。

//////////////////////////////////////////////////////////////////
  • /etc/init.d/mysqld start    启动Mysql
  • /etc/init.d/mysqld restart    重启Mysql
  • /etc/init.d/mysqld stop    关闭Mysql

//////////////////////////////////////////////////////////////////
4、编译安装、配置Apache
        

  • tks-gp Downloads # tar zxf apr-1.4.6.tar.gz
  • tks-gp Downloads # cd apr-1.4.6/
  • /*编译安装apr*/
  • tks-gp apr-1.4.6 # ./configure –prefix=/usr/local/apr
  • tks-gp apr-1.4.6 # make
  • tks-gp apr-1.4.6 # make install
  • tks-gp apr-1.4.6 # cd ..
  • tks-gp Downloads # tar zxf apr-util-1.4.1.tar.gz
  • tks-gp Downloads # cd apr-util-1.4.1/
  • /*编译安装apr-util*/
  • tks-gp apr-util-1.4.1 # ./configure –prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
  • tks-gp apr-util-1.4.1 # make
  • tks-gp apr-util-1.4.1 # make install
  • tks-gp apr-util-1.4.1 # cd ..
  • tks-gp Downloads # tar zxf apr-iconv-1.2.1.tar.gz
  • tks-gp Downloads # cd apr-iconv-1.2.1/
  • /*编译安装apr-iconv*/
  • tks-gp apr-iconv-1.2.1 # ./configure –with-apr=/usr/local/apr/bin/apr-1-config
  • tks-gp apr-iconv-1.2.1 # make
  • tks-gp apr-iconv-1.2.1 # make install
  • tks-gp apr-iconv-1.2.1 # cd ..
  • tks-gp Downloads # tar zxf httpd-2.4.1.tar.gz
  • tks-gp Downloads # cd httpd-2.4.1/
  • tks-gp httpd-2.4.1 # ./configure –prefix=/usr/local/apache2
  • –enable-module=so –enable-module=rewrite
  • –with-apr=/usr/local/apr/bin/apr-1-config
  • –with-apr-util=/usr/local/apr-util/bin/apu-1-config –with-libxml2


  • /*
  • * –prefix=/usr/local/apache2 #设置apache安装目录
  • * –enable-module=so #so模块用来提供 DSO 支持的 apache 核心模块
  • * –enable-module=rewrite #开启rewrite模块
  • * –with-apr=/usr/local/apr/bin/apr-1-config #指向apr
  • * –with-apr-util=/usr/local/apr-util/bin/apu-1-config #指向apr-util
  • * –with-libxml2 #使用本地libxml2
  • */

  • tks-gp httpd-2.4.1 # make
  • tks-gp httpd-2.4.1 # make install
  • tks-gp httpd-2.4.1 # mkdir /var/www
  • tks-gp httpd-2.4.1 # chown -R www-data:www-data /var/www
  • tks-gp httpd-2.4.1 # chmod -R 755 /var/www
  • tks-gp httpd-2.4.1 # cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
  • tks-gp httpd-2.4.1 # vim /usr/local/apache2/conf/httpd.conf
——————————————————–
  • 第52行:Listen 80    改为    Listen 8080
  • 第156行:User daemon    改为    User www-data
  • 第157行:Group daemon    改为    Group www-data
  • 第178行:ServerAdmin [email protected]    改为    [email protected]
  • 第187行:#ServerName www.example.com:80    改为    ServerName 127.0.0.1:8080
  • 第211行:DocumentRoot "/usr/local/apache2/htdocs"    改为    DocumentRoot "/var/www"
  • 第212行:<Directory "/usr/local/apache2/htdocs">    改为    <Directory "/var/www">
  • 第245行:DirectoryIndex index.html    改为    DirectoryIndex index.html index.php
——————————————————–
  • tks-gp httpd-2.4.1 # cp /usr/local/apache2/htdocs/index.html /var/www
  • tks-gp httpd-2.4.1 # chkconfig –add httpd /*设置开机启动*/




//////////////////////////////////////////////////////////////////
  • /etc/init.d/httpd start    开启apache服务
  • /etc/init.d/httpd restart    重启apache服务
  • /etc/init.d/httpd stop    停止apache服务
//////////////////////////////////////////////////////////////////
5、编译安装、配置PHP
        

  • tks-gp Downloads # tar xzf libxml2-2.7.8.tar.gz
  • tks-gp Downloads # cd libxml2-2.7.8/
  • tks-gp libxml2-2.7.8 # ./configure
  • tks-gp libxml2-2.7.8 # make
  • tks-gp libxml2-2.7.8 # make install
—————————————————-
在编译安装低版本Libxml2时出错,提示:
make[1]: *** [nanohttp.lo] Error 1  
make[1]: Leaving directory `/home/gp/Downloads/libxml2-2.7.8'  
make: *** [install-recursive] Error 1
打开nanohttp.c文件修改:
tks-gp libxml2-2.7.8 # vim nanohttp.c
fd = open(filename, O_CREAT | O_WRONLY);更换为
fd = open(filename, O_CREAT | O_WRONLY,0777);

—————————————————-
  • tks-gp libxml2-2.7.8 # cd ..
  • tks-gp Downloads # cd php-5.3.10/
  • tks-gp php-5.3.10 # ./configure –prefix=/usr/local/php
  • –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql
  • –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring
  • –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib
  • –with-libxml-dir –enable-xml –with-iconv-dir=/usr/local
  • –with-apxs2=/usr/local/apache2/bin/apxs

  • /*
  • * –prefix=/usr/local/php #指定PHP的安装目录
  • * –with-config-file-path=/usr/local/php/etc #指定PHP配置文件目录
  • * –with-mysql=/usr/local/mysql #指定mysql安装目录
  • * –with-mysqli=/usr/local/mysql/bin/mysql_config #指定mysql_config文件路径
  • * –enable-mbstring #开启mbstring
  • * –with-freetype-dir #对freetype的支持
  • * –with-jpeg-dir #GD模块对JPEG支持
  • * –with-png-dir #GD模块对png支持
  • * –with-zlib #对zlib支持
  • * –with-libxml-dir #libxml支持
  • * –enable-xml #对XML支持
  • * –with-iconv-dir=/usr/local #对转码iconv的支持
  • * –with-apxs2=/usr/local/apache2/bin/apxs #指定apache的路径
  • */

  • tks-gp php-5.3.10 # make
  • tks-gp php-5.3.10 # make test
  • tks-gp php-5.3.10 # make install
  • tks-gp php-5.3.10 # cp php.ini-development /usr/local/php/lib/php/php.ini
  • tks-gp php-5.3.10 # vim /usr/local/apache2/conf/httpd.conf

/*打开apache配置文件,让它对php支持,在文件大概在375行的位置加上下面几句*/
—————————
  • AddType application/x-httpd-php .php


—————————


  • tks-gp php-5.3.10 # /etc/init.d/httpd restart /*重启apache服务*/
  • tks-gp php-5.3.10 # vim /var/www/index.php

编辑index.php文件中加入
—————————————-
  • <?php
  •     phpinfo();
—————————————-
  • tks-gp php-5.3.10 # chown -R www-data:www-data /var/www
  • tks-gp php-5.3.10 # chmod -R 755 /var/www









6、配置Nginx和Apache
        

接下来要做的就是用nginx作反向代理,用apache来处理php脚本
之前在配置Nginx的时候,只在nginx.conf文件中加入了一行include vhost/*.conf;
现在就在vhost目录里面新建一个虚拟主机的配置文件
  • tks-gp php-5.3.10 # cd /usr/local/nginx/conf/
  • tks-gp conf # vim vhost/www.gp.com.conf

/*加入下面的代码*/
—————————————————
  • server
  • {
  •     listen 80;
  •     server_name www.gp.com;
  •     root /var/www;
  •     location /
  •     {
  •          proxy_set_header Host $host;
  •          proxy_set_header X-Real-IP $remote_addr;
  •          proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  •          proxy_pass http://www.gp.com:8080;
  •     }
  •     access_log  /usr/local/nginx/logs/www.gp.com.log;
  • }


—————————————————

保存退出
再给apache增加一个虚拟主机配置文件
  • tks-gp conf # cd /usr/local/apache2/conf/
  • tks-gp conf # vim httpd.conf
查找Virtual hosts(大概在464行)
去掉Include前的“#”
改为:Include conf/vhost/*.conf

保存退出
  • tks-gp conf # mkdir vhost
  • tks-gp conf # vim vhost/www.gp.com.conf

/*加入以下代码*/
———————————————————————
  • <VirtualHost *:8080>
  •     ServerAdmin [email protected]
  •     DocumentRoot "/var/www"
  •     ServerName www.gp.com
  •     ErrorLog "logs/www.gp.com-error_log"
  •     CustomLog "logs/www.gp.com-access_log" common
  • </VirtualHost>

———————————————————————

保存退出
接下来修改/etc/hosts文件
  • tks-gp conf # vim /etc/hosts

加入下面的代码
————————————————
  • 127.0.0.1    www.gp.com
————————————————

保存退出
重启nginx和apache
  • tks-gp conf # /etc/init.d/nginx -s stop
  • tks-gp conf # /etc/init.d/nginx
  • tks-gp conf # /etc/init.d/httpd restart

打开浏览器访问一下: www.gp.com




至此,LANMP全部搭建完成了。。。。。

转:http://bbs.phpchina.com/thread-233562-1-1.html

你可能感兴趣的:(linux,nginx,pcre,apach,LNMP.)