关闭

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

标签: linuxmysqlnginxapachecollationvim
4045人阅读 评论(0) 收藏 举报
分类:

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



源码下载:

http://download.csdn.net/detail/newjueqi/4176004

http://download.csdn.net/detail/newjueqi/4176023



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




刚安装好linux,现在开始编译安装LANMP
在这里写下编译安装配置过程,提供大家做个参考


////////////////////////////
当前用户:root
当前目录:/home/gp/Downloads
////////////////////////////
1、下载必要安装包





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 you@example.com    改为    ServerAdmin vsgeping@gmail.com
  • 第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 vsgeping@gmail.com
  •     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



加入下面的代码
————————————————


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

保存退出
重启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全部搭建完成了。。。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7128520次
    • 积分:22069
    • 等级:
    • 排名:第323名
    • 原创:268篇
    • 转载:335篇
    • 译文:0篇
    • 评论:510条
    博主写的书已经上市
    个人资料
    本人曾健生,家乡是佛山,现在广州工作,《App后台开发运维和架构实践》一书作者,曾经负责社交app "ekeo"和"米信"的后端开发,目前就职于云后端平台bmob从事云服务方面的开发工作(想了解bmob点击这里

    qq:190678908
    本人的微信公众号"app后端"
    app后端
    博客专栏
    最新评论