- /*
- * Author: GP
- * Emeil: vsgeping@gmail.com
- * Website: http://www.gplinux.com
- */
- /*注: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 you@example.com 改为 ServerAdminvsgeping@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
去掉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
加入下面的代码
————————————————
- 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